a
    Šxdß  ã                   @  s    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Z
ejdkr`G d	d
„ d
e	ƒZn4zd dlZW n ey~   Y n0 dZ
G dd
„ d
e	ƒZdd
gZdS )é    )ÚannotationsN)ÚENOSYS)Úcasté   )ÚBaseFileLockFÚwin32c                   @  s,   e Zd ZdZddœdd„Zddœdd„ZdS )	ÚUnixFileLockúHUses the :func:`fcntl.flock` to hard lock the lock file on unix systems.ÚNone©Úreturnc                 C  s   t ‚d S ©N©ÚNotImplementedError©Úself© r   úF/var/www/html/Ranjet/env/lib/python3.9/site-packages/filelock/_unix.pyÚ_acquire   s    úUnixFileLock._acquirec                 C  s   t ‚d S r   r   r   r   r   r   Ú_release   s    úUnixFileLock._releaseN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r      s   r   Tc                   @  s,   e Zd ZdZddœdd„Zddœdd„ZdS )	r   r	   r
   r   c              
   C  s´   t jt jB t jB }t  | j|| jj¡}zt  || jj¡ W n t	yL   Y n0 zt
 |t
jt
jB ¡ W n@ ty¦ } z(t  |¡ |jtkr’tdƒ‚W Y d }~nd }~0 0 || j_d S )NzFFileSystem does not appear to support flock; user SoftFileLock instead)ÚosÚO_RDWRÚO_CREATÚO_TRUNCÚopenZ	lock_fileÚ_contextÚmodeÚfchmodÚPermissionErrorÚfcntlÚflockZLOCK_EXZLOCK_NBÚOSErrorÚcloseÚerrnor   r   Úlock_file_fd)r   Z
open_flagsÚfdÚ	exceptionr   r   r   r   "   s    

r   c                 C  s2   t t| jjƒ}d | j_t |tj¡ t |¡ d S r   )	r   Úintr"   r+   r&   r'   ZLOCK_UNr   r)   )r   r,   r   r   r   r   2   s    r   Nr   r   r   r   r   r      s   Ú	has_fcntl)Ú
__future__r   r   Úsysr*   r   Útypingr   Z_apir   r/   Úplatformr   r&   ÚImportErrorÚ__all__r   r   r   r   Ú<module>   s"   

þ