
    jI                    r   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e	j        dk    ZdZded	<    ej        d
          Z	 	 dhdidZdjdZdkdZ G d dej                  Z G d d          Zdldmd Zdldmd!Z dnd#Z!dnd$Z"dod%Z#dpd(Z$dqd)Z%	 	 dhdrd/Z&	 dldsd1Z'	 dldtd3Z(dud4Z)dud5Z*dud6Z+dvdwd7Z,dvdwd8Z-dvdwd9Z.dxd=Z/	 	 	 	 dydzdDZ0 G dE dF          Z1d{dGZ2d|dHZ3	 dvd}dLZ4e	j                            d          r!erdMdNl5m6Z6 d~dOZ7 e            Z8dPedQ<   dddRZnd~dSZ7ddVZ6ddYZ9d|dZZ:dd_Z; e;d` e,          Z< e;da e-          Z= e;db e.          Z>e)e*e+dcZ?ddede<   e,e-e.dcZ@dfedg<   dS )    )annotationsN)TracebackTypeWeakKeyDictionarycygwinwindarwinz'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                V    |t          |           }|d}t          | ||d||          S )NreplaceT)line_bufferingr   r   )get_best_encoding_NonClosingTextIOWrapper)r   r   r   r   r   s        _/home/kuhnn/.cache/uv/archive-v0/2m3GSyFXjlQcJqu5/lib/python3.11/site-packages/click/_compat.py_make_text_streamr      sJ     $V,,~#%%       strc                `    	 t          j        |           j        dk    S # t          $ r Y dS w xY w)z$Checks if a given encoding is ascii.asciiF)codecslookupnameLookupError)r   s    r   is_ascii_encodingr$   )   sA    }X&&+w66   uus    
--t.IO[t.Any]c                p    t          | dd          pt          j                    }t          |          rdS |S )z1Returns the default stream encoding if not found.r   Nzutf-8)getattrsysgetdefaultencodingr$   )r   rvs     r   r   r   1   s;    	T	*	*	Fc.D.F.FB wIr   c                  6     e Zd Z	 	 dd fdZddZddZ xZS )r   Fr   r   r   r   r   r   r   r   extrat.Anyr   Nonec                    t          j        t           j        t          |||                    x| _        } t                      j        |||fi | d S N)tcastBinaryIO_FixupStream_streamsuper__init__)selfr   r   r   r   r   r,   	__class__s          r   r7   z!_NonClosingTextIOWrapper.__init__:   s]     !"JV^^LL!
 !
 	
v 	6;;U;;;;;r   c                R    	 |                                   d S # t          $ r Y d S w xY wr0   )detach	Exceptionr8   s    r   __del__z _NonClosingTextIOWrapper.__del__H   s:    	KKMMMMM 	 	 	DD	s    
&&c                4    | j                                         S r0   )r5   isattyr=   s    r   r@   z_NonClosingTextIOWrapper.isattyN   s    |""$$$r   FF)r   r   r   r   r   r   r   r   r   r   r,   r-   r   r.   )r   r.   r   r   )__name__
__module____qualname__r7   r>   r@   __classcell__)r9   s   @r   r   r   9   sr          %$< < < < < < <   % % % % % % % %r   r   c                  H    e Zd ZdZ	 	 dddZddZddZddZddZddZ	dS )r4   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                0    || _         || _        || _        d S r0   )r5   _force_readable_force_writable)r8   r   r   r   s       r   r7   z_FixupStream.__init__]   s!     --r   r"   r   r   r-   c                ,    t          | j        |          S r0   )r'   r5   r8   r"   s     r   __getattr__z_FixupStream.__getattr__g   s    t|T***r   sizeintbytesc                    t          | j        dd           }|#t          j        t           ||                    S | j                            |          S )Nread1)r'   r5   r1   r2   rP   read)r8   rN   fs      r   rR   z_FixupStream.read1j   sJ    DL'400=6%4)))|  &&&r   c                    | j         rdS t          | j        dd           }|"t          j        t
           |                      S 	 | j                            d           n# t          $ r Y dS w xY wdS )NTreadabler   F)rI   r'   r5   r1   r2   r   rS   r<   r8   xs     r   rV   z_FixupStream.readabler   s     	4DL*d33=6$$$$	La     	 	 	55	ts   A   
A.-A.c                @   | j         rdS t          | j        dd           }|"t          j        t
           |                      S 	 | j                            d           n># t          $ r1 	 | j                            d           n# t          $ r Y Y dS w xY wY nw xY wdS )NTwritabler   F)rJ   r'   r5   r1   r2   r   writer<   rW   s     r   rZ   z_FixupStream.writable~   s     	4DL*d33=6$$$$	Ls#### 	 	 	""3''''   uuu ('	
 ts6   A   
B+BB
BBBBBc                   t          | j        dd           }|"t          j        t           |                      S 	 | j                            | j                                                   n# t          $ r Y dS w xY wdS )NseekableFT)r'   r5   r1   r2   r   seektellr<   rW   s     r   r]   z_FixupStream.seekable   s    DL*d33=6$$$$	Ldl//112222 	 	 	55	ts   1A. .
A<;A<NrA   )r   r   r   r   r   r   r"   r   r   r-   )rN   rO   r   rP   rB   )
rC   rD   rE   __doc__r7   rM   rR   rV   rZ   r]    r   r   r4   r4   S   s           %$	. . . . .+ + + +' ' ' '
 
 
 
        r   r4   defaultc                x    	 t          |                     d          t                    S # t          $ r |cY S w xY wNr   )
isinstancerS   rP   r<   r   rc   s     r   _is_binary_readerrh      sE    &++a..%000   s   '* 99c                    	 |                      d           n;# t          $ r. 	 |                      d           Y dS # t          $ r Y nw xY w|cY S w xY wdS )Nr    FT)r[   r<   rg   s     r   _is_binary_writerrk      s    S   	LL55 	 	 	D	 4s*    
A;
AAAAAt.BinaryIO | Nonec                    t          | d          rt          j        t          j        |           S t	          | dd           }|/t          |d          rt          j        t          j        |          S d S NFbufferT)rh   r1   r2   r3   r'   r   bufs     r   _find_binary_readerrr      j    
 '' *vaj&)))
&(D
)
)C ,S$77vaj#&&&4r   c                    t          | d          rt          j        t          j        |           S t	          | dd           }|/t          |d          rt          j        t          j        |          S d S rn   )rk   r1   r2   r3   r'   rp   s     r   _find_binary_writerru      rs   r   c                B    t          t          | dd          pd          S )z3A stream is misconfigured if its encoding is ASCII.r   Nr   )r$   r'   r   s    r   _stream_is_misconfiguredrx      s#     WVZ>>I'JJJr   attrvaluec                @    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   ry   rz   stream_values       r   _is_compat_stream_attrr}      s3    
 64..L5 PUd]%O|47OPr   c                F    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   s      r   _is_compatible_text_streamr      s1     "
H  ;
 6
:
:;r   text_stream	is_binary%t.Callable[[t.IO[t.Any], bool], bool]find_binary,t.Callable[[t.IO[t.Any]], t.BinaryIO | None]c                2    || d          r t          j        t           j        |           }nTt          j        t           j        |           } t	          | ||          r|t          |           s| S  ||           }|| S |}|d}t          |||||          S )NFr   )r   r   )r1   r2   r3   TextIOr   rx   r   )	r   r   r   r   r   r   r   binary_readerpossible_binary_readers	            r   _force_correct_text_streamr      s     ye$$ /qz;77fQX{33 &k8VDD 	!9+!F!F "-[!9!9 "). ~ %%   r   text_readerc                @    t          | ||t          t          |          S )Nr   )r   rh   rr   )r   r   r   r   s       r   _force_correct_text_readerr     -     &%   r   text_writerc                @    t          | ||t          t          |          S )Nr   )r   rk   ru   )r   r   r   r   s       r   _force_correct_text_writerr   -  r   r   c                 Z    t          t          j                  } | t          d          | S )Nz6Was not able to determine binary stream for sys.stdin.)rr   r(   stdinRuntimeError)readers    r   get_binary_stdinr   =  s*     ++F~STTTMr   c                 Z    t          t          j                  } | t          d          | S )Nz7Was not able to determine binary stream for sys.stdout.)ru   r(   stdoutr   writers    r   get_binary_stdoutr   D  *     ,,F~TUUUMr   c                 Z    t          t          j                  } | t          d          | S )Nz7Was not able to determine binary stream for sys.stderr.)ru   r(   stderrr   r   s    r   get_binary_stderrr   K  r   r   c                z    t          t          j        | |          }||S t          t          j        | |d          S )NTr   )_get_windows_console_streamr(   r   r   r   r   r*   s      r   get_text_stdinr   R  s9    	$SY&	A	AB	~	%ci6RVWWWWr   c                z    t          t          j        | |          }||S t          t          j        | |d          S NTr   )r   r(   r   r   r   s      r   get_text_stdoutr   Y  9    	$SZ6	B	BB	~	%cj(FSWXXXXr   c                z    t          t          j        | |          }||S t          t          j        | |d          S r   )r   r(   r   r   r   s      r   get_text_stderrr   `  r   r   filestr | os.PathLike[str] | intmodec                P    d|v rt          | |          S t          | |||          S )z?Handles not passing ``encoding`` and ``errors`` in binary mode.br   r   )open)r   r   r   r   s       r   _wrap_io_openr   g  s4     d{{D$dXf====r   rstrictfilenamestr | os.PathLike[str]atomictuple[t.IO[t.Any], bool]c                   dv }t          j        |           } t          j        |           dk    ret          fddD                       r%|rt	                      dfS t          ||          dfS |rt                      dfS t          ||          dfS |st          | ||          dfS dv rt          d	          d
v rt          d          dvrt          d          dd l
}dd l}	 t          j        |           j        }n# t          $ r d }Y nw xY wt           j        t           j        z  t           j        z  }	|r|	t%          t           dd          z  }		 t           j                            t           j                            |           d|                    d          d          }
	 t          j        |
|	|dn|          }n# t          $ r}|j
        |j        k    sht           j        dk    r]|j
        |j        k    rMt           j                            |j                  r)t          j        |j        t           j                  rY d }~ d }~ww xY w|t          j        |
|           t          |||          }tA          ||
t           j        !                    |                     }tE          j#        tD          j$        tD          j%                 |          dfS )Nr   -c              3      K   | ]}|v V  	d S r0   rb   ).0mr   s     r   	<genexpr>zopen_stream.<locals>.<genexpr>  s'      22QqDy222222r   )warX   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.rX   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realpathr1   r2   IOAny)r   r   r   r   r   binaryr   r   permflagstmp_filenamefderT   afs    `             r   open_streamr   t  s    D[Fy""H 
{8##2222/22222 	L 2(**E11"HVDDDeKK 	-#%%u,,x???FF  EXtXv>>DD d{{,
 
 	
 d{{ABBB
$GHHH LLLMMM78,,4    I
"RY.E ,Z+++w||GOOH%%=f..w77===
 
	ut|eeNNB 	 	 	w%,&&4Gu|++GMM!*-- ,Iaj"'22 , 	 
t$$$b$&11A	Qbg&6&6x&@&@	A	AB6!$qu+r""D((s1   /D	 	DD2G 
IA8IIIc                  X    e Zd ZddZedd	            ZdddZddZd dZd!dZ	ddZ
dS )"r   rT   r%   r   r   real_filenamer   r.   c                >    || _         || _        || _        d| _        d S NF)_f_tmp_filename_real_filenameclosed)r8   rT   r   r   s       r   r7   z_AtomicFile.__init__  s$    )+r   c                    | j         S r0   )r   r=   s    r   r"   z_AtomicFile.name  s    ""r   Fdeleter   c                    | j         rd S | j                                         t          j        | j        | j                   d| _         d S )NT)r   r   closer   r   r   r   )r8   r   s     r   r   z_AtomicFile.close  sC    ; 	F

4%t':;;;r   r"   r-   c                ,    t          | j        |          S r0   )r'   r   rL   s     r   rM   z_AtomicFile.__getattr__  s    tw%%%r   c                    | S r0   rb   r=   s    r   	__enter__z_AtomicFile.__enter__  s    r   exc_typetype[BaseException] | None	exc_valueBaseException | NonetbTracebackType | Nonec                6    |                      |d u           d S )N)r   )r   )r8   r   r   r   s       r   __exit__z_AtomicFile.__exit__  s#     	

($.
/////r   c                *    t          | j                  S r0   )reprr   r=   s    r   __repr__z_AtomicFile.__repr__  s    DG}}r   N)rT   r%   r   r   r   r   r   r.   r   r   F)r   r   r   r.   r`   )r   r   )r   r   r   r   r   r   r   r.   )rC   rD   rE   r7   propertyr"   r   rM   r   r   r   rb   r   r   r   r     s            # # # X#    & & & &   0 0 0 0     r   r   c                8    t                               d|           S )Nrj   )_ansi_resub)rz   s    r   
strip_ansir    s    <<E"""r   c                    t          | t          t          f          r#| j        } t          | t          t          f          #| j        j                            d          S )Nz
ipykernel.)rf   r4   r   r5   r9   rD   
startswithrw   s    r   _is_jupyter_kernel_outputr
    sW    
Vl,DE
F
F   Vl,DE
F
F   &11,???r   t.IO[t.Any] | Nonecolorbool | Nonec                    |A| t           j        } nt          | d          rdS t          |            ot	          |            S | S )Nr  F)r(   r   hasattrr@   r
  )r   r  s     r   should_strip_ansir    sX     }>YFFVW%% 	 5&>>!K*CF*K*K&KK9r      )r   c                 2    dd l } |                                 S re   )localegetpreferredencoding)r  s    r   _get_argv_encodingr    s    **,,,r   z'cabc.MutableMapping[t.TextIO, t.TextIO]_ansi_stream_wrappersc                n   	 t                               |           }n# t          $ r d}Y nw xY w||S ddl}t	          | |          }|                    | |          t          j        t          j        j	                  }|j
        d	fd}||_
        	 |t           | <   n# t          $ r Y nw xY w|S )
zbSupport ANSI color and style codes on Windows by wrapping a
        stream with colorama.
        Nr   )stripsr   r   rO   c                b    	  |           S # t           $ r                                   w xY wr0   )BaseException	reset_all)r  _writeansi_wrappers    r   _safe_writez'auto_wrap_for_ansi.<locals>._safe_write"  sF    vayy     &&(((s   
  .)r  r   r   rO   )r  getr<   coloramar  AnsiToWin32r1   r2   r   r   r[   )	r   r  cachedr!  r  r*   r  r  r  s	          @@r   r
   r
     s   	*..v66FF 	 	 	FFF	 M!&%00++F%+@@VAHl122	 	 	 	 	 	 	 	,.!&)) 	 	 	D	 	s    ..
B% %
B21B2c                 ^    t          t          j        dd           pt          j                    S )Nr   )r'   r(   r   getfilesystemencodingrb   r   r   r  r  4  s$    sy*d33Rs7P7R7RRr   rT   t.TextIO | Nonec                    d S r0   rb   )rT   r   r   s      r   r   r   7  s	     tr   rX   rO   c                :    t          t          |                     S r0   )lenr  )rX   s    r   term_lenr*  =  s    z!}}r   c                N    	 |                                  S # t          $ r Y dS w xY wr   )r@   r<   rw   s    r   r@   r@   A  s7    }}   uus    
$$src_funct.Callable[[], t.TextIO | None]wrapper_funct.Callable[[], t.TextIO]c                8     t                      d fd}|S )Nr   r&  c                                  } | d S 	                      |           }n# t          $ r d }Y nw xY w||S              }	 || <   n# t          $ r Y nw xY w|S r0   )r   r<   )r   r*   cacher,  r.  s     r   funcz&_make_cached_stream_func.<locals>.funcN  s    >4	6""BB 	 	 	BBB	>I\^^	E&MM 	 	 	D		s   ' 66A 
AA)r   r&  r   )r,  r.  r3  r2  s   `` @r   _make_cached_stream_funcr4  H  sB     6G5H5HE       & Kr   c                     t           j        S r0   )r(   r   rb   r   r   <lambda>r6  d  s    sy r   c                     t           j        S r0   )r(   r   rb   r   r   r6  r6  e      
 r   c                     t           j        S r0   )r(   r   rb   r   r   r6  r6  f  r8  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_streamsrA   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   r%   r   r   r  )r   r%   rc   r   r   r   )r   r%   r   rl   )r   r   r   r   )r   r   ry   r   rz   r   r   r   )r   r   r   r   r   r   r   r   )r   r%   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )
r   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   )rz   r   r   r   )r   r%   r   r   )r   r  r  r  r   r   r  r0   )r   r   r  r  r   r   )rT   r   r   r   r   r   r   r&  )rX   r   r   rO   )r,  r-  r.  r/  r   r-  )A
__future__r   r    collections.abcabccabcior   rer(   typingr1   typesr   weakrefr   platformr	  CYGWINWINMACr
   __annotations__compiler  r   r$   r   TextIOWrapperr   r4   rh   rk   rr   ru   rx   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  r  _winconsoler   r  r  r*  r@   r4  _default_text_stdin_default_text_stdout_default_text_stderrr:  r;  rb   r   r   <module>rP     si   " " " " " " "        				 				 				 



           % % % % % %		 	 	*	*	le$$	lh>B  B B B B2:/00 !     *      % % % % %r/ % % %4B B B B B B B BJ    
 
 
 
 
   $   $K K K KQ Q Q Q; ; ; ;" ! + + + + +d !	    ( !	              X X X X XY Y Y Y YY Y Y Y Y
> 
> 
> 
> !N) N) N) N) N)b! ! ! ! ! ! ! !H# # # #@ @ @ @ =A    " <5!! 5c 5888888- - - -
 FWEVEXEXXXXX! ! ! ! ! !JS S S S            8 /./@/@.QQ //0B0BOTT //0B0BOTT  A A     S S      r   