o
    (j6hI                     @  s  U d dl mZ d dlZd dlmZ d dlZd dl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Ze	jdZdZded< ed	Z	
	
ddddZdddZdddZG dd dejZG dd  d Zddd"d#Zddd$d%Zdd'd(Z dd)d*Z!dd+d,Z"dd/d0Z#dd1d2Z$	
	
ddd8d9Z%	
ddd;d<Z&	
ddd>d?Z'dd@dAZ(ddBdCZ)ddDdEZ*dddFdGZ+dddHdIZ,dddJdKZ-ddOdPZ.	Q		R	
dddWdXZ/G dYdZ dZZ0dd[d\Z1dd]d^Z2	dddbdcZ3e	jdrerdddel4m5Z5 ddfdgZ6e Z7dhedi< dddjdZn
ddkdgZ6ddndoZ5ddrdsZ8ddtduZ9ddzd{Z:e:d|d} e+Z;e:d~d} e,Z<e:dd} e-Z=e(e)e*dZ>ded< e+e,e-dZ?ded< dS )    )annotationsN)TracebackTypeWeakKeyDictionarycygwinwinz't.Callable[[t.TextIO], t.TextIO] | Noneauto_wrap_for_ansiz\033\[[;?0-9]*[a-zA-Z]Fstream
t.BinaryIOencoding
str | Noneerrorsforce_readableboolforce_writablereturnt.TextIOc                 C  s0   |d u rt | }|d u rd}t| ||d||dS )NreplaceT)line_bufferingr   r   )get_best_encoding_NonClosingTextIOWrapper)r	   r   r   r   r    r   \/var/www/html/chefvision.cloud.itp360.com/venv/lib/python3.10/site-packages/click/_compat.py_make_text_stream   s   r   strc                 C  s(   z	t | jdkW S  ty   Y dS w )z$Checks if a given encoding is ascii.asciiF)codecslookupnameLookupError)r   r   r   r   is_ascii_encoding(   s
   r    t.IO[t.Any]c                 C  s$   t | ddp	t }t|rdS |S )z1Returns the default stream encoding if not found.r   Nzutf-8)getattrsysgetdefaultencodingr    r	   rvr   r   r   r   0   s   r   c                      s8   e Zd Z		dd fddZdddZdddZ  ZS )r   Fr	   r
   r   r   r   r   r   r   extrat.Anyr   Nonec                   s8   t t jt||| | _}t j|||fi | d S N)tcastBinaryIO_FixupStream_streamsuper__init__)selfr	   r   r   r   r   r'   	__class__r   r   r1   9   s   	
z!_NonClosingTextIOWrapper.__init__c                 C  s$   z|    W d S  ty   Y d S w r*   )detach	Exceptionr2   r   r   r   __del__G   s
   z _NonClosingTextIOWrapper.__del__c                 C  s
   | j  S r*   )r/   isattyr7   r   r   r   r9   M   s   
z_NonClosingTextIOWrapper.isattyFF)r	   r
   r   r   r   r   r   r   r   r   r'   r(   r   r)   )r   r)   r   r   )__name__
__module____qualname__r1   r8   r9   __classcell__r   r   r3   r   r   8   s    
r   c                   @  sR   e Zd ZdZ		dddd	ZdddZdddZd ddZd ddZd ddZ	dS )!r.   aQ  The new io interface needs more from streams than streams
    traditionally implement.  As such, this fix-up code is necessary in
    some circumstances.

    The forcing of readable and writable flags are there because some tools
    put badly patched objects on sys (one such offender are certain version
    of jupyter notebook).
    Fr	   r
   r   r   r   c                 C  s   || _ || _|| _d S r*   )r/   _force_readable_force_writable)r2   r	   r   r   r   r   r   r1   \   s   
z_FixupStream.__init__r   r   r   r(   c                 C     t | j|S r*   )r"   r/   r2   r   r   r   r   __getattr__f      z_FixupStream.__getattr__sizeintbytesc                 C  s2   t | jdd }|d urtt||S | j|S )Nread1)r"   r/   r+   r,   rH   read)r2   rF   fr   r   r   rI   i   s   z_FixupStream.read1c                 C  sV   | j rdS t| jdd }|d urtt| S z	| jd W dS  ty*   Y dS w )NTreadabler   F)r@   r"   r/   r+   r,   r   rJ   r6   r2   xr   r   r   rL   q   s   z_FixupStream.readablec                 C  s|   | j rdS t| jdd }|d urtt| S z	| jd W dS  ty=   z
| jd W Y dS  ty<   Y Y dS w w )NTwritable    F)rA   r"   r/   r+   r,   r   writer6   rM   r   r   r   rO   }   s    z_FixupStream.writablec                 C  sR   t | jdd }|d urtt| S z| j| j  W dS  ty(   Y dS w )NseekableFT)r"   r/   r+   r,   r   seektellr6   rM   r   r   r   rR      s   z_FixupStream.seekableNr:   )r	   r
   r   r   r   r   r   r   r   r(   )rF   rG   r   rH   r;   )
r<   r=   r>   __doc__r1   rD   rI   rL   rO   rR   r   r   r   r   r.   R   s    




r.   defaultc                 C  s*   z	t | dtW S  ty   | Y S w Nr   )
isinstancerJ   rH   r6   r	   rW   r   r   r   _is_binary_reader   s
   r[   c                 C  sL   z|  d W dS  ty%   z	|  d W Y dS  ty$   Y | Y S w w )NrP    FT)rQ   r6   rZ   r   r   r   _is_binary_writer   s   
r]   t.BinaryIO | Nonec                 C  H   t | drttj| S t| dd }|d ur"t |dr"ttj|S d S NFbufferT)r[   r+   r,   r-   r"   r	   bufr   r   r   _find_binary_reader      
rd   c                 C  r_   r`   )r]   r+   r,   r-   r"   rb   r   r   r   _find_binary_writer   re   rf   c                 C  s   t t| ddpdS )z3A stream is misconfigured if its encoding is ASCII.r   Nr   )r    r"   r	   r   r   r   _stream_is_misconfigured      rh   attrvaluec                 C  s$   t | |d}||kp|du o|duS )zA stream attribute is compatible if it is equal to the
    desired value or the desired value is unset and the attribute
    has a value.
    N)r"   )r	   rj   rk   stream_valuer   r   r   _is_compat_stream_attr   s   rm   c                 C  s   t | d|ot | d|S )zcCheck if a stream's encoding and errors attributes are
    compatible with the desired values.
    r   r   )rm   )r	   r   r   r   r   r   _is_compatible_text_stream   s
   
rn   text_stream	is_binary%t.Callable[[t.IO[t.Any], bool], bool]find_binary,t.Callable[[t.IO[t.Any]], t.BinaryIO | None]c           	      C  s~   || drt t j| }n#t t j| } t| ||r$|d u r"t| s$| S || }|d u r.| S |}|d u r6d}t|||||dS )NFr   )r   r   )r+   r,   r-   TextIOrn   rh   r   )	ro   r   r   rp   rr   r   r   binary_readerpossible_binary_readerr   r   r   _force_correct_text_stream   s&   
	rw   text_readerc                 C     t | ||tt|dS )Nr   )rw   r[   rd   )rx   r   r   r   r   r   r   _force_correct_text_reader     r{   text_writerc                 C  ry   )Nr   )rw   r]   rf   )r}   r   r   r   r   r   r   _force_correct_text_writer,  r|   r   c                  C     t tj} | d u rtd| S )Nz6Was not able to determine binary stream for sys.stdin.)rd   r#   stdinRuntimeError)readerr   r   r   get_binary_stdin<     
r   c                  C  r   )Nz7Was not able to determine binary stream for sys.stdout.)rf   r#   stdoutr   writerr   r   r   get_binary_stdoutC  r   r   c                  C  r   )Nz7Was not able to determine binary stream for sys.stderr.)rf   r#   stderrr   r   r   r   r   get_binary_stderrJ  r   r   c                 C  ,   t tj| |}|d ur|S ttj| |ddS )NTrz   )_get_windows_console_streamr#   r   r{   r   r   r&   r   r   r   get_text_stdinQ     r   c                 C  r   NTr~   )r   r#   r   r   r   r   r   r   get_text_stdoutX  r   r   c                 C  r   r   )r   r#   r   r   r   r   r   r   get_text_stderr_  r   r   filestr | os.PathLike[str] | intmodec                 C  s"   d|v r	t | |S t | |||dS )z?Handles not passing ``encoding`` and ``errors`` in binary mode.br   r   )open)r   r   r   r   r   r   r   _wrap_io_openf  s   
r   rstrictfilenamestr | os.PathLike[str]atomictuple[t.IO[t.Any], bool]c              
     s  d v }t | } t | dkr9t fdddD r*|r"t dfS t||ddfS |r1t dfS t||ddfS |sDt|  ||dfS d	 v rLt	d
d v rTt	dd vr\t	ddd l
}dd l}zt | j}W n tyw   d }Y nw t jt jB t jB }	|r|	tt ddO }		 t jt j| d|dd}
zt |
|	|d u rdn|}W n3 ty } z'|j
|jkst jdkr|j
|jkrt j|jrt |jt jrW Y d }~q d }~ww |d urt |
| t| ||}t ||
t j!| }t"#t"j$t"j% |dfS )Nr   -c                 3  s    | ]}| v V  qd S r*   r   ).0mr   r   r   	<genexpr>  s    zopen_stream.<locals>.<genexpr>)warN   Fr   Tr   zAppending to an existing file is not supported, because that would involve an expensive `copy`-operation to a temporary file. Open the file in normal `w`-mode and copy explicitly if that's what you're after.rN   z&Use the `overwrite`-parameter instead.r   z,Atomic writes only make sense with `w`-mode.r   O_BINARYz.__atomic-writel        08xi  nt)&osfspathfsdecodeanyr   r   r   r   r   
ValueErrorerrnorandomstatst_modeOSErrorO_RDWRO_CREATO_EXCLr"   pathjoindirname	randranger   EEXISTr   EACCESisdirr   accessW_OKchmod_AtomicFilerealpathr+   r,   IOAny)r   r   r   r   r   binaryr   r   permflagstmp_filenamefderK   afr   r   r   open_streams  sn   





r   c                   @  sX   e Zd Zd"dd	Zed#d
dZd$d%ddZd&ddZd'ddZd(ddZ	d#dd Z
d!S ))r   rK   r!   r   r   real_filenamer   r)   c                 C  s   || _ || _|| _d| _d S NF)_f_tmp_filename_real_filenameclosed)r2   rK   r   r   r   r   r   r1     s   
z_AtomicFile.__init__c                 C  s   | j S r*   )r   r7   r   r   r   r     s   z_AtomicFile.nameFdeleter   c                 C  s.   | j rd S | j  t| j| j d| _ d S )NT)r   r   closer   r   r   r   )r2   r   r   r   r   r     s
   

z_AtomicFile.closer   r(   c                 C  rB   r*   )r"   r   rC   r   r   r   rD     rE   z_AtomicFile.__getattr__c                 C  s   | S r*   r   r7   r   r   r   	__enter__  s   z_AtomicFile.__enter__exc_typetype[BaseException] | None	exc_valueBaseException | NonetbTracebackType | Nonec                 C  s   | j |d ud d S )N)r   )r   )r2   r   r   r   r   r   r   __exit__  ri   z_AtomicFile.__exit__c                 C  s
   t | jS r*   )reprr   r7   r   r   r   __repr__  s   
z_AtomicFile.__repr__N)rK   r!   r   r   r   r   r   r)   r   r   F)r   r   r   r)   rU   )r   r   )r   r   r   r   r   r   r   r)   )r<   r=   r>   r1   propertyr   r   rD   r   r   r   r   r   r   r   r     s    



r   c                 C  s   t d| S )Nr\   )_ansi_resub)rk   r   r   r   
strip_ansi  rE   r   c                 C  s0   t | ttfr| j} t | ttfs| jjdS )Nz
ipykernel.)rY   r.   r   r/   r4   r=   
startswithrg   r   r   r   _is_jupyter_kernel_output  s   r   t.IO[t.Any] | Nonecolorbool | Nonec                 C  s0   |d u r| d u rt j} t|  ot|  S | S r*   )r#   r   r9   r   )r	   r   r   r   r   should_strip_ansi  s
   r      )r   c                  C  s   dd l } |  S rX   )localegetpreferredencoding)r   r   r   r   _get_argv_encoding  s   r   z'cabc.MutableMapping[t.TextIO, t.TextIO]_ansi_stream_wrappersc                   s   zt | }W n ty   d}Y nw |dur|S ddl}t| |}|j| |dttjj	}|j
 d
 fdd	}||_
z|t | < W |S  tyP   Y |S w )zbSupport ANSI color and style codes on Windows by wrapping a
        stream with colorama.
        Nr   )stripsr   r   rG   c                   s$   z | W S  t y      w r*   )BaseException	reset_all)r   _writeansi_wrapperr   r   _safe_write  s   
z'auto_wrap_for_ansi.<locals>._safe_write)r   r   r   rG   )r   getr6   coloramar   AnsiToWin32r+   r,   rt   r	   rQ   )r	   r   cachedr   r   r&   r   r   r   r   r   
  s*   

c                   C  s   t tjdd p
t S )Nr   )r"   r#   r   getfilesystemencodingr   r   r   r   r   /  s   rK   t.TextIO | Nonec                 C  s   d S r*   r   )rK   r   r   r   r   r   r   2  s   r   rN   rG   c                 C  s   t t| S r*   )lenr   )rN   r   r   r   term_len8  rE   r   c                 C  s    z|   W S  ty   Y dS w r   )r9   r6   rg   r   r   r   r9   <  s
   
r9   src_funct.Callable[[], t.TextIO | None]wrapper_funct.Callable[[], t.TextIO]c                   s   t   d fdd}|S )Nr   r   c                    sn    } | d u r	d S z  | }W n ty   d }Y nw |d ur"|S  }z| | < W |S  ty6   Y |S w r*   )r   r6   r%   cacher  r  r   r   funcI  s$   
z&_make_cached_stream_func.<locals>.func)r   r   r   )r  r  r  r   r  r   _make_cached_stream_funcC  s   r  c                   C     t jS r*   )r#   r   r   r   r   r   <lambda>_      r
  c                   C  r	  r*   )r#   r   r   r   r   r   r
  `  r  c                   C  r	  r*   )r#   r   r   r   r   r   r
  a  r  )r   r   r   z-cabc.Mapping[str, t.Callable[[], t.BinaryIO]]binary_streamszAcabc.Mapping[str, t.Callable[[str | None, str | None], t.TextIO]]text_streamsr:   )r	   r
   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r	   r!   r   r   r   )r	   r!   rW   r   r   r   )r	   r!   r   r^   )r	   r   r   r   )r	   r   rj   r   rk   r   r   r   )r	   r   r   r   r   r   r   r   )ro   r!   r   r   r   r   rp   rq   rr   rs   r   r   r   r   r   r   )
rx   r!   r   r   r   r   r   r   r   r   )
r}   r!   r   r   r   r   r   r   r   r   )r   r
   )NN)r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r!   )r   Nr   F)r   r   r   r   r   r   r   r   r   r   r   r   )rk   r   r   r   )r	   r!   r   r   )r	   r   r   r   r   r   r   r*   )r	   r   r   r   r   r   )rK   r   r   r   r   r   r   r   )rN   r   r   rG   )r  r  r  r  r   r  )@
__future__r   r   collections.abcabccabcior   rer#   typingr+   typesr   weakrefr   platformr   CYGWINWINr   __annotations__compiler   r   r    r   TextIOWrapperr   r.   r[   r]   rd   rf   rh   rm   rn   rw   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   _winconsoler   r   r   r   r9   r  _default_text_stdin_default_text_stdout_default_text_stderrr  r  r   r   r   r   <module>   s    


E	



	
	2



Q
$


%



