a
    0h*I                  
   @   s~  U d dl 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 ej	
dZej	
dZdZejejejgejf  ed< edZdjejeje eje eeejdd	d
ZeedddZejej edddZG dd dejZG dd dZdkejej eedddZdlejej eedddZ ejej ejej dddZ!ejej ejej dddZ"ejedddZ#ejeeje ed d!d"Z$ejeje eje ed#d$d%Z%dmejej eje eje ejejej egef ejejej gejej f eeejd&d'd(Z&dnejej eje eje eejd)d*d+Z'doejej eje eje eejd,d-d.Z(ejd/d0d1Z)ejd/d2d3Z*ejd/d4d5Z+dpeje eje ejd6d7d8Z,dqeje eje ejd6d9d:Z-dreje eje ejd6d;d<Z.ej/ed=e0f eeje eje ejej d>d?d@Z1dsdCeeje eje eej2ejej ef dDdEdFZ3G dGdH dHZ4eedIdJdKZ5ejej eddLdMZ6dtejejej  eje edNdOdPZ7ej	
drJerJdQdRl8m9Z9 ed/dSdTZ:e Z;ej<ejejf edU< duejeje ejdNdVdZn8ed/dWdTZ:ejeje eje ejej dXdYdZZ9ee0d[d\d]Z=ejej edd^d_Z>ejg ejej f ejg ejf ejg ejej f d`dadbZ?e?dcdd e,Z@e?dedd e-ZAe?dfdd e.ZBe)e*e+dgZCejDeejg ejf f edh< e,e-e.dgZEejDeejeje eje gejf f edi< dS )v    N)WeakKeyDictionarycygwinwinauto_wrap_for_ansiz\033\[[;?0-9]*[a-zA-Z]F)streamencodingerrorsforce_readableforce_writablereturnc                 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/auris/lib/python3.9/site-packages/click/_compat.py_make_text_stream   s    r   )r   r   c                 C   s,   zt | jdkW S  ty&   Y dS 0 dS )z$Checks if a given encoding is ascii.asciiFN)codecslookupnameLookupError)r   r   r   r   is_ascii_encoding$   s    r   )r   r   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   ,   s    r   c                	       s\   e Zd Zdejeje eje eeejdd fddZ	ddddZ
edd	d
Z  ZS )r   FN)r   r   r   r	   r
   extrar   c                    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   r&   5   s    	
z!_NonClosingTextIOWrapper.__init__r   c                 C   s$   z|    W n ty   Y n0 d S r   )detach	Exceptionr'   r   r   r   __del__C   s    z _NonClosingTextIOWrapper.__del__c                 C   s
   | j  S r   )r$   isattyr-   r   r   r   r/   I   s    z_NonClosingTextIOWrapper.isatty)FF)__name__
__module____qualname__r    r"   OptionalstrboolAnyr&   r.   r/   __classcell__r   r   r(   r   r   4   s     r   c                   @   sr   e Zd ZdZdejeedddZeej	dddZ
eed	d
dZedddZedddZe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).
    F)r   r	   r
   c                 C   s   || _ || _|| _d S r   )r$   _force_readable_force_writable)r'   r   r	   r
   r   r   r   r&   X   s    z_FixupStream.__init__r   r   c                 C   s   t | j|S r   )r   r$   r'   r   r   r   r   __getattr__b   s    z_FixupStream.__getattr__)sizer   c                 C   s2   t | jdd }|d ur&tt||S | j|S )Nread1)r   r$   r    r!   bytesread)r'   r=   fr   r   r   r>   e   s    z_FixupStream.read1r*   c                 C   sX   | j r
dS t| jdd }|d ur.tt| S z| jd W n tyR   Y dS 0 dS )NTreadabler   F)r8   r   r$   r    r!   r5   r@   r,   r'   xr   r   r   rB   m   s    z_FixupStream.readablec                 C   s~   | j r
dS t| jdd }|d ur.tt| S z| jd W n: tyx   z| jd W n tyr   Y Y dS 0 Y n0 dS )NTwritable     F)r9   r   r$   r    r!   r5   writer,   rC   r   r   r   rE   y   s    z_FixupStream.writablec                 C   sT   t | jdd }|d ur$tt| S z| j| j  W n tyN   Y dS 0 dS )NseekableFT)r   r$   r    r!   r5   seektellr,   rC   r   r   r   rI      s    z_FixupStream.seekableN)FF)r0   r1   r2   __doc__r    r"   r5   r&   r4   r6   r<   intr?   r>   rB   rE   rI   r   r   r   r   r#   N   s     
r#   )r   defaultr   c                 C   s.   zt | dtW S  ty(   | Y S 0 d S Nr   )
isinstancer@   r?   r,   r   rN   r   r   r   _is_binary_reader   s    rR   c                 C   sP   z|  d W n< tyJ   z|  d W Y dS  ty@   Y n0 | Y S 0 dS )NrG   rF   FT)rH   r,   rQ   r   r   r   _is_binary_writer   s    

rS   c                 C   sH   t | drttj| S t| dd }|d urDt |drDttj|S d S NFbufferT)rR   r    r!   r"   r   r   bufr   r   r   _find_binary_reader   s    
rX   c                 C   sH   t | drttj| S t| dd }|d urDt |drDttj|S d S rT   )rS   r    r!   r"   r   rV   r   r   r   _find_binary_writer   s    
rY   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   s    r[   )r   attrvaluer   c                 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   r\   r]   Zstream_valuer   r   r   _is_compat_stream_attr   s    r^   )r   r   r   r   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   )r^   )r   r   r   r   r   r   _is_compatible_text_stream   s
    
r_   )text_streamr   r   	is_binaryfind_binaryr	   r
   r   c           	      C   s~   || drt t j| }nFt t j| } t| ||rH|d u rDt| sH| S || }|d u r\| S |}|d u rld}t|||||dS )NFr   )r	   r
   )r    r!   r"   TextIOr_   r[   r   )	r`   r   r   ra   rb   r	   r
   Zbinary_readerZpossible_binary_readerr   r   r   _force_correct_text_stream   s,    	
rd   )text_readerr   r   r	   r   c                 C   s   t | ||tt|dS )Nr	   )rd   rR   rX   )re   r   r   r	   r   r   r   _force_correct_text_reader  s    rg   )text_writerr   r   r
   r   c                 C   s   t | ||tt|dS )Nr
   )rd   rS   rY   )rh   r   r   r
   r   r   r   _force_correct_text_writer(  s    rj   r*   c                  C   s   t tj} | d u rtd| S )Nz6Was not able to determine binary stream for sys.stdin.)rX   r   stdinRuntimeError)readerr   r   r   get_binary_stdin8  s    
rn   c                  C   s   t tj} | d u rtd| S )Nz7Was not able to determine binary stream for sys.stdout.)rY   r   stdoutrl   writerr   r   r   get_binary_stdout?  s    
rr   c                  C   s   t tj} | d u rtd| S )Nz7Was not able to determine binary stream for sys.stderr.)rY   r   stderrrl   rp   r   r   r   get_binary_stderrF  s    
rt   )r   r   r   c                 C   s,   t tj| |}|d ur|S ttj| |ddS )NTrf   )_get_windows_console_streamr   rk   rg   r   r   r   r   r   r   get_text_stdinM  s    rw   c                 C   s,   t tj| |}|d ur|S ttj| |ddS NTri   )ru   r   ro   rj   rv   r   r   r   get_text_stdoutV  s    ry   c                 C   s,   t tj| |}|d ur|S ttj| |ddS rx   )ru   r   rs   rj   rv   r   r   r   get_text_stderr_  s    rz   zos.PathLike[str])filemoder   r   r   c                 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_openh  s    
r   rstrictzt.Union[str, os.PathLike[str]])filenamer|   r   r   atomicr   c              
      s8  d v }t | } t | dkrrt fdddD rT|rDt dfS t||ddfS |rbt dfS t||ddfS |st|  ||dfS d	 v rt	d
d v rt	dd vrt	ddd l
}dd l}zt | j}W n ty   d }Y n0 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 rTdn|}W qW n ty } zf|j
|jkst jdkr|j
|jkrt j|jrt |jt jrW Y d }~q W Y d }~n
d }~0 0 q|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>  rG   zopen_stream.<locals>.<genexpr>)warD   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.rD   z&Use the `overwrite`-parameter instead.r   z,Atomic writes only make sense with `w`-mode.r   O_BINARYz.__atomic-writel        Z08xi  nt)&osfspathfsdecodeanyrr   ry   rn   rw   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!   IOr6   )r   r|   r   r   r   binaryr   r   permflagstmp_filenamefderA   afr   r   r   open_streamu  sj    







r   c                   @   s   e Zd Zejej eeddddZeedddZ	de
dd	d
dZeejdddZd dddZejeje  ejddddZedddZdS )r   N)rA   r   real_filenamer   c                 C   s   || _ || _|| _d| _d S NF)_f_tmp_filename_real_filenameclosed)r'   rA   r   r   r   r   r   r&     s    z_AtomicFile.__init__r*   c                 C   s   | j S r   )r   r-   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   )r'   r   r   r   r   r     s
    
z_AtomicFile.closer:   c                 C   s   t | j|S r   )r   r   r;   r   r   r   r<     s    z_AtomicFile.__getattr__c                 C   s   | S r   r   r-   r   r   r   	__enter__  s    z_AtomicFile.__enter__)exc_type_r   c                 G   s   | j |d ud d S )N)r   )r   )r'   r   r   r   r   r   __exit__  s    z_AtomicFile.__exit__c                 C   s
   t | jS r   )reprr   r-   r   r   r   __repr__  s    z_AtomicFile.__repr__)F)r0   r1   r2   r    r   r6   r4   r&   propertyr   r5   r   r<   r   r3   TypeBaseExceptionr   r   r   r   r   r   r     s    r   )r]   r   c                 C   s   t d| S )NrF   )_ansi_resub)r]   r   r   r   
strip_ansi  s    r   c                 C   s$   t | ttfr| j} q | jjdS )Nz
ipykernel.)rP   r#   r   r$   r)   r1   
startswithrZ   r   r   r   _is_jupyter_kernel_output  s    r   )r   colorr   c                 C   s0   |d u r*| d u rt j} t|  o(t|  S | S r   )r   rk   r/   r   )r   r   r   r   r   should_strip_ansi  s
    r      )ru   c                  C   s   dd l } |  S rO   )localegetpreferredencoding)r   r   r   r   _get_argv_encoding   s    r   _ansi_stream_wrappersc                    s   zt | }W n ty$   d}Y n0 |dur2|S ddl}t| |}|j| |dttjj	}|j
  fdd}||_
z|t | < W n ty   Y n0 |S )zbSupport ANSI color and style codes on Windows by wrapping a
        stream with colorama.
        Nr   )stripc                    s,   z
 | W S  t y&      Y n0 d S r   )r   	reset_all)s_writeZansi_wrapperr   r   _safe_write  s
    
z'auto_wrap_for_ansi.<locals>._safe_write)r   getr,   coloramar   AnsiToWin32r    r!   rc   r   rH   )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   rk   getfilesystemencodingr   r   r   r   r   .  s    )rA   r   r   r   c                 C   s   d S r   r   )rA   r   r   r   r   r   ru   1  s    ru   )rD   r   c                 C   s   t t| S r   )lenr   )rD   r   r   r   term_len7  s    r   c                 C   s$   z
|   W S  ty   Y dS 0 d S r   )r/   r,   rZ   r   r   r   r/   ;  s    
r/   )src_funcwrapper_funcr   c                    s(   t   tjtj d fdd}|S )Nr*   c                     sn    } | d u rd S z  | }W n ty6   d }Y n0 |d urD|S  }z| | < W n tyh   Y n0 |S r   )r   r,   r   cacher   r   r   r   funcH  s    
z&_make_cached_stream_func.<locals>.func)r   r    r3   rc   )r   r   r   r   r   r   _make_cached_stream_funcB  s    r   c                   C   s   t jS r   )r   rk   r   r   r   r   <lambda>^  rG   r   c                   C   s   t jS r   )r   ro   r   r   r   r   r   _  rG   c                   C   s   t jS r   )r   rs   r   r   r   r   r   `  rG   )rk   ro   rs   binary_streamstext_streams)FF)F)F)FF)F)F)NN)NN)NN)r   Nr   F)NN)N)Fr   ior   rer   typingr    weakrefr   platformr   ZCYGWINZWINr   r3   Callablerc   __annotations__compiler   r"   r4   r5   r   r   r   r6   r   TextIOWrapperr   r#   rR   rS   rX   rY   r[   r^   r_   rd   rg   rj   rn   rr   rt   rw   ry   rz   UnionrM   r   Tupler   r   r   r   r   Z_winconsoleru   r   r   MutableMappingr   r/   r   Z_default_text_stdinZ_default_text_stdoutZ_default_text_stderrr   Mappingr   r   r   r   r   <module>   s  
"
  E	  	
  
2 
 
 
 
 

    Q  '
$	"