a
    Šxd
  ã                   @  s^   d dl mZ d dlZd dlZd dlmZmZ ddlmZ ddl	m
Z
 G dd„ deƒZdgZdS )	é    )ÚannotationsN)ÚEACCESÚEEXISTé   )ÚBaseFileLock)Úraise_on_not_writable_filec                   @  s,   e Zd ZdZddœdd„Zddœdd„ZdS )	ÚSoftFileLockz.Simply watches the existence of the lock file.ÚNone)Úreturnc              
   C  sŒ   t | jƒ tjtjB tjB tjB }zt | j|| jj	¡}W nD t
y~ } z,|jtksj|jtkrhtjdksj‚ W Y d }~nd }~0 0 || j_d S )NÚwin32)r   Ú	lock_fileÚosÚO_WRONLYÚO_CREATÚO_EXCLÚO_TRUNCÚopenÚ_contextÚmodeÚOSErrorÚerrnor   r   ÚsysÚplatformÚlock_file_fd)ÚselfÚflagsZfile_handlerÚ	exception© r   úF/var/www/html/Ranjet/env/lib/python3.9/site-packages/filelock/_soft.pyÚ_acquire   s(    
ÿþýÿÿþþzSoftFileLock._acquirec                 C  s>   t  | jj¡ d | j_zt  | j¡ W n ty8   Y n0 d S )N)r   Úcloser   r   Úremover   r   )r   r   r   r   Ú_release"   s    zSoftFileLock._releaseN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   r   r   r   r   r      s   r   )Ú
__future__r   r   r   r   r   r   Z_apir   Z_utilr   r   Ú__all__r   r   r   r   Ú<module>   s   !ÿ