o
    ;“b*  ã                   @  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Zej	dkr*G dd	„ d	eƒZ
nzd dlZW n	 ey9   Y nw d
ZG dd	„ d	eƒZ
dd	gZdS )é    )ÚannotationsN)Úcasté   )ÚBaseFileLockFÚwin32c                   @  ó$   e Zd ZdZd	dd„Zd	dd„ZdS )
ÚUnixFileLockúHUses the :func:`fcntl.flock` to hard lock the lock file on unix systems.ÚreturnÚNonec                 C  ó   t ‚©N©ÚNotImplementedError©Úself© r   ú0/usr/lib/python3/dist-packages/filelock/_unix.pyÚ_acquire   ó   úUnixFileLock._acquirec                 C  r   r   r   r   r   r   r   Ú_release   r   úUnixFileLock._releaseN©r
   r   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r      s    
r   Tc                   @  r   )
r   r	   r
   r   c                 C  sb   t jt jB t jB }t  | j|¡}zt |tjtj	B ¡ W n t
y+   t  |¡ Y d S w || _d S r   )ÚosÚO_RDWRÚO_CREATÚO_TRUNCÚopenÚ
_lock_fileÚfcntlÚflockÚLOCK_EXÚLOCK_NBÚOSErrorÚcloseÚ_lock_file_fd)r   Ú	open_modeÚfdr   r   r   r   !   s   ÿ
r   c                 C  s.   t t| jƒ}d | _t |tj¡ t |¡ d S r   )r   Úintr+   r%   r&   ÚLOCK_UNr   r*   )r   r-   r   r   r   r   +   s   r   Nr   r   r   r   r   r   r      s    

Ú	has_fcntl)Ú
__future__r   r   ÚsysÚtypingr   Ú_apir   r0   Úplatformr   r%   ÚImportErrorÚ__all__r   r   r   r   Ú<module>   s$    

ÿþ