U
    "ºc*  ã                   @  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rTG dd	„ d	eƒZ
n6zd dlZW n ek
rt   Y nX d
ZG dd	„ d	eƒZ
dd	gZdS )é    )ÚannotationsN)Ú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   ú2/tmp/pip-unpacked-wheel-yt0gy6q2/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  sb   t jt jB t jB }t  | j|¡}zt |tjtj	B ¡ W n t
k
rV   t  |¡ Y nX || _d S r   )ÚosÚO_RDWRÚO_CREATÚO_TRUNCÚopenZ
_lock_fileÚfcntlÚflockZLOCK_EXZLOCK_NBÚOSErrorÚcloseÚ_lock_file_fd)r   Z	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"   ZLOCK_UNr   r$   )r   r&   r   r   r   r   +   s    r   Nr   r   r   r   r   r      s   
Ú	has_fcntl)Ú
__future__r   r   ÚsysÚtypingr   Z_apir   r(   Úplatformr   r!   ÚImportErrorÚ__all__r   r   r   r   Ú<module>   s    

þ