← back to Atmos Game

assets/gen/.venv/lib/python3.12/site-packages/filelock/__pycache__/_strict.cpython-312.pyc

182 lines

�

c�bj������UddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlmZm
Z
mZmZmZmZmZddlmZddlmZmZmZmZddlmZmZmZdd	lmZdd
l m!Z!m"Z"ddl#m$Z$ddl%m&Z&m'Z'erdd
l(m)Z)edZ*e+ddh�Z,de-d<dZ.de-d<dZ/de-d<dZ0de-d<dZ1de-d<dZ2de-d<dZ3de-d <d!Z4de-d"<d#Z5de-d$<dZ6de-d%<d&Z7d'e-d(<d)Z8de-d*<d+Z9d'e-d,<d-Z:d'e-d.<e;ed/d�Z<de-d0<e$jz�Z>d1e-d2<e+hd3��Z?d4e-d5<e@ed6�ZAd7e-d8<ej�ej�vZDd7e-d9<ej�ej�vZFd7e-d:<ejej�vZGd7e-d;<eAxrej�ej�vZId7e-d<<dwd=�ZJeJ�ZKd7e-d><dxd?�ZLeL�ZMd4e-d@<GdA�dBe�ZNedC�D�GdE�dF��ZOGdG�dHeP�ZQdydI�ZRdzdJ�ZSd{dK�ZTd|dL�ZUd}dM�ZVd~dN�ZWd{dO�ZX										ddP�ZYd�dQ�ZZd�dR�Z[d�dS�Z\d�dT�Z]								d�dU�Z^										d�dV�Z_										d�dW�Z`								d�dX�Za						d�dY�Zbd�dZ�Zcd�d[�Zdd�d\�Zed�d]�Zfd�d^�Zgd�d_�Zh								d�d`�Zid�da�Zjd�db�Zkdddc�									d�dd�Zld�de�Zmd�df�Znd�dg�Zod�dh�Zpd�di�Zqd�dj�Zrd�dk�Zsd�dl�Ztd�dm�Zud�dn�Zvd�do�Zwd�dp�Zxd�dq�Zyd�dr�Zzd�ds�Z{d�dt�Z|d�du�Z}gdv�Z~y)��)�annotationsN)�	dataclass)�EACCES�EEXIST�ENOENT�ENOSYS�EPERM�ESTALE�EXDEV)�Path)�
TYPE_CHECKING�Final�Literal�cast�)�BaseFileLock�
_canonical�_raise_cleanup_errors)�SoftFileLockProtocolError)�	host_name�process_start_token)�STRICT_SOFT_SENTINEL_RECORD)�ensure_directory_exists�	write_all)�Iterator)�intent�heldrrzFinal[frozenset[str]]�
_CLAIM_STATESz	.filelockz
Final[str]�_COORDINATION_SUFFIX�claims�_CLAIM_DIRECTORY_NAMEzfilelock-strict-v1�_CLAIM_MAGICiz
Final[int]�_CLAIM_RECORD_LIMIT��_CLAIM_NAME_PART_COUNT� �_TOKEN_HEX_LENGTHz.private-v1-�_PRIVATE_RECORD_MARKER�.tmp�_PRIVATE_RECORD_SUFFIX�!_PRIVATE_RECORD_RANDOM_HEX_LENGTHg@zFinal[float]�_PRIVATE_RECORD_GRACE�
�_UNLINK_MAX_RETRIESg�?�_CLAIM_READ_GRACEg����Mb`?�_CLAIM_READ_RETRY�O_BINARY�	_O_BINARYzFinal[bytes]�_LEGACY_SENTINEL>r��2zFinal[frozenset[int]]�_WINDOWS_HARD_LINK_UNSUPPORTED�linkzFinal[bool]�	_HAS_LINK�_OPEN_SUPPORTS_DIR_FD�_UNLINK_SUPPORTS_DIR_FD�_STAT_SUPPORTS_DIR_FD�_LINK_SUPPORTS_DIR_FDc��tsy	tj�5}t|d�}|j	�tj|t|d�d��ddd�y#1swYyxYw#tttf$rYywxYw)NFzprobe-sourcez
probe-link)�follow_symlinksT)
r8�tempfile�TemporaryDirectoryr�touch�osr7�OSError�NotImplementedError�
ValueError)�	directory�sources  �g/Users/macstudio3/Projects/atmos-game/assets/gen/.venv/lib/python3.12/site-packages/filelock/_strict.py�_probe_link_follow_symlinksrI=sy�����
�
(�
(�
*�i��)�^�4�F��L�L�N��G�G�F�D��L�9�5�Q�+��
+���
�(�*�5����s.�A1�?A%�A1�%A.�*A1�.A1�1B�B�_LINK_HONORS_FOLLOW_SYMLINKSc	��ttdttdd��}t|�tth�Stt|h�S)N�ENOTSUP�
EOPNOTSUPP)�getattr�errno�	frozensetrr)�
not_supporteds rH�#_probe_hard_link_unsupported_errnosrRRs?���E�9�g�e�\�4�.P�Q�M��
�(=�f�e�_�b�b�F�E�S`�Ca�b�b��_HARD_LINK_UNSUPPORTED_ERRNOSc����eZdZUdZdZded<dZded<dZded<dZd	ed
<dZ	ded<dZ
d
ed<dd�Zdd�Ze
dd��Zdd�Zd�fd�Zd�fd�Zdd�Zdd�Ze
dd��Z�xZS) �StrictSoftFileLockz:Portable fail-closed lock based on immutable owner claims.T�bool�_preserve_lock_file_supportedF�_on_acquired_supported�_lifetime_supportedz<a strict claim is never broken by age, only by force_break()�str�_lifetime_unsupported_reason�_serialize_transitionsg�������?�float�_poll_backoff_capc�D�|jjx}�&t|j�x}|j_t	|�}t	|�t
���}|tz}ttj|��t|j|�t|j|�t|j||j��x}�y	ttj|��}|j%||�	|j'|||�y#t$r?}	tj |��#t$r}t#d||�Yd}~�d}~wwxYwd}~wwxYw#t$r-|jj(|k(r|j+||��wxYw)Nz)strict sentinel inspection cleanup failed)�_context�
claim_rootr�	lock_filerrr!rrB�fspath�_ensure_protocol_directory�_open_or_create_sentinel�
_open_mode�_file_identity�fstat�
BaseException�closer�_mark_descriptor_pending�_attempt_doorway�pending_lock_file_fd�_discard_doorway)	�selfrb�	lock_path�coordination_directory�claim_directory�sentinel_fd�sentinel_identity�inspection_error�close_errors	         rH�_acquirezStrictSoftFileLock._acquirensy���-�-�2�2�2�J�;�4>�t�~�~�4N�N�J����1���$�	�!%���4H�3I�&J�!K��0�3H�H����	�	�)� 4�5�"�4�>�>�3I�J�"�4�>�>�?�C�3�D�N�N�I�t���O`�a�a�K�j��	� .�r�x�x��/D� E��	
�%�%�k�3D�E�	��!�!�/�;�@Q�R���	�
r�����%�
��!�
r�%�&Q�Sc�ep�q�q���
r��	���	��}�}�1�1�[�@��%�%�k�3D�E��	�sH�D�
E)�	E&�(D>�=E!�>	E�
E�E!�E�E!�!E&�)6Fc��t|j|�r|j||�ytjt
dz�}t
d|�}t||z�}	t|t|�|j��}|�|�|f|j$_t|j|�}	|	r't)d�|	D��st+d�|	D��|k7r|j||�yt
d|�}
t||
z�}	t-|||
�}||f|j$_|�d|j$_|�t|j|�}	||
hj/d�|	D��rt+d�|	D��d	|�d
�k7r|j||�y|j1||�y#t$r|j||�Yyttf$rV}t|j|�t|t�r*|j t"k(r|j||�Yd}~y�d}~wwxYw#ttf$r}t|j|��d}~wwxYw)N�rc3�:K�|]}|jdk(���y�w)rN)�state��.0�claims  rH�	<genexpr>z6StrictSoftFileLock._attempt_doorway.<locals>.<genexpr>�s����=�f�U�5�;�;�&�(�f�s�c3�4K�|]}|j���y�w�N��namer}s  rHr�z6StrictSoftFileLock._attempt_doorway.<locals>.<genexpr>�s����2�6�%�5�:�:�6���r�c3�4K�|]}|j���y�wr�r�r}s  rHr�z6StrictSoftFileLock._attempt_doorway.<locals>.<genexpr>�s����1Q�&��%�*�*�&�r�c3�FK�|]}t|j����y�wr�)�_claim_token_keyr�r}s  rHr�z6StrictSoftFileLock._attempt_doorway.<locals>.<genexpr>�s����D�V�E�#�E�J�J�/�V�s�!zv1-�.claim)�_read_existing_claimsrcro�secrets�	token_hexr'�_claim_namer[�_publish_record�
_claim_recordrg�_PrivateRecordReclaimedErrorrDrC� _raise_if_hard_links_unsupported�
isinstancerOrra�owner_claim_paths�any�min�_link_no_replace�issubset�_mark_descriptor_owned)
rprsrtru�token�intent_name�intent_path�publication_cleanup_error�errorr �	held_name�	held_path�link_cleanup_errors
             rHrmz#StrictSoftFileLock._attempt_doorway�s:�� �����A��!�!�+�/@�A���!�!�"3�q�"8�9��!�(�E�2���/�K�7�8��
	�(7��]�SX�EY�[_�[j�[j�[l�(m�%�%�0�+�+�+6�.��
�
�'�&�t�~�~��G����=�f�=�=��2�6�2�2�k�A��!�!�+�/@�A�����.�	���)�3�4�	�	�!1�/�;�PY�!Z��,5�k�*B��
�
�'��)�.0�D�M�M�+�$�$�&�t�~�~��G���i�(�1�1�1Q�&�1Q�Q��D�V�D�D�#�e�W�TZ�H[�[��!�!�+�/@�A��	
�#�#�K�1B�C��_,�	��!�!�+�/@�A��#�W�-�	�,�T�^�^�U�C��%��)�e�k�k�V�.C��%�%�k�3D�E����	��.$�W�-�	�,�T�^�^�U�C���	�s=�!$F,�
H0�,H-�	H-�AH(�'H(�(H-�0I�?I�Ic�B�t|j|j�S)z(Published claims that block acquisition.)r�rc�_claim_directory�rps rHr zStrictSoftFileLock.claims�s��%�T�^�^�T�5J�5J�K�KrSc�|�t|�t|j|�t|j|�x}	�|�y)zYRemove one named claim, allowing overlap if its owner still holds the protected resource.N)�_validate_force_break_name�_require_exact_namer��_unlink_in_directory)rp�
claim_name�
cleanup_errors   rH�force_breakzStrictSoftFileLock.force_break�sD��"�:�.��D�1�1�:�>�1�$�2G�2G��T�T�M��� ��rSc�>��|jryt�|�	|�yr�)�	is_locked�super�_rollback_failed_acquire)rp�acquisition_error�	__class__s  �rHr�z+StrictSoftFileLock._rollback_failed_acquire�s���
�>�>��
��(�):�;rSc�^��|jsd|j_t�|�|�yr�)r�rarbr��_reconcile_failed_acquire)rp�	canonicalr�s  �rHr�z,StrictSoftFileLock._reconcile_failed_acquire�s#����~�~�'+�D�M�M�$�
��)�)�4rSc��td|jj�}d|j_t	|jj
�\}}t
|�|j_|rtd|�|j�	|j|d��|r
td|�yy#t$r}|j|�Yd}~�/d}~wwxYw)N�intzstrict claim release failedF��default_suppresseszstrict release cleanup failed)rra�lock_file_fdrb�_unlink_owner_pathsr��tuple�_raise_recorded_errors�_mark_descriptor_released�_close_released_fdrj�append)rp�fd�	remaining�errorsrws     rH�_releasezStrictSoftFileLock._release�s���
�%����3�3�
4��#'��
�
� �/��
�
�0O�0O�P��	�6�*/�	�*:��
�
�'��"�#@�&�I��&�&�(�	'��#�#�B�5�#�A��"�#B�F�K����	'��M�M�+�&�&��	'�s�
B0�0	C�9C�Cc�p�t|jj�\}}t|�|j_|r|j	||�td|�|j
�	|j|d��|r
td|�yy#t$r}|j|�Yd}~�/d}~wwxYw)Nz#strict doorway claim cleanup failedFr�zstrict doorway cleanup failed)
r�rar�r�r�r�r�r�rjr�)rpr��identityr�r�rws      rHroz#StrictSoftFileLock._discard_doorway�s���/��
�
�0O�0O�P��	�6�*/�	�*:��
�
�'���'�'��H�5�"�#H�&�Q��&�&�(�	'��#�#�B�5�#�A��"�#B�F�K����	'��M�M�+�&�&��	'�s�.B�	B5�B0�0B5c���|jjr,t|jjd�jStt	|j
��t���tzS)Nr)rar�r�parentrrcrr!r�s rHr�z#StrictSoftFileLock._claim_directorysU���=�=�*�*���
�
�7�7��:�;�B�B�B��z�$�.�.�1�2�3G�2H�I�J�Mb�b�brS)�return�None)rsrrtr�ru�tuple[int, int]r�r�)r��tuple[StrictSoftFileClaim, ...])r�r[r�r�)r�rjr�r�)r�r[r�r�)r�r�r�r�r�r�)r�r)�__name__�
__module__�__qualname__�__doc__rX�__annotations__rYrZr\r]r_rxrm�propertyr r�r�r�r�ror��
__classcell__)r�s@rHrVrV_s����D�*.�!�4�.�#(��D�(�!&���%�(f� �#�f�#'��D�'� $��u�#��:9D�v�L��L� �<�5�
L�L��c��crSrVT)�frozenc�R�eZdZUdZded<ded<ded<ded<ded	<d
Zded<y
)
�StrictSoftFileClaimz"One parsed strict soft-lock claim.r[r��StrictSoftFileClaimStater|r�r��pid�hostnameN�
int | None�start)r�r�r�r�r�r�r�rSrHr�r�s+��,�

�I�#�#��J�	�H��M��E�:�rSr�c��eZdZy)r�N)r�r�r�r�rSrHr�r�s��rSr�c��	t|�S#t$rYnt$rYywxYwt|t	j��	tt
j|�t|�}|�X|�#t$rYyttf$r:}t||�t|t�r|jtk7r�Yd}~nd}~wwxYw	t|�S#t$rYywxYwr�)�_open_sentinel�FileNotFoundErrorrC�!_reclaim_sentinel_private_records�timer�rBrdr3r�rDr�r�rOr)rc�path�moder�r�s     rHrfrfs�����d�#�#���
�������&�d�D�I�I�K�8�
,�$3�B�I�I�d�O�EU�W[�$\�!�%�0�+�+��(�����)��(��E�:��%��)�U�[�[�F�-B��.C������d�#�#������s@�

�	#�#�#�$A-�-	C�8C�0B;�;C�
C�	C�Cc�|�t|tt��\}}|tk(r|Stj|�yr�)�_open_record�lenr3rBrk)r�r��records   rHr�r�3s4���d�C�(8�$9�:�J�B��
�!�!��	��H�H�R�L�rSc	��	tj|�5}t||�}ddd�g}D]I}t|�x}�
t||d��t|||�x}	��-|jt||||	���Kt|�S#1swY�dxYw#t$r9}d|jxst|�j��}t|d|�|�d}~wwxYw)Nzcannot list claim directory: z&unknown claim name or protocol version)
rB�scandir�_public_claim_namesrC�strerror�typer�r�_parse_claim_name�_read_claim_recordr��_parse_claimr�)
rcrF�entries�namesr��reasonr r��
name_partsr�s
          rH�_read_claimsr�;s���L�
�Z�Z�	�
"�g�'�	�7�;�E�#�)+�F���+�D�1�1�J�:�+�I�t�=e�f�f�(��I�t�D�D�F�Q��M�M�,�y�$�
�F�K�L�	�
��=��#�
"���L�0����1W�4��;�CW�CW�0X�Y��'�	�4��@�e�K��L�s-�B�
B�B�B�B�	C�4C�Cc�z�tj�tz}d}	|rtjt�t|||�\}}|�|Stj�|k\rU|jtk(ryd|jxs"t|�xst|�j��}t|||�|�d}��)NFT�cannot read claim: )
r��	monotonicr/�sleepr0�_attempt_claim_readrOr
r�r[r�r�r)rcrFr��deadline�delayingr��pendingr�s        rHr�r�Ls����~�~��"3�3�H��H�
���J�J�(�)�-�i��D�I�����?��M��>�>��x�'��}�}��&��*�7�+;�+;�+e�s�7�|�+e�t�T[�}�Oe�Oe�*f�g�F�+�I�t�V�D�'�Q���rSc�H�	t||zt�dfS#t$rYyt$r}d|fcYd}~Sd}~wt$rb}|j
tk(r	d|fcYd}~Sd|jxs"t|�xst|�j��}t|||�|�d}~wwxYw)N)NNr�)�_read_recordr#r��PermissionErrorrCrOr
r�r[r�r�r)rcrFr�r�r�s     rHr�r�fs���
L��I��,�.A�B�D�H�H��������U�{����L��;�;�&� ���;��&�u�~�~�'[��U��'[�t�E�{�G[�G[�&\�]��'�	�4��@�e�K��	L�s4��	B!�B!�3�B!�B!�B�B!�AB�B!c�b�g}tj�}|D]�}|jjd�s|j|j��:t	|j�x}��Rt|�	��_t
tj|�df|j|���t|�S)N�.)
r�r��
startswithr��_private_public_namer��_reclaim_private_recordrBrd�sorted)rFr�r��now�entry�public_names      rHr�r�ws����E�
�)�)�+�C����z�z�$�$�S�)��L�L����$�1�%�*�*�=�=�k�
J�O`��P
��P�
$�R�Y�Y�y�%9�4�$@�%�*�*�c�R�
��%�=�rSc�<�|j�syt||�S)Nr�)�existsr�)rcrFs  rHr�r��s��������	�9�-�-rSc��	|jd�jd�\}}}}}}	t|�}
|rt|�nd}tj	|�jd�}t|	|tk(||dk(d|
cxkxrdknct|
�|k(|duxs|dk\xrt|�|k(|j�j�|k(xr%|j�xrtd�|D��f�s
t||d��t||d||
||�	�S#t
tf$r}
t||d�|
�d}
~
wwxYw)
N�ascii�
zutf-8zmalformed claim recordri���rc3�<K�|]}|j����y�wr�)�isspace�r~�	characters  rHr�z_parse_claim.<locals>.<genexpr>�s����B��I�I�%�%�'��s�)r�r|r�r�r�r�)�decode�splitr��bytes�fromhex�UnicodeDecodeErrorrEr�allr"r[�encode�hex�isprintabler�r�)rcr�r�r��magicr��pid_text�hostname_hex�
start_text�trailingr�r�r�r�s              rHr�r��sY��^�EK�]�]�SZ�E[�Ea�Ea�bf�Eg�B��u�h��j�(��(�m��#-��J��4���=�=��.�5�5�g�>�����
���
��A���	�S��I���C��H��
��
�B�%�1�*�A��U��z�)A��������<�/�	C�� � �"�	C��B��B�B�B�
�
�(�	�4�9Q�R�R��D�
�1�
�U�PS�^f�ns�t�t��
�
�+�^�'�	�4�9Q�R�X]�]��^�s�A%D!�!E�0D>�>Ec�(�|jd�sy|jd�jd�}t|�tk7s|dt
vs|ddk7ry|d}t|�tk7std�|D��rytd|d�|fS)	Nr��-rr�v1rzc3�$K�|]}|dv���
y�w��0123456789abcdefNr�rs  rHr�z$_parse_claim_name.<locals>.<genexpr>�s����-i�ch�V_�i�?Q�.Q�ch���r�)	�endswith�removesuffixrr�r%rr'r�r)r��partsr�s   rHr�r��s����=�=��"�����h�'�-�-�c�2�E�
�5�z�+�+�u�Q�x�}�/L�PU�VW�PX�\`�P`���!�H�E�
�5�z�&�&�#�-i�ch�-i�*i���*�E�!�H�5�u�<�<rSc��|�d|�d�S)Nz-v1-r�r�)r|r�s  rHr�r��s���W�D���v�&�&rSc�B�|jd�jd�S)Nzheld-zintent-)�removeprefixr�s rHr�r��s�����W�%�2�2�9�=�=rSc
��t�j�j�}tt	j
��}|�dn
t
|�}t�d|�dt	j
��d|�d|�d�
jd�S)N�rr)rrrrrB�getpidr[r")r�rr�rs    rHr�r��sr���;�%�%�'�+�+�-�L���	�	��,�E��}��#�e�*�J��^�2�e�W�B�r�y�y�{�m�2�l�^�2�j�\�QS�T�[�[�\c�d�drSc���tjj|�\}}|xstj}t	|�}t
rt
|�nd}||f}	t|||f||�|�	tj|�yy#t$rA}	|�tj|��#t$r}	td||	�Yd}	~	�d}	~	wwxYwd}~wwxYw#t$r}	|	cYd}	~	Sd}	~	wwxYw)Nz+strict publication directory cleanup failed)rBr�r�curdir�_private_record_namer9�_open_directory�_publish_record_in_directoryrjrkr)
�public_pathr�r�rFr�private_name�directory_fd�
directory_ref�publication_errorrws
          rHr�r��s���
 �W�W�]�]�;�7��I�{��&�R�Y�Y�I�'��4�L�1F�?�9�-�D�L��|�+�M��$�]�\�;�4O�QU�W]�^���	��H�H�\�"�����	q��'�����&�	���	q�!�"O�Qb�do�p�p�
��	q��	���	����	�sZ�B�-C�	C�B&�%C	�&	C�/
C�<C	�C�C	�	C�	C&�C!�C&�!C&c���tjtjztjztz}ttdd�x}�||z}t
||d||�}d}	ttj|��}t||�t|||�t||d||�\}	}
|	�|
�
t|	|
�yy#t$r,}t||d||�\}	}
|	�|
�td||	|
��d}~wwxYw)N�
O_NOFOLLOWrz(strict record publication cleanup failed)rB�O_RDWR�O_CREAT�O_EXCLr2rN�_open_relativerhrir�_link_private_recordrj� _close_and_unlink_private_recordr�!_raise_record_finalization_errors)r7r�r�r��flags�
o_nofollow�
private_fd�private_identityr8rw�unlink_errors           rHr3r3�s!��
�I�I��
�
�"�R�Y�Y�.��:�E��b�,��5�5�
�B�
�����
�u�Q�x���E�J�/3���)�"�(�(�:�*>�?���*�f�%��]�E�3C�D� !A��
�a����	!��K����,�":�)�+�|�D�#;��+��$D���!�H���	%
�!��\��"�l�&>�!�:�!���	
�	���s�&7C�	C8�'C3�3C8c���d}	tj|�d}	|�
t||�n
t	|||�||fS#t$r}|}Yd}~�3d}~wwxYw#t
$rY||fSt$r}|}Yd}~||fSd}~wwxYwr�)rBrkrj�_unlink_relative�_unlink_relative_if_identityr�)r7r5rDrErwr�rFs       rHr@r@s���)-�K��
�����*.�L���#��]�L�9�(���FV�W�
��$�$����������
����$�$�������$�$���s2�<�A�	A�A�A�	A9�"A9�*A4�4A9c��	t|g|���t||d�|k(ryd}t|��#t$r#}t||d���d}t|�|�d}~wwxYw)Nrz(private publication record was reclaimedrz'private publication record was replaced)�_link_relativer��_relative_identityr�)r7r�rEr��msg�msg_0s      rHr?r?su��
;��}�-�u�-��-��q��2�6F�F��5�E�
&�u�
-�-���;��m�U�1�X�6�B��8��*�3�/�U�:��	;�s�.�	A�A�Ac��||fD�cgc]}|��|��	}}t|�dkDrtd|dg|dd���|d�cc}w)Nrz!strict record finalization failedr�r�r)rwrFr�r�s    rHrArA.sZ��#.�|�!<�
R�!<���@Q�e�!<�F�
R�
�6�{�Q���A�6�!�9�Z�v�VW�VX�z�Z�
��)�O��Ss�;�;c�R�d|�t�tjtdz��d�S)Nrrzr))r(r�r�r+)rs rHr1r18s/��
�{�m�2�3�G�4E�4E�Fg�kl�Fl�4m�3n�nr�s�srSc��|jd�r|jt�sy|dtt�j	t
�\}}}|t
k7s$t|�tk7std�|D��ry|S)Nrrc3�$K�|]}|dv���
y�wr#r�rs  rHr�z'_private_public_name.<locals>.<genexpr>Cs����O�J�y�y� 2�2�J�r%)rr&r*r��
rpartitionr(r+r�)r5r�marker�
random_hexs    rHrr<sv���"�"�3�'�|�/D�/D�E[�/\��&2�1��<R�8S�7S�&T�&_�&_�`v�&w�#�K����(�(��z�?�?�?��O�J�O�O���rSc�2�tj|j�df}tj|j�5}|D]<}t	|j
�|j
k(s�&t
||j
|��>	ddd�y#1swYyxYwr�)rBrdr�r�rr�r)r�rr7r�rs     rHr�r�Isf���I�I�d�k�k�*�D�0�M�	���D�K�K�	 �G��E�#�E�J�J�/�4�9�9�<�'�
�u�z�z�3�G��
!�	 �	 �s�(B
�*B
�
Bc���|\}}	|�trtj||d��nt||�j	�}tj|j�st||��d�}t|��|jdk(r||jz
tkry	t||�y#t
$rYywxYw#t
$rYyt$r#}|jtthvr�Yd}~yd}~wwxYw)NF��dir_fdr>z  is not a regular private recordr)r;rB�statr�lstatr��S_ISREG�st_moderC�st_nlink�st_mtimer,�_unlink_private_record_oncerOrr	)r7r5rrFr6�private_statrMr�s        rHrrQs���+��I�|���'�,A�
�G�G�L��u�M��i��.�4�4�6�	��<�<��,�,�-��i��.�/�/O�P���c�l������!�c�L�,A�,A�&A�DY�&Y���#�M�<�@��������
�����;�;�v�u�o�-��.���s/�:B.�!B=�.	B:�9B:�=	C3�C3�C.�.C3c��|\}}|�trtj||��yt||�j�y�N�rZ)r:rB�unlinkr)r7r5rFr6s    rHrarais6��+��I�|�� �%<�
�	�	�,�|�4��Y��%�,�,�.rSc��|\}}	|�trtj||d��}nt||�j	�}t
|�S#t
$rYywxYw)NFrY)r;rBr[rr\r�rh)r7r�rFr6�	path_stats     rHrLrLssb��+��I�|���#�(=�����\�5�Q�I��Y��-�3�3�5�I��)�$�$������s�;A
�
	A�Ac��t||�|k(r/tjt�5t	||�ddd�yy#1swYyxYwr�)rL�
contextlib�suppressr�rH)r7r�r�s   rHrIrIs@��
�-��.�(�:�
�
 �
 �!2�
3��]�D�1�4�
3�;�
3�
3�s�
A�A	c��|\}}|�tj||||��Stjt||�||�Srd)rB�openr)r7r�rBr�rFr6s      rHr>r>�sK��+��I�|��#�	����e�T�,�7���W�W�T�)�T�*�E�4�
8�rSc�~�|\}}|�trt||||��ytt||�t||��y)N��
src_dir_fd�
dst_dir_fd)r<�_link_no_followr)r7�source_name�destination_namerFr6s     rHrKrK�sA��+��I�|���$9���%5�,�[g�h���D��K�0�$�y�BR�2S�TrSroc��ts
d}t|��trtj||||d��ytj||||��y)Nz'os.link is unavailable on this platformF)rprqr>ro)r8rDrJrBr7)rG�destinationrprqrMs     rHrrrr�sE���8��!�#�&�&�$�
�����
�z�ch�i�
�����
�z�RrSc���|\}}|�trtj||��ytjdk(rtt
|�|�yt
||�j�y)Nre�win32)r:rBrf�sys�platformr�r)r7r�rFr6s    rHrHrH�sP��+��I�|���$;�
�	�	�$�|�,�	����	 ��T�)�_�d�3��Y���$�$�&rSc�p�tr;tt|��}	t||||��	tj|�yt||z||z�y#t$r?}	tj|��#t$r}td||�Yd}~�d}~wwxYwd}~wwxYw#t$r}|cYd}~Sd}~wwxYw)Nroz$strict link directory cleanup failed)r<r2r[rrrjrBrkr)rFrsrtr6�
link_errorrws      rHr�r��s����&�s�9�~�6��	��K�)9�l�_k�l�	��H�H�\�"���I��+�Y�9I�-I�J����	�
g�����&�
��!�
g�%�&L�j�Ze�f�f���
g��	���	����	�sX�A�B �	B�A5�4B�5	B�>
B�B�B�B�B� 	B5�)B0�*B5�0B5c��tjj|�\}}tt	|xstj
�|�Sr�)rBr�rr�rr0)r�rFr�s   rH�_unlink_owner_pathr~�s3���g�g�m�m�D�)�O�I�t���Y�%;�"�)�)� <�d�C�CrSc���|D�cgc]}|t|�f��}}|D���cgc]
\}\}}|r�|��c}}}|D��cgc]
\}\}}|��|��c}}fScc}wcc}}}wcc}}wr�)�_unlink_owner_path_result)�pathsr��results�removed�_r�s      rHr�r��s}��CH�I�5�4��/��5�6�5�G�I�+2�B�7�'�T�<�G�Q�'�D�7�B�#*�E�#*�-�!�Z�a��e�.?��7�E����J��B��Es�A�
A�A�
A�
Ac�j�	t|�}d|fS#t$rYyt$r}d|fcYd}~Sd}~wwxYw)N)TNFT)r~r�rj)r�r�r�s   rHr�r��sE���*�4�0�
�
�����	������e�|����s��	2�2�-�2�2c�N�t|�dkDrt||dg|dd���|d�)NrrrP)�messager�s  rHr�r��s/��
�6�{�Q���g�v�a�y�>�6�!�"�:�>�
��)�OrSc��trCtt|��}	tj||��	tj|�ytjdk7rt||z�j	�yd}tt�D]T}t||z�x}�y|jtt hvs|tdz
k(r|�t#j$|�|dz}�Vy#t
$r?}	tj|��#t
$r}td||�Yd}~�d}~wwxYwd}~wwxYw#t
$r}|cYd}~Sd}~wwxYw)Nrez&strict unlink directory cleanup failedrxg����MbP?rrz)r:r2r[rBrfrjrkrryrzr�ranger.�
_unlink_errorrOrr	r�r�)rFr�r6rFrw�retry_delay�attemptr�s        rHr�r��s4���&�s�9�~�6��	��I�I�d�<�0�	��H�H�\�"��
�|�|�w���Y��
��%�%�'���K��,�-��"�9�t�#3�4�4�E�=���;�;�v�u�o�-��<O�RS�<S�1S��K��
�
�;���q���
.���-�	�
k�����&�
��!�
k�%�&N�P\�^i�j�j���
k��	���	����	�sX�C#�D.�#	D+�-D�D&�	D#�
D�D&�D#�#D&�&D+�.	E�7D>�8E�>Ec�V�	|j�y#t$r}|cYd}~Sd}~wwxYwr�)rfrC)r�r�s  rHr�r�s,������
���������s��	(�#�(�(c	��tj|tjttdd�zttdd�z�S)N�O_DIRECTORYrr:)rBrm�O_RDONLYrN)rFs rHr2r2s:��
�7�7��
���g�b�-��3�3�g�b�,�PQ�6R�R��rSc�N�t||�\}}tj|�|Sr�)r�rBrk)r��limitr�r�s    rHr�r�s"���d�E�*�J�B���H�H�R�L��MrSc���|j�}tj|j�s|�d�}t	|��t
jtztt
dd�ztt
dd�z}tj||�}	t||||�}||fS#t$r?}	tj|��#t$r}td||�Yd}~�d}~wwxYwd}~wwxYw)N� is not a regular filer:r�
O_NONBLOCKz!strict record read cleanup failed)r\r[r]r^rCrBr�r2rNrm�_read_opened_recordrjrkr)	r�r�rhrMrBr�r��
read_errorrws	         rHr�r�s����
�
��I��<�<�	�)�)�*���,�-���c�l���K�K�)�#�g�b�,��&B�B�W�R�Q]�_`�Ea�a�E�	����u�	�B��$�R��y�%�@���v�:���
��	`��H�H�R�L�	���	`�!�"E�z�S^�_�_�
��	`���s<�B$�$	C,�.C�C'�	C$�

C�C'�C$�$C'�'C,c�P�tj|�}tj|j�s|�d�}t|��t
|�t
|�k7r|�d�}t|��tj||dz�}t|�|kDr|�d|�d�}t|��|S)Nr�z changed while openingrz	 exceeds z bytes)	rBrir[r]r^rCrh�readr�)r�r�rhr��opened_statrMr�s       rHr�r�.s����(�(�2�,�K��<�<��+�+�,���,�-���c�l���k�"�n�Y�&?�?���,�-���c�l��
�W�W�R����
#�F�
�6�{�U����i��w�f�-���c�l���MrSc�6�	|j�y#t$r|	|j�j}n"#t$r}t|dd|���|�d}~wwxYwt
j|�rt
j|�sYyt|d|�d��d�wxYw)Nzcannot inspect z is not a real directory)	�mkdir�FileExistsErrorr\r^rCrr[�S_ISDIR�S_ISLNK)rcrFr�r�s    rHrere=s���	k�������k�	g��?�?�$�,�,�D���	g�+�I�t��y�k�=Z�[�af�f��	g���<�<���d�l�l�4�&8��'�	�4�I�;�F^�9_�`�fj�j�k�s/��	B�8�B�	A�A�A�-B�Bc�����xs5�jd�xs"�tjtjhv}|st	�fd�dD��r
d}t|��y)Nrc3�&�K�|]}|�v���
y�wr�r�)r~�	separatorr�s  �rHr�z-_validate_force_break_name.<locals>.<genexpr>Ls�����W�CV�i�	�T� 1�CV�s�)�/�\�z,claim_name must be one public claim basename)rrBr0�pardirr�rE)r��invalid_componentrMs`  rHr�r�JsY��� ��Z�D�O�O�C�$8�Z�D�R�Y�Y�PR�PY�PY�DZ�<Z���C�W�CV�W�W�<����o��XrSc����tj|�5}t�fd�|D��s(tttj
t����	ddd�y#1swYyxYw)Nc3�<�K�|]}|j�k(���y�wr�r�)r~rr�s  �rHr�z&_require_exact_name.<locals>.<genexpr>Ss�����;�7�%�5�:�:��%�7�s�)rBr�r�r�rr�)rFr�r�s ` rHr�r�QsH���	���I�	�'��;�7�;�;�#�F�B�K�K��,?��F�F�<�
�	�	�s�=A�A'c��t|t�xs'|jtvxst	|dd�t
v}|rd}t
|d|�|�y)N�winerrorzCfilesystem does not support atomic no-replace hard-link publication)r�rDrOrTrNr6r)rcr��unsupportedr�s    rHr�r�Ws]���5�-�.�	P��;�;�7�7�	P��E�:�t�,�0N�N��
�V��'�	�4��@�e�K�rSc�2�|j|jfSr�)�st_dev�st_ino)�sts rHrhrhbs��
�9�9�b�i�i��rS)r�r�rV)r�rW)r�zfrozenset[int])rcr[r�rr�r�r�r�)r�rr�r�)rcr[rFrr�r�)rcr[rFrr�r[r�zbytes | None)rcr[rFrr�r[r�z#tuple[bytes | None, OSError | None])rFrr�zIterator[os.DirEntry[str]]r�z	list[str])
rcr[r�r[r�z$tuple[StrictSoftFileClaimState, str]r�rr�r�)r�r[r�z+tuple[StrictSoftFileClaimState, str] | None)r|r�r�r[r�r[)r�r[r�r[)r�r[r�r)r4r[r�rr�r�r��BaseException | None)
r7�tuple[str, int | None]r��tuple[str, str]r�r�r�rr�r�)
r7r�r5r[rDr�rE�tuple[int, int] | Noner�z1tuple[BaseException | None, BaseException | None])r7r�r�r�rEr�r�r�)rwr�rFr�r�r�)rr[r�r[)r5r[r�z
str | None)r�rrr^r�r�)r7r�r5r[rr^r�r�)r7r�r5r[r�r�)r7r�r�r[r�r�)r7r�r�r[r�r�r�r�)
r7r�r�r[rBr�r�r�r�r�)r7r�rsr[rtr[r�r�)
rG�
str | Pathrvr�rpr�rqr�r�r�)r7r�r�r[r�r�)rFrrsr[rtr[r�r�)r�r[r�r�)r�ztuple[str, ...]r�z%tuple[list[str], list[BaseException]])r�r[r�z!tuple[bool, BaseException | None])r�r[r�zlist[BaseException]r�r�)rFrr�r[r�r�)r�rr�zOSError | None)rFr[r�r�)r�rr�r�r�r)r�rr�r�r�ztuple[int, bytes])
r�r�r�rrh�os.stat_resultr�r�r�r)rcr[rFrr�r�)r�r[r�r�)rFrr�r[r�r�)rcr[r�zNotImplementedError | OSErrorr�r�)r�r�r�r�)�
__future__rrjrOrBr�r[ryr?r��dataclassesrrrrrr	r
r�pathlibr�typingr
rrr�_apirrr�_errorr�	_identityrr�_soft_protocolr�_utilrr�collections.abcrr�rPrr�rr!r"r#r%r'r(r*r+r,r.r/r0rNr2rr3r6�hasattrr8rm�supports_dir_fdr9rfr:r;r7r<rIrJrRrTrVr��	Exceptionr�rfr�r�r�r�r�r�r�r�r�r�r�r�r3r@r?rAr1rr�rrarLrIr>rKrrrHr�r~r�r�r�r�r�r2r�r�r�rer�r�r�rh�__all__r�rSrH�<module>r�si��"���	���
���!�F�F�F��6�6�A�A�-�5�7�5��(�"�#3�4��'0�(�F�1C�'D�
�$�D�#.��j�.�$,��z�,�/��j�/�"&��Z�&�%&��
�&� "��:�"�%3��
�3�%+��
�+�02�!�:�2�&)��|�)�"$��Z�$�"%��<�%�"'��<�'� ��J��2�	�:�2�!C�!<�!C�!C�!E��,�E�8A�+�8N�� 5�N�
!��V�,�	�;�,�&(�W�W��0B�0B�%B��{�B�')�y�y�B�4F�4F�'F���F�%'�W�W��0B�0B�%B��{�B�%.�%P�2�7�7�b�>P�>P�3P��{�P��$-H�,I��k�I�c�8[�7\��4�\�ec��ec�P�$��
�
��
�	�9�	��4��"�4L�"
�.�u��u�

�u�5�u�
�	u�
�u�8	=�'�>�e���������	�6%E�)�%E��%E��%E�
�	%E�

�%E�P%�)�%��%��%�-�	%�
7�%�0.�)�.��.�&�.�
�	.�$�%��&��
��t�
�H��0/�	%�2�)�2�

�2��2�
�	2��U�"�!�S��S��S��	S�
�S�
�
S�*'��(D�
����<����$�
k��G�L� ��rS