3
‰dN  ã               @   sV   d dl Z d dlZd dlmZ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 )é    N)ÚEACCESÚEEXISTÚENOENTé   )ÚBaseFileLock)Úraise_on_exist_ro_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.N)Úreturnc             C   s’   t | jƒ tjtjB tjB tjB }ytj| j|ƒ}W nR tk
r† } z6|j	t
krRn$|j	tkr`‚ n|j	tkrvtjdkrv‚ W Y d d }~X nX || _d S )NÚwin32)r   Ú
_lock_fileÚosÚO_WRONLYÚO_CREATÚO_EXCLÚO_TRUNCÚopenÚOSErrorÚerrnor   r   r   ÚsysÚplatformÚ_lock_file_fd)ÚselfÚmodeÚfdÚ	exception© r   ú2/tmp/pip-build-7vycvbft/filelock/filelock/_soft.pyÚ_acquire   s    


zSoftFileLock._acquirec             C   s<   t j| jƒ d | _yt j| jƒ W n tk
r6   Y nX d S )N)r   Úcloser   Úremover   r   )r   r   r   r   Ú_release"   s    zSoftFileLock._release)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    r   r   r   r   r   	   s   r   )r   r   r   r   r   r   Z_apir   Z_utilr   r   Ú__all__r   r   r   r   Ú<module>   s   #