← back to Atmos Game

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

41 lines

�

c�bj"����UddlmZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZddlm
Z
ddlmZmZddlmZdd	lmZd
Zej,dk(rGd�d
e�ZnX	ddlZej2ej4ej6ej8fZdZeee	eh�Zde d<dd�Z!dd�Z"Gd�d
e�Zej,dk(rd
dgZ&ygd�Z&y#e#e$f$rdZ%de d<dd�Z!dd�Z"Y�<wxYw)�)�annotationsN)�suppress)�EACCES�EAGAIN�ENOSYS�EWOULDBLOCK)�Path)�Final�cast�)�BaseFileLock)�ensure_directory_existsF�win32c� �eZdZdZdd�Zdd�Zy)�UnixFileLockzHUses the :func:`fcntl.flock` to hard lock the lock file on unix systems.c��t��N��NotImplementedError��selfs �e/Users/macstudio3/Projects/atmos-game/assets/gen/.venv/lib/python3.12/site-packages/filelock/_unix.py�_acquirezUnixFileLock._acquire���%�%�c��t�rrrs r�_releasezUnixFileLock._releaserrN��return�None)�__name__�
__module__�__qualname__�__doc__rr�rrrrs��V�	&�	&rrTzFinal[frozenset[int]]�_CONTENTION_ERRNOSc���	tj|tjtjz�y#t$r}|j
tvrYd}~y�d}~wwxYw)NFT)�fcntl�flock�LOCK_EX�LOCK_NB�OSError�errnor&)�fd�	exceptions  r�_lock_fd_nonblockingr0.sL��
����B��
�
��
�
� =�>�
��	�
��?�?�&8�8� ���
�s�58�	A�A�A�Ac�L�tj|tj�yr)r(r)�LOCK_UN)r.s r�
_unlock_fdr39s���K�K��E�M�M�*rzfcntl is unavailablez
Final[str]�_FCNTL_UNAVAILABLEc�*�ttt��r�r,rr4��_fds rr0r0"����&�"4�5�5rc�*�ttt��rr6r7s rr3r3%r9rc�H�eZdZdZd
d�Zdd�Zdd�Zd
d�Zd
d�Zd
d�Z	d
d�Z
y	)ra,
        Uses the :func:`fcntl.flock` to hard lock the lock file on unix systems.

        We leave the lock file in place after release. Unlinking a locked file on Unix splits
        waiters across inodes and breaks mutual exclusion for processes that coordinate via the
        same path.
        c�H�|j�}|�|j|�yyr)�_acquire_native�_switch_to_soft_lock)r�
missing_flocks  rrzUnixFileLock._acquireEs+�� �0�0�2�M��(�)��)�)�=�9�)rc���t|j�tj}t	tdd�x}�||z}|tj
z}|j
�}	tj|j||�}|j|�	t|�}|r|j)|�y|j%�tj&|�y#t$r=|jr/t|j�jj�rYy�t$rmt|j�j�s�	tj|j|tj
z|�}n#t$rYYywxYwY��wxYw#t$rG}|j t"k7r&|j%�tj&|��||fcYd}~Sd}~wwxYw)N�
O_NOFOLLOW)r�	lock_file�os�O_RDWR�getattr�O_CREAT�
_open_mode�open�FileNotFoundErrorr	�parent�exists�PermissionError�_mark_descriptor_pendingr0r,r-r�_mark_descriptor_released�close�_finalize_locked_fd)r�
open_flags�
o_nofollow�	open_moder.�lockedr/s       rr=zUnixFileLock._acquire_nativeJs���#�D�N�N�3����J�%�b�,��=�=�
�J��j�(�
��"�*�*�$�J����)�I�
 ��W�W�T�^�^�Z��C��"
�)�)�"�-�
%�-�b�1����(�(��,���.�.�0��������=%�
��>�>�d�4�>�>�&:�&A�&A�&H�&H�&J���"�
 ��D�N�N�+�2�2�4�� ��������r�z�z�k�1I�9�U�B��(� �� ���

 ���
%��?�?�f�,��2�2�4��H�H�R�L���9�}�$��
%�s[�"!C�F�AF�-F�3F�?F�	F
�	F�F
�
F�F�	G'� <G"�G'�"G'c��d}tt�5tj|�x}j|j
f}ddd�|j
�tj|�|jr|js|j�|�tt�5tj|j�}||j|j
fk(r#t|j�j�ddd�|j�|j!�y#1swY��xYw#1swY�6xYwr)rr,rC�fstat�st_dev�st_inorNrO�_fallback_to_soft�_preserve_lock_file�_on_acquired�lstatrBr	�unlink�_fallback_to_soft_lockr)rr.r?�identityrV�currents      rr>z!UnixFileLock._switch_to_soft_lockvs���04�H��'�"�%'�X�X�b�\�1�E�9�9�5�<�<�G��#��*�*�,��H�H�R�L��)�)�T�-E�-E��IZ�IZ�If�$�#��'�"��(�(�4�>�>�2���������?�?�����(�/�/�1�#�
�'�'�)��M�M�O�#�"��#�"�s�.D)�"AD5�)D2�5D>c��d}	tj|�}|jdk7r)tj|d�|j	|�d}|r)|j||j|jf�y|j
�tj|�y#t
$r'|j
�tj|��wxYw)NFrT)rCrV�st_nlink�	ftruncate�_apply_explicit_moder,rNrO�_mark_descriptor_ownedrWrX)rr.�keep�stat_results    rrPz UnixFileLock._finalize_locked_fd�s����D�	
� �h�h�r�l���'�'�1�,��L�L��Q�'��-�-�b�1��D�
��+�+�B��1C�1C�[�EW�EW�0X�Y��.�.�0��������
��.�.�0�������
�s�A
B"�"0Cc��|jrCtt�5tj||j
j�ddd�yy#1swYyxYwr)�has_explicit_moderrLrC�fchmod�_context�mode�rr.s  rrdz!UnixFileLock._apply_explicit_mode�s?���%�%��o�.��I�I�b�$�-�-�"4�"4�5�/�.�&�.�.�s�+A�Ac��ddlm}tjdd��ddlm}m}t||�r||_y||_y)Nr)�SoftFileLockzDflock not supported on this filesystem, falling back to SoftFileLock�)�
stacklevel)�AsyncSoftFileLock�BaseAsyncFileLock)	�_softro�warnings�warn�asynciorrrs�
isinstance�	__class__)rrorrrss    rr^z#UnixFileLock._fallback_to_soft_lock�s3��
,��M�M�`�mn�o�E�2<�T�CT�2U�.�D�N�[g�D�Nrc��td|jj�}t|�|j	�|j|d��y)N�intT)�default_suppresses)rrk�lock_file_fdr3rN�_close_released_fdrms  rrzUnixFileLock._release�s@���e�T�]�]�7�7�8�B�
�r�N��*�*�,��#�#�B�4�#�@rNr)rztuple[int, OSError] | None)r.r{r?r,rr �r.r{rr )r!r"r#r$rr=r>rPrdr^rr%rrrr<s-��	�	:�
*	�X	�&	�*	6�
	h�	Ar�	has_fcntl)rr0r3r�)r.r{r�boolr)r8r{rr�)r8r{rr )'�
__future__rrC�sysru�
contextlibrr-rrrr�pathlibr	�typingr
r�_apir
�_utilrr��platformrr(r)r*r+r2�_�	frozensetr&�__annotations__r0r3�ImportError�AttributeErrorr4�__all__r%rr�<module>r�s���"�	�
���5�5����*��	��<�<�7��&�|�&�+��
�[�[�%�-�-�����
�
�F���	�5>�v�v�{�>[�4\��1�\�		�	+�xA�|�xA�v�<�<�7���{�+�G�Q�G��w
��(�6�)?��J�?�	6�	6�
6�s�2C�C'�&C'