o
    Wi/	                     @  s   d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ ejdkr2d dl	Z	dZ
ejdddZnd dlZejdddZejdddZdS )    )annotationsN)Callable)	Generatorwin32i  filenoint
blocked_cbCallable[[], None]returnGenerator[None]c                 c  s    z
t | t jt W n3 ty>   |  	 z
t | t jt W n ty9 } z|jtjkr/ W Y d }~nd }~ww nqY nw zd V  W t | t jt d S t | t jt w N)	msvcrtlockingLK_NBLCK_regionOSErrorLK_LOCKerrno	EDEADLOCKLK_UNLCK)r   r   e r   H/home/ubuntu/.local/lib/python3.10/site-packages/pre_commit/file_lock.py_locked   s*   
&r   c              
   c  sn    zt | t jt jB  W n ty    |  t | t j Y nw zd V  W t | t j d S t | t j w r   )fcntlflockLOCK_EXLOCK_NBr   LOCK_UN)r   r   r   r   r   r   4   s   "pathstrc              	   c  sv    t | d+}t| | d V  W d    n1 sw   Y  W d    d S W d    d S 1 s4w   Y  d S )Nza+)openr   r   )r   r   fr   r   r   lockD   s   "r#   )r   r   r   r	   r
   r   )r   r    r   r	   r
   r   )
__future__r   
contextlibr   syscollections.abcr   r   platformr   r   contextmanagerr   r   r#   r   r   r   r   <module>   s     
