o
    ;“bb  ã                   @  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r8d dlZG d	d
„ d
e	ƒZnG dd
„ d
e	ƒZd
gZdS )é    )ÚannotationsN)ÚENOENT)Úcasté   )ÚBaseFileLock)Úraise_on_exist_ro_fileÚwin32c                   @  ó$   e Zd ZdZd	dd„Zd	dd„ZdS )
ÚWindowsFileLockúWUses the :func:`msvcrt.locking` function to hard lock the lock file on windows systems.ÚreturnÚNonec              
   C  s    t | jƒ tjtjB tjB }z	t | j|¡}W n ty0 } z|jt	kr%‚ W Y d }~d S d }~ww z
t
 |t
jd¡ W n tyJ   t |¡ Y d S w || _d S ©Nr   )r   Ú
_lock_fileÚosÚO_RDWRÚO_CREATÚO_TRUNCÚopenÚOSErrorÚerrnor   ÚmsvcrtÚlockingÚLK_NBLCKÚcloseÚ_lock_file_fd)ÚselfÚmodeÚfdÚ	exception© r    ú3/usr/lib/python3/dist-packages/filelock/_windows.pyÚ_acquire   s*   
ÿþÿ
ÿ€ÿÿ
úWindowsFileLock._acquirec                 C  sT   t t| jƒ}d | _t |tjd¡ t |¡ z	t | j	¡ W d S  t
y)   Y d S w r   )r   Úintr   r   r   ÚLK_UNLCKr   r   Úremover   r   )r   r   r    r    r!   Ú_release%   s   
ÿúWindowsFileLock._releaseN©r   r   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r'   r    r    r    r!   r
      s    
r
   c                   @  r	   )
r
   r   r   r   c                 C  ó   t ‚©N©ÚNotImplementedError©r   r    r    r!   r"   6   ó   r#   c                 C  r/   r0   r1   r3   r    r    r!   r'   9   r4   r(   Nr)   r*   r    r    r    r!   r
   3   s    
)Ú
__future__r   r   Úsysr   r   Útypingr   Ú_apir   Ú_utilr   Úplatformr   r
   Ú__all__r    r    r    r!   Ú<module>   s    
%ÿ