
    dm                        d dl mZ d dlZd dlZd dlmZ d dlmZ d dlm	Z	 ddl
mZ ddlmZ d	Zej        d
k    r G d de          Zn!	 d dlZdZn# e$ r Y nw xY w G d de          ZddgZdS )    )annotationsN)suppress)ENOSYS)cast   )BaseFileLock)ensure_directory_existsFwin32c                  "    e Zd ZdZddZddZdS )UnixFileLockHUses the :func:`fcntl.flock` to hard lock the lock file on unix systems.returnNonec                    t           NNotImplementedErrorselfs    R/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/filelock/_unix.py_acquirezUnixFileLock._acquire       %%    c                    t           r   r   r   s    r   _releasezUnixFileLock._release   r   r   Nr   r   __name__
__module____qualname____doc__r   r    r   r   r   r      sB        VV	& 	& 	& 	&	& 	& 	& 	& 	& 	&r   r   Tc                  "    e Zd ZdZddZddZdS )r   r   r   r   c                h   t          | j                   t          j        t          j        z  t          j        z  }t          j        | j        || j        j                  }t          t                    5  t          j        || j        j                   d d d            n# 1 swxY w Y   	 t          j        |t          j        t          j        z             || j        _        d S # t"          $ rA}t          j        |           |j        t(          k    rd}t+          |          |Y d }~d S d }~ww xY w)NzFFileSystem does not appear to support flock; user SoftFileLock instead)r	   	lock_fileosO_RDWRO_CREATO_TRUNCopen_contextmoder   PermissionErrorfchmodfcntlflockLOCK_EXLOCK_NBlock_file_fdOSErrorcloseerrnor   r   )r   
open_flagsfd	exceptionmsgs        r   r   zUnixFileLock._acquire$   sU   #DN333RZ/"*<JT]5GHHB/** 2 2	"dm01112 2 2 2 2 2 2 2 2 2 2 2 2 2 20B =>>> .0***  B B B?f,,bC-c22	A -,,,,,Bs*   4 B  B$'B$,,C& &
D106D,,D1c                    t          t          | j        j                  }d | j        _        t	          j        |t          j                   t          j        |           d S r   )	r   intr+   r3   r/   r0   LOCK_UNr&   r5   )r   r8   s     r   r   zUnixFileLock._release4   sG     c4=566B)-DM&KEM***HRLLLLLr   Nr   r   r"   r   r   r   r   !   sB        VV	0 	0 	0 	0 	 	 	 	 	 	r   	has_fcntl)
__future__r   r&   sys
contextlibr   r6   r   typingr   _apir   _utilr	   r>   platformr   r/   ImportError__all__r"   r   r   <module>rH      s<   " " " " " " 				 



                         * * * * * * 	<7& & & & &| & & & & 		    
    |   < s   
A AA