
    Ng                         U d dl Z d dlZddlmZmZ ej        Z G d dej                  ZdZej	        ej
        ej        eef         egej        f                  ed<   e j        dk    rJd dlZd dlZd dlZd dlZd dlZ ej                    Zdej        ej        ef         d	efd
Zdej        fdZdS e j        dk    r6d dlZd dlZej        Zdej        ej        ef         d	efdZdej        fdZdS  ed          )    N   )	constants
exceptionsc                       e Zd ZdefdZdS )	HasFilenoreturnc                     d S )N )selfs    S/var/www/html/ai-engine/env/lib/python3.11/site-packages/portalocker/portalocker.pyfilenozHasFileno.fileno   s          N)__name__
__module____qualname__intr   r
   r   r   r   r      s!               r   r   LOCKERntfile_flagsc                    t          j        t           j        |           } d}|t          j        z  r|t
          j        z  }|t          j        z  r|t
          j        z  }| 	                                }|r| 
                    d           t          j        |                                           }	 t          j        ||ddt                      nY# t"          j        $ rG}|j        t&          j        k    r,t+          j        t*          j        j        |j        |           | d }~ww xY w	 |r| 
                    |           d S d S # |r| 
                    |           w w xY wNr   i  fh)typingcastIO	LockFlagsNON_BLOCKINGwin32conLOCKFILE_FAIL_IMMEDIATELY	EXCLUSIVELOCKFILE_EXCLUSIVE_LOCKtellseekmsvcrtget_osfhandler   	win32file
LockFileEx__overlapped
pywintypeserrorwinerrorERROR_LOCK_VIOLATIONr   AlreadyLockedLockExceptionLOCK_FAILEDstrerror)r   r   modesaveposos_fh	exc_values         r   lockr7      sw    FIu--9)) 	7H66D9&& 	5H44D **,, 	JJqMMM$U\\^^44	$ a<HHHH 	 	 	 !X%BBB .,8&   !	! 	 I  $

7#####$ $w $

7####$s+   0C E D$ADD$$E Ec                 2   	 |                                  }|r|                     d           t          j        |                                           }	 t          j        |ddt                     n2# t          j	        $ r }|j
        t          j        k    r Y d }~nd }~ww xY w|r|                     |           d S d S # |r|                     |           w w xY w# t          $ r1}t          j        t          j        j        |j        |           |d }~ww xY wr   )r$   r%   r&   r'   r   r(   UnlockFileExr*   r+   r,   r-   ERROR_NOT_LOCKEDOSErrorr   r0   r1   r2   )r   r4   r5   excs       r   unlockr=   C   sX   	jjllG 

1(88E(& 	    #   <8#<<<  =<<<<  (JJw'''''( (7 (JJw''''( 	 	 	*(4   		sT   AC A1 0B> 1B  BB> B  B> #C >CC 
D%,DDposixc                    t           
J d            |t          j        z  r+|t          j        t          j        z  z  st          d          	 t          | |           d S # t          $ rR}|j        t          j        t          j	        fv rt          j        ||           |t          j        ||           |d }~wt          $ r}t          j        ||           |d }~ww xY w)N'We need a locking function in `LOCKER` zXWhen locking in non-blocking mode the SHARED or EXCLUSIVE flag must be specified as wellr   )r   r   r   SHAREDr"   RuntimeErrorr;   errnoEACCESEAGAINr   r/   r0   EOFError)r   r   r6   s      r   r7   r7   i   s9   !!#L!!! I** 	Ey225
 	 >  
	5%      	! 	! 	! 5<">>> !.   !! !.   !!  	 	 	*   	s%   A 
C)AB66CCCc                     t           
J d            t          |                                 t          j                   d S )Nr@   )r   r   r   UNBLOCK)r   s    r   r=   r=      s8    !!#L!!!u||~~y011111r   z3PortaLocker only defined for nt and posix platforms)osr    r   r   r   Protocolr   r   OptionalCallableUnionr   Any__annotations__namer&   r+   r    r(   r-   
OVERLAPPEDr*   r   r7   r=   rC   fcntlflockrB   r
   r   r   <module>rU      s   					  # # # # # # # # 	! ! ! ! ! ! ! !
 9= \#y.!3'35 	6 = = = 7d??MMMOOOOOO(:(**L$$FLC0 $$ $$ $$ $$ $$Lfi      : WLLLLLL
 [F*FLC0 * * * * *X2fi 2 2 2 2 2 2
 ,L
M
MMr   