o
    Ưh                     @   s   d Z ddlZddlZddlZddlmZ ddlmZmZm	Z	 ddl
mZ ddlmZmZmZmZmZ ddlmZ edZejd	d
G dd dZG dd deZe ZdS )z&Defines any IO utilities used by isort    N)contextmanager)BytesIOStringIOTextIOWrapper)Path)AnyCallableIteratorTextIOUnion)UnsupportedEncodings.   ^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)T)frozenc                   @   s   e Zd ZU eed< eed< eed< edeeef de	g e
f defddZed	ededd fd
dZedefddZedeeef defddZeedeeef ded  fddZdS )Filestreampathencodingfilenamereadlinereturnc                 C   s(   zt |d W S  ty   t| w )Nr   )tokenizedetect_encoding	Exceptionr   )r   r    r   E/var/www/Befach/backend/venv/lib/python3.10/site-packages/isort/io.pyr      s
   zFile.detect_encodingcontentsc                 C   s2   t |t| dj}t t| t| |dS )Nzutf-8r   r   r   )r   r   r   encoder   r   r   resolve)r   r   r   r   r   r   from_contents   s   zFile.from_contentsc                 C   s   | j jdS )N.)r   suffixlstrip)selfr   r   r   	extension"   s   zFile.extensionc                 C   sX   t | d}zt| |j}|d t||ddd}d|_|W S  ty+   |   w )z`Open a file in read only mode using the encoding detected by
        detect_encoding().
        rbr   T )line_bufferingnewliner)	openr   r   r   seekr   moder   close)r   bufferr   textr   r   r   _open&   s   

z
File._openc                 c   s^    t |  }d }zt|}t|||jdV  W |d ur#|  d S d S |d ur.|  w w )Nr   )r   r   r   r/   r   r,   )r   	file_pathr   r   r   r   read6   s   

z	File.readN)__name__
__module____qualname__r
   __annotations__r   strstaticmethodr   r   bytesr   r   propertyr#   r   r/   r   r	   r1   r   r   r   r   r      s   
 (&r   c                   @   s"   e Zd ZdededdfddZdS )_EmptyIOargskwargsr   Nc                 O   s   d S )Nr   )r"   r;   r<   r   r   r   writeD   s   z_EmptyIO.write)r2   r3   r4   r   r=   r   r   r   r   r:   C   s    r:   )__doc__dataclassesrer   
contextlibr   ior   r   r   pathlibr   typingr   r   r	   r
   r   isort.exceptionsr   compile_ENCODING_PATTERN	dataclassr   r:   Emptyr   r   r   r   <module>   s    

2
