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dl
mZ ejdkrpd dlZG d	d
„ d
e	ƒZnG dd
„ d
e	ƒZd
gZdS )é    )ÚannotationsN)ÚEACCES)Úcasté   )ÚBaseFileLock)Úraise_on_not_writable_fileÚwin32c                   @  s,   e Zd ZdZddœdd„Zddœdd„ZdS )	ÚWindowsFileLockúWUses the :func:`msvcrt.locking` function to hard lock the lock file on Windows systems.ÚNone©Úreturnc              
   C  sÂ   t | jƒ tjtjB tjB }zt | j|| jj¡}W n0 t	yd } z|j
tkrP‚ W Y d }~nbd }~0 0 zt |tjd¡ W n: t	y´ } z"t |¡ |j
tkr ‚ W Y d }~nd }~0 0 || j_d S ©Nr   )r   Ú	lock_fileÚosÚO_RDWRÚO_CREATÚO_TRUNCÚopenÚ_contextÚmodeÚOSErrorÚerrnor   ÚmsvcrtÚlockingZLK_NBLCKÚcloseÚlock_file_fd)ÚselfÚflagsÚfdÚ	exception© r!   úI/var/www/html/Ranjet/env/lib/python3.9/site-packages/filelock/_windows.pyÚ_acquire   s&    
ÿþÿ


úWindowsFileLock._acquirec                 C  sX   t t| jjƒ}d | j_t |tjd¡ t |¡ zt 	| j
¡ W n tyR   Y n0 d S r   )r   Úintr   r   r   r   ZLK_UNLCKr   r   Úremover   r   )r   r   r!   r!   r"   Ú_release'   s    
úWindowsFileLock._releaseN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   r'   r!   r!   r!   r"   r	      s   r	   c                   @  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 ‚d S ©N©ÚNotImplementedError©r   r!   r!   r"   r#   8   s    r$   c                 C  s   t ‚d S r.   r/   r1   r!   r!   r"   r'   ;   s    r(   Nr)   r!   r!   r!   r"   r	   5   s   )Ú
__future__r   r   Úsysr   r   Útypingr   Z_apir   Z_utilr   Úplatformr   r	   Ú__all__r!   r!   r!   r"   Ú<module>   s   
'ÿ