U
    -em                     @  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	Zejd
krxG dd deZn6zd dlZW n ek
r   Y nX dZG dd deZddgZdS )    )annotationsN)suppress)ENOSYS)cast   )BaseFileLock)ensure_directory_existsFwin32c                   @  s,   e Zd ZdZddddZddddZdS )	UnixFileLockHUses the :func:`fcntl.flock` to hard lock the lock file on unix systems.Nonereturnc                 C  s   t d S NNotImplementedErrorself r   O/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/filelock/_unix.py_acquire   s    UnixFileLock._acquirec                 C  s   t d S r   r   r   r   r   r   _release   s    UnixFileLock._releaseN__name__
__module____qualname____doc__r   r   r   r   r   r   r
      s   r
   Tc                   @  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 | j tjtjB tjB }t| j|| jj}t	t
 t|| jj W 5 Q R X zt|tjtjB  W nD tk
r } z&t| |jtkrd}t||W 5 d }~X Y n
X || j_d S )NzFFileSystem does not appear to support flock; user SoftFileLock instead)r   Z	lock_fileosO_RDWRO_CREATO_TRUNCopen_contextmoder   PermissionErrorfchmodfcntlflockZLOCK_EXZLOCK_NBOSErrorcloseerrnor   r   lock_file_fd)r   Z
open_flagsfd	exceptionmsgr   r   r   r   $   s    



r   c                 C  s2   t t| jj}d | j_t|tj t| d S r   )	r   intr$   r-   r(   r)   ZLOCK_UNr   r+   )r   r.   r   r   r   r   4   s    r   Nr   r   r   r   r   r
   !   s   	has_fcntl)
__future__r   r   sys
contextlibr   r,   r   typingr   Z_apir   Z_utilr   r2   platformr
   r(   ImportError__all__r   r   r   r   <module>   s&   

