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

�

i0it���ddlmZddlZddlZddlZddlZddlZddlZddl	Z
ddlmZddlm
Z
ddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZdZej>Z ejBZ"ejFd��dd��Z$dd�Z%dd�Z&ejNdd��Z(						dd�Z)dd�Z*								dd�Z+y)�)�annotationsN)�	Generator)�Sequence)�	lang_base)�
parse_shebang)�
envcontext)�PatchesT)�Var)�Prefix)�cmd_output_b)�make_executable)�win_exe�rustenv�)�maxsizec�N�tdddd��ddk(rytjS)N�cargo�	--versionF�/)�check�cwdr�system)r�C�DEFAULT���H/opt/hc_python/lib/python3.12/site-packages/pre_commit/languages/rust.py�get_default_versionrs)���G�[��3�?��B�a�G���y�y�rc�.�|tjk(ry|S)z=Transform the language version into a rust toolchain version.�stable)rr)�language_versions r�_rust_toolchainr"+s���1�9�9�$���rc��dtjj|d�tjt	d�ffg|dk7rdt|�ff��Sd��S)N�PATH�binr�RUSTUP_TOOLCHAINr)�os�path�join�pathsepr
r")�
target_dir�versions  r�
get_env_patchr-3sb��	�"�'�'�,�,�z�5�1�2�:�:�s�6�{�K�L���(�"�!�/�'�":�
;�=���)+�
�rc#�K�tj|t|�}tt	||��5d��ddd�y#1swYyxYw�w)N)r�environment_dir�ENVIRONMENT_DIRrr-)�prefixr,�envdirs   r�in_envr3?s7����
�
&�
&�v���
H�F�	�M�&�'�2�	3�
�
4�	3�	3�s�1A
�A�	A
�A
�A
c��g}|D]3}|jd�\}}}|�d|xsd��}|j|��5tj|ddg|���y)N�:�@�*r�add)�	partition�appendr�	setup_cmd)r1�additional_dependencies�crates�dep�name�_�spec�crates        r�_add_dependenciesrCFsc���F�&���
�
�c�*�
��a���&��$�+�#��'���
�
�e��'�
�����%� 9�&� 9�:rc
�N�tj�5}td|fd|ff�5tjd���t
jdk(rd}nd}tjj|�}tjj|td��}t|d�5}tj ||�ddd�t#|�t%|d	d
ddd
�t%dddd|�ddd�ddd�y#1swY�DxYw#1swY�xYw#1swYyxYw)N�
CARGO_HOME�RUSTUP_HOME�rustup�win32zhttps://win.rustup.rs/x86_64zhttps://sh.rustup.rszrustup-init�wbz-yz--quietz--no-modify-pathz--default-toolchain�none�	toolchain�installz--no-self-update)�tempfile�TemporaryDirectoryrr�find_executable�sys�platform�urllib�request�urlopenr'r(r)r�open�shutil�copyfileobjr
r)rKr2�
rustup_dir�url�resp�rustup_init�fs       r�install_rust_with_toolchainr]Ss���	�	$�	$�	&�*�
�,��/�-��1L�M�
N��,�,�X�6�>��<�<�7�*�8�C�0�C��~�~�-�-�c�2�� �g�g�l�l�:�w�}�7M�N���+�t�,���&�&�t�Q�/�-���,����y�2D�)�6��

��+�y�2D��
�-O�
'�	&�-�,��O�
N��
'�	&�s;�D�BD�)D�2D�2D�D�D�D	�D�D$c	��tj|t|�}|D�chc]}|jd�s�|��}}t	|�|z
}dh}|D]T}|jd�}|j
d�\}	}
}|dk7r|j|	d|f��C|j|	f��Vtj�5}|jt||��|dk7rUtt|�|�|jtj��}
|jt!d|
ff��t#|�dkDrt%||�|D]}t'd	d
dd|g|��d
|j(i��!	ddd�ycc}w#1swYyxYw)Nzcli:)z--path�.r5�rrrFrrrLz--binsz--rootr)rr/r0�
startswith�set�removeprefixr9r8�
contextlib�	ExitStack�
enter_contextr3r]r"rMrNr�lenrCr�
prefix_dir)r1r,r<r2r>�cli_deps�lib_deps�packages_to_install�cli_dep�packager@�
crate_version�ctx�tmpdir�argss               r�install_environmentrrqs���
�
&�
&�v���
H�F�/��.��#�.�.��2H��.�
���*�+�h�6�H�1@�0A�����&�&�v�.��$+�$5�$5�c�$:�!���M��B���#�#�W�k�=�$I�J��#�#�W�J�/�
�
�	�	�	�3����&���1�2��h��'���(@�&�I��&�&�x�'B�'B�'D�E�F����j�=�&�*A�)C�D�E��x�=�1���f�h�/�'�D����H�h��
�AE�
��%�%�
�(�
 �	���
 �	�s�E9�E9�;B4E>�>F)�return�str)r!rtrsrt)r+rtr,rtrsr	)r1rr,rtrszGenerator[None])r1rr<zset[str]rs�None)rKrtr2rtrsru)r1rr,rtr<z
Sequence[str]rsru),�
__future__rrd�	functools�os.pathr'rVrPrM�urllib.requestrR�collections.abcrr�pre_commit.constants�	constantsr�
pre_commitrr�pre_commit.envcontextrr	r
�pre_commit.prefixr�pre_commit.utilrr
rr0�basic_health_check�health_check�basic_run_hook�run_hook�	lru_cacherr"r-�contextmanagerr3rCr]rrrrr�<module>r�s���"����
�
���%�$� � �$�,�*�%�$�(�+�#����+�+���#�#������Q��
� �
� �	�������
;��
;�!)�
;�
�
;��</��/��/�"/�/�
�	/r
Back to Directory File Manager