Viewing File: /opt/hc_python/lib/python3.12/site-packages/pre_commit/__pycache__/clientlib.cpython-312.pyc

�

i0i�A��T�ddlmZddlZddlZddlZddlZddlZddlZddl	m
Z
ddl	mZddlm
Z
ddlmZddlZddlmZddlmZddlmZdd	lmZdd
lmZej6d�Zej:ej<ej>�Z dZ!ge!�d
��Z"dsd�Z#dtd�Z$dud�Z%dddd�Z&dvd�Z'ejPejRddejTdej<�ejVdejXej<�g���Z-dwd�Z.Gd�de�Z/Gd�de/�Z0Gd�d e�Z1Gd!�d"e�Z2dxd$�Z3Gd%�d&e�Z4Gd'�d(e4�Z5ejRddejVd)ej:ej<e%�d*�ejTdej<�ejTd#ej<�ejTd+ej<�e5d,ejle��ejVd-ej<d.�ejVd/e d.�ejVd0e d1�ejVd2ejXe#�d3g�ejVd4ejXe#�g�ejVd5ejXe#�g�ejVd6ejXej<�g�ejVd7ejXej<�g�ejVd8ejnd9�ejVd:ejnd9�ejVd;ejnd<�ejVd=ej<d.�ejVd>ej<ejp�ejVd?ej<d.�ejVd@ejnd9�e0dg�ejVdAejnd9��Z9ejPe9�Z:GdB�dCe�Z;dydD�Z<ejzej|e:e<e;�E�Z?dFZ@dGZAGdH�dIej��ZCGdJ�dKej��ZEGdL�dMej��ZFdzdN�ZG								d{dO�ZH								d{dP�ZIdQdRd/dSej�ej���dT�fd+eGdU�fffdVdWd/dSej�ej���dT�fd+eGdX�fffdYdZd[d+eGdY�ffffZLGd\�d]ej��ZMeEd/ej<�eEd0ej<�e1d�fZNejRddejTdej<�ejTdejleOd^�eLD����ejVd,ejld_h�d_�eMd+ej��gd`�eLD��da�e9j�D��eN���ZRejRddejTdej<�gdb�e9j�D��e/dg��e4d,ejle���eN���ZSejRddge9j��eN���ZTejRdcdejTdej<�ej�ddejPeS�dej�e@eA��ej�ddejPeT�de@�ej�ddejPeR�deA�eCdeej<dej�e@eA�d<�f�ej�dgeI��ZXejRdhdej�e�gdi�eD����ZZejRdjdejVd)ej:ej<e%�d*�ej�dkejPeX��ejVdlejXejle!��dg�ej�dmeZi�e0dne"�e2dn�ejVd/e d.�ejVd0e d1�ejVd:ejnd9�ej�doeH�eFd/ej<�eFd0ej<�ej�dpej�e^���Z_Gdq�dre�Z`ejzej|e_ee`�E�Zay)|�)�annotationsN)�Callable)�Sequence)�Any)�
NamedTuple)�ALL_TAGS)�language_names)�
FatalError)�	yaml_load�
pre_commit)
z
commit-msgz
post-checkoutzpost-commitz
post-mergezpost-rewrite�
pre-commit�pre-merge-commit�pre-pushz
pre-rebasezprepare-commit-msg�manualc�F�|tvrtjd|�d���y)Nz	Type tag z; is not recognized.  Try upgrading identify and pre-commit?)r�cfgv�ValidationError)�tags �C/opt/hc_python/lib/python3.12/site-packages/pre_commit/clientlib.py�check_type_tagr*s3��
�(���"�"���w�5�
6�
�	
��c�D�td�|jd�D��S)zpoor man's version comparisonc3�2K�|]}t|����y�w�N)�int)�.0�ps  r�	<genexpr>z parse_version.<locals>.<genexpr>4s����.��A��Q���s��.)�tuple�split)�ss r�
parse_versionr#2s���.������.�.�.rc��t|�ttj�kDr*tjd|�dtj�d���y)Nzpre-commit version z is required but version z? is installed.  Perhaps run `pip install --upgrade pre-commit`.)r#�C�VERSIONrr)�versions r�check_min_versionr(7sM���W��
�a�i�i� 8�8��"�"�!�'��*C��y�y�k�>�
?�
�	
�9rr
rr)�commitzmerge-commit�pushc�.�tj||�Sr)�_STAGES�get)�stages r�transform_stager/Gs���;�;�u�e�$�$r�Hook�id�stages�repoc
��	tjtjj	|t
j�ttt��}i}|D]'}|jdd�D]}|tvs�d||<��)|rBtjd|�ddj	|��dtj|��d	��yy#t$rYywxYw)
N��schema�
load_strategy�exc_tpr2�Tzrepo `�` uses deprecated stage names (�, zX) which will be removed in a future version.  Hint: often `pre-commit autoupdate --repo zM` will fix this.  if it does not -- consider reporting an issue to that repo.)r�load_from_filename�os�path�joinr%�
MANIFEST_FILE�MINIMAL_MANIFEST_SCHEMAr�InvalidManifestErrorr-r,�logger�warning�shlex�quote)r3�	directory�manifest�
legacy_stages�hookr.s      r�warn_for_stages_on_repo_initrKTs�����*�*��G�G�L�L��A�O�O�4�*�#�'�	
���M����X�X�h��+�E����'+�
�e�$�,��
�����T�F���	�	�-�(�)�*9�9>���T�9J�8K�LJ�
K�	
��� ����s�AC�	C�Cc�:�eZdZUded<ded<d	d�Zd	d�Zd	d�Zy)
�StagesMigrationNoDefault�str�key�
Sequence[str]�defaultc��|j|vrytjd|j���5||j}tjtj�|�|D�cgc]
}t|���}}tjtjt��|�ddd�ycc}w#1swYyxYw�NzAt key: )rOr�validate_context�check_array�	check_anyr/�check_one_of�STAGES)�self�dct�val�vs    r�checkzStagesMigrationNoDefault.checkts����8�8�3���
�
"�
"�X�d�h�h�Z�#8�
9��d�h�h�-�C�,�D���T�^�^�,�S�1�/2�3�s�!�?�1�%�s�C�3�7�D���T�.�.�v�6�7��<�:�
9��4�	:�
9�s�=C�/B>�4C�>C�Cc��|j|vry||jD�cgc]
}t|���c}||j<ycc}wr)rOr/)rYrZr\s   r�
apply_defaultz&StagesMigrationNoDefault.apply_defaults=���8�8�3���58����]�C�]����+�]�C��D�H�H�
��Cs�Ac��t�r��NotImplementedError�rYrZs  r�remove_defaultz'StagesMigrationNoDefault.remove_default����!�!rN�rZzdict[str, Any]�return�None��__name__�
__module__�__qualname__�__annotations__r]r_rdr9rrrMrMps��	�H�
��	=�D�
"rrMc� ��eZdZd�fd�Z�xZS)�StagesMigrationc�p��|j|j|j�t�|�|�yr)�
setdefaultrOrQ�superr_�rYrZ�	__class__s  �rr_zStagesMigration.apply_default�s&������t�x�x����.�
���c�"rrf)rjrkrlr_�
__classcell__�rts@rroro�s
���#�#rroc�0�eZdZUded<dd�Zdd�Zdd�Zy)�DeprecatedStagesWarningrNrOc�.�|j|vry||j}tjtj�|�|D�cgc]
}|tvs�|��}}|r/t
j
d|d�ddj|��d��yycc}w)Nz	hook id `r1r:r;�i) which will be removed in a future version.  run: `pre-commit migrate-config` to automatically fix this.�rOrrUrVr,rCrDr?�rYrZr[r.rIs     rr]zDeprecatedStagesWarning.check�s����8�8�3����$�(�(�m��(�������(��-�,/�D�C�5�5�G�3C��C�
�D���N�N��C��I�;�'��I�I�m�,�-�.N�O�
���Es�
B�Bc��yrr9rcs  rr_z%DeprecatedStagesWarning.apply_default����rc��t�rrarcs  rrdz&DeprecatedStagesWarning.remove_default�rerNrfrir9rrrxrx����	�H�� 
�"rrxc�0�eZdZUded<dd�Zdd�Zdd�Zy)�DeprecatedDefaultStagesWarningrNrOc�"�|j|vry||j}tjtj�|�|D�cgc]
}|tvs�|��}}|r)t
j
ddj|��d��yycc}w)Nz8top-level `default_stages` uses deprecated stage names (r;rzr{r|s     rr]z$DeprecatedDefaultStagesWarning.check�s����8�8�3����$�(�(�m��(�������(��-�,/�D�C�5�5�G�3C��C�
�D���N�N���I�I�m�,�-�.N�O�
���Es�
B�Bc��yrr9rcs  rr_z,DeprecatedDefaultStagesWarning.apply_default�r~rc��t�rrarcs  rrdz-DeprecatedDefaultStagesWarning.remove_default�rerNrfrir9rrr�r��r�rr��namec�,�ddd�j||�S)N�unsupported�unsupported_script)�system�script)r-)r�s r�_translate_languager��s���&��
�c�$��o�rc�:�eZdZUded<ded<d	d�Zd	d�Zd	d�Zy)
�LanguageMigrationrNrOzCallable[[object], None]�check_fnc���|j|vrytjd|j���5|jt	||j��ddd�y#1swYyxYwrS)rOrrTr�r�rcs  rr]zLanguageMigration.check�sP���8�8�3���
�
"�
"�X�d�h�h�Z�#8�
9��M�M�-�c�$�(�(�m�<�=�:�
9�
9�s�(A#�#A,c�l�|j|vryt||j�||j<yr)rOr�rcs  rr_zLanguageMigration.apply_default�s+���8�8�3���+�C����M�:��D�H�H�
rc��t�rrarcs  rrdz LanguageMigration.remove_default�rerNrfrir9rrr�r��s��	�H�&�&�>�;�"rr�c� ��eZdZd�fd�Z�xZS)�LanguageMigrationRequiredc���|j|vr"tjd|j����t�|�|�y)NzMissing required key: )rOrrrrr]rss  �rr]zLanguageMigrationRequired.check�s8����8�8�3���&�&�)?����z�'J�K�K�
��
�c�rrf�rjrkrlr]rurvs@rr�r��s
����rr��minimum_pre_commit_version�0�entry�language�alias��files�excludez^$�types�file�types_or�
exclude_types�additional_dependencies�args�
always_runF�	fail_fast�pass_filenamesT�description�language_version�log_file�require_serial�verbosec��eZdZy)rBN�rjrkrlr9rrrBrB
���rrBc�h�t|�}t|t�rtd�t	d��|S)N�5�unreachable)r�
isinstance�dictr(�AssertionError)�contents�objs  r�_load_manifest_forward_compatr�s.��
�H�
�C��#�t���#���]�+�+��
rr5�local�metac� ��eZdZd�fd�Z�xZS)�WarnMutableRevc����t�|�|�|j|vrU||j}d|vrAtjd|�s*t
j
d|j�d|d�d��yyyy)Nrz^[a-fA-F0-9]+$�The z field of repo r3a appears to be a mutable reference (moving tag / branch).  Mutable references are never updated after first install and are not supported.  See https://pre-commit.com/#using-the-latest-version-for-a-repository for more details.  Hint: `pre-commit autoupdate` often fixes this.)rrr]rO�re�matchrCrD)rYrZ�revrts   �rr]zWarnMutableRev.check'sw���
��
�c���8�8�s�?��d�h�h�-�C��#�~�b�h�h�/@�#�&F�����4�8�8�,�o�c�&�k�_�EF�G��'G�~�rrfr�rvs@rr�r�&�
����rr�c� ��eZdZd�fd�Z�xZS)�OptionalSensibleRegexAtHookc	���t�|�|�d|j|jd�vr5tjd|j�d|jd��d��dD]X}||j|jd�vs�"tjd|j�d|jd��d	|����Zy)
N�/*r�r�z field in hook r1zJ is a regex, not a glob -- matching '/*' probably isn't what you want here�z[\\/]z[\/]z[/\\]z%pre-commit normalizes slashes in the z1 to forward slashes, so you can use / instead of �rrr]r-rOrCrD�rYrZ�fwd_slash_rerts   �rr]z!OptionalSensibleRegexAtHook.check:s����
��
�c���3�7�7�4�8�8�R�(�(��N�N��t�x�x�l�/�#�'�'�$�-�1B�C��
�
:�L��s�w�w�t�x�x��4�4����<�T�X�X�L�I&�&)�g�g�d�m�%6�74�4@�>�C��:rrfr�rvs@rr�r�9r�rr�c� ��eZdZd�fd�Z�xZS)�OptionalSensibleRegexAtTopc�<��t�|�|�d|j|jd�vr#tjd|j�d��dD]F}||j|jd�vs�"tjd|j�d|����Hy)Nr�r�zThe top-level zP field is a regex, not a glob -- matching '/*' probably isn't what you want herer�z3pre-commit normalizes the slashes in the top-level z7 field to forward slashes, so you can use / instead of r�r�s   �rr]z OptionalSensibleRegexAtTop.checkMs����
��
�c���3�7�7�4�8�8�R�(�(��N�N� �����-B�C�
�:�L��s�w�w�t�x�x��4�4����J����|�$-�-9�N�<��:rrfr�rvs@rr�r�Ls
����rr�c�R�tjtj��d|��S)z�the hook `entry` is passed through `shlex.split()` by the command
    runner, so to prevent issues with spaces and backslashes (on Windows)
    it must be quoted here.
    z -m pre_commit.meta_hooks.)rErF�sys�
executable)�modnames r�_entryr�^s$��
�k�k�#�.�.�)�
*�*D�W�I�N�Nrc�R�tjddj|����y)Nz#Unexpected key(s) present at root: r;�rCrDr?��extra�	orig_keysrZs   r�warn_unknown_keys_rootr�fs"��
�N�N�8����5�9I�8J�K�Lrc�^�tjd|d�ddj|����y)NzUnexpected key(s) present on r3z: r;r�r�s   r�warn_unknown_keys_repor�ns.��
�N�N�
'��F��}�B�t�y�y��7G�6H�I�rzcheck-hooks-apply)r�z#Check hooks apply to the repository�^�$�check_hooks_applyzcheck-useless-excludes)r�zCheck for useless excludes�check_useless_excludes�identity)r�r�)r�Tc��eZdZdd�Zy)�
NotAllowedc�d�|j|vr"tj|j�d���y)Nz cannot be overridden)rOrrrcs  rr]zNotAllowed.check�s/���8�8�s�?��&�&�$�(�(��5J�'K�L�L�rNrf)rjrkrlr]r9rrr�r��s��Mrr�c#�&K�|]	\}}|���y�wrr9)r�k�_s   rrr�s����/D�e�d�a���e�s�r�c	#�K�|]8\}}|D].\}}tj|tj|d|����0�:y�w)r1N)r�ConditionalOptionalrV)r�hook_id�valuesrO�values     rrr�sG����� %�O�G�V� �J�C��	
� � ��d�n�n�e�T�7�K� �	L�$�s�>Ac#�K�|]>}|jdvr*tj|j|j�n|���@y�w)>r�r�r�N�rOr�OptionalNoDefaultr��r�items  rrr�sJ�����-�D��8�8�4�4�	
���t�x�x����7�	
�	
�-�s�AAc#��K�|][}|jdk7rJ|jdk7r;|jdk7r,tj|j|j����]y�w)r1r2r�Nr�r�s  rrr�sQ�����,�D��8�8�t���8�8�x���8�8�z�!�		
���t�x�x����7�,�s�A!A#�
Repository�hooksr�)�
condition_key�condition_value�
ensure_absent)r3r�r��DefaultLanguageVersionc#�K�|]7}tj|tjtj����9y�wr)r�Optional�check_stringr%�DEFAULT)r�xs  rrr�s(����M�n��d�m�m�A�t�(�(�!�)�)�4�n�s�=?�Config�repos�default_install_hook_types�default_language_version�default_stages)	r�r�r�rr�r�r�r��circ��eZdZy)�InvalidConfigErrorNr�r9rrrrr�rr)rrNrgrh)r"rNrgztuple[int, ...])r'rNrgrh)r.rNrgrN)r3rNrGrNrgrh)r�rNrgrN)r�rNrg�object)r�rNrgrN)r�rPr�rPrZzdict[str, str]rgrh)b�
__future__r�	functools�logging�os.pathr=r�rEr��collections.abcrr�typingrrr�identify.identifyr�pre_commit.constants�	constantsr%�pre_commit.all_languagesr	�pre_commit.errorsr
�pre_commit.yamlr�	getLoggerrC�	check_andr��check_regex�check_string_regex�
HOOK_TYPESrXrr#r(r,r/�Array�Map�Requiredr�rUrArKrMrorxr�r�r�r�rW�
check_boolr��MANIFEST_HOOK_DICT�MANIFEST_SCHEMArBr��partialr<�
load_manifest�LOCAL�META�Conditionalr�r�r�r�r�r�r��escape�CONFIG_FILE�_metar��_COMMON_HOOK_WARNINGSr rV�items�META_HOOK_DICT�CONFIG_HOOK_DICT�LOCAL_HOOK_DICT�ConditionalRecurse�NotIn�WarnAdditionalKeys�CONFIG_REPO_DICT�NoAdditionalKeys�DEFAULT_LANGUAGE_VERSION�RequiredRecurse�OptionalRecurse�
check_typer��
CONFIG_SCHEMAr�load_configr9rr�<module>r4s�	��"����	��
�$�$����&� �3�(�%�	��	�	�<�	(��#�T�^�^�D�$5�$5�t�7G�7G�H���
�
!�:�	 �x�	 ��
�/�

��&����%�%�$�*�*��D�H�H�����
�
�d�D�-�-�.���
�
�h� 0�� 0� 0��1B�1B� C�R�H����
�8"�z�"�0#�.�#�"�j�"�4"�Z�"�4�"�
�"�*� 1���T�X�X�
�D��D�M�M�$�����t�(�(�*;�<����D�M�M�$��)�)�*��D�M�M�&�$�+�+�,��D�M�M�'�4�,�,�-��j�*;�$�*;�*;�N�*K�L��D�M�M�'�4�,�,�b�1��D�M�M�'�-�r�2��D�M�M�)�/��6��D�M�M�'�+�4�+�+�N�;�f�X�F��D�M�M�*�.�d�.�.�~�>��C��D�M�M�/�#3�4�#3�#3�N�#C�R�H��D�M�M�!�#3�4�#3�#3�D�4E�4E�#F����D�M�M�&�*�$�*�*�4�+<�+<�=�r�B��D�M�M�,�����7��D�M�M�+�t����6��D�M�M�"�D�O�O�T�:��D�M�M�-��!2�!2�B�7��D�M�M�$�d�&7�&7����C��D�M�M�*�d�/�/��4��D�M�M�"�D�O�O�U�;��H�b�!��D�M�M�)�T�_�_�e�4�E#��H�$�*�*�/�0��	�:�	��"�	�!�!�����/��	�
�	��
���T�%�%��&�$�"8�"8��&��!7�!7��$O�M��M� �M��M�
�	M���� ����
�	�	�;�
��)�"�)�)�A�M�M�2�3�1�5�6�
�f�0�1�2�
��	!�2�
��)�"�)�)�A�M�M�2�3�1�5�6�
�f�5�6�7�#
��	� ��
�f�Z�(�)�
��	��2M��'�'�M� ���):�):�;��	�4�+<�+<�=��H�%�������
�D��D�M�M�$��)�)�*��D�M�M�$�)��)�)�%�/D�e�/D�*D�E�F��D�M�M��%�D�%�%�}�o�6�
���w����'��� %��� �'�,�,�
�!�0�1��4�4�8�8�
�D��D�M�M�$��)�)�*���&�,�,��� �X�r�*�!�"�j�"3�$�"3�"3�N�"C�D�#�$�%��(�$�(�(�
�D�������	���4�8�8��&��D�M�M�&�$�+�+�,��D��������,�-��
��
�
�5�$�'���D��������O�,�����D��������N�+����
�
�t� � ��"��
�
�5�$�/��	��D���4�6L�M�1��4$�4�8�8��d��D���.�)��N�n�M���
�����d��D�M�M�$�����t�(�(�*;�<����D����*�$�*�*�-=�">�?��D�M�M�$�����*��*�*�:�6�7�	���
�D���"�$<�b���$�f�-�"�#3�4��D�M�M�'�-�r�2��D�M�M�)�/��6��D�M�M�+�t����6��D���
	
�	�
��w��(9�(9�:��y�$�*;�*;�<��D���4������!6�7�U+�
�\	��	� �i���������	�r
Back to Directory File Manager