a
    |f                     @  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 ddlmZ dd	lmZmZ ejd
krd dlZG dd deZnG dd deZdgZdS )    )annotationsN)suppress)EACCES)Path)cast   )BaseFileLock)ensure_directory_exists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 )	WindowsFileLockWUses the :func:`msvcrt.locking` function to hard lock the lock file on Windows systems.Nonereturnc              
   C  s   t | j t| j tjtjB tjB }zt| j|| jj	}W n0 t
yn } z|jtkrZ 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_filer	   osO_RDWRO_CREATO_TRUNCopen_contextmodeOSErrorerrnor   msvcrtlockingLK_NBLCKcloselock_file_fd)selfflagsfd	exception r%   KD:\Projects\storyit_web\backend\venv\Lib\site-packages\filelock/_windows.py_acquire   s(    




WindowsFileLock._acquirec                 C  sj   t t| jj}d | j_t|tjd t| t	t
 t| j  W d    n1 s\0    Y  d S r   )r   intr   r    r   r   LK_UNLCKr   r   r   r   r   r   unlink)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 r3   r4   r6   r%   r%   r&   r,   ;   s    r-   Nr.   r%   r%   r%   r&   r   5   s   )
__future__r   r   sys
contextlibr   r   r   pathlibr   typingr   Z_apir   Z_utilr	   r
   platformr   r   __all__r%   r%   r%   r&   <module>   s   
%