
    wdfi^                        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          dk    Zej	        
                    d          Zej	        
                    d          odej        v Zdej        v odej                            d	d
          v Zej	        
                    d          oe oe ZdZ ej        d          Zd Z	 dUdZd Zd Z G d dej                  Z G d de          ZerkeZeZe efZ!e"e#fZ$d Z%e&Z'd Z( ej        d          Z)d Z*	 d dl+Z+d Z*n# e,$ r Y nw xY w	 d dl-Z-d Z*n# e,$ r Y nw xY wd Z.d Z/d Z0d Z1dVd Z2dVd!Z3dVd"Z4d# Z5nVd dlZe Ze6Ze fZ!e"fZ$e7Z'd$ Z.d% Z%d& Z(dWd'Z8dWd(Z9d) Z:d* Z;d+ Z<d, Z=d- Z>	 	 dUd.Z?dWd/Z@dWd0ZAd1 Z/d2 Z0d3 Z1dVd4Z2dVd5Z3dVd6Z4d7 Z5dXd8ZBd9 ZCdYd<ZD eEed=          r
ejF        ZGd>ZHn
ejI        ZGe ZH G d? d@e          ZJdZKdZLdZMdA ZNdB ZOdVdCZPer5dDZdEdFlQmRZRmSZS dG ZTerdZdHZ	 d dlLZL e            ZUdXdIZKdJ ZMn# e,$ r Y nw xY wdK ZTdL ZRdM ZSdN ZVdO ZWdP ZX eXdQ e2          ZY eXdR e3          ZZ eXdS e4          Z[e/e0e1dTZ\e2e3e4dTZ]dS )[    NWeakKeyDictionary   cygwinwinGCCAPPENGINE_RUNTIMEzDevelopment/SERVER_SOFTWARE P   z\033\[[;?0-9]*[a-zA-Z]c                  N    t          j                    pt          j                    S N)sysgetfilesystemencodinggetdefaultencoding     R/var/www/book.euthymeo.com/html/venv/lib/python3.11/site-packages/click/_compat.pyget_filesystem_encodingr      s    $&&B#*@*B*BBr   Fc                 V    |t          |           }|d}t          | ||d||          S )NreplaceT)line_bufferingforce_readableforce_writable)get_best_encoding_NonClosingTextIOWrapper)streamencodingerrorsr   r   s        r   _make_text_streamr       sJ     $V,,~#%%   r   c                 `    	 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    
--c                 p    t          | dd          pt          j                    }t          |          rdS |S )z1Returns the default stream encoding if not found.r   Nutf-8)getattrr   r   r'   )r   rvs     r   r   r   4   s;    	T	*	*	Fc.D.F.FB wIr   c                   6    e Zd Z	 	 ddZerd Zd Zd Zd ZdS )	r   Fc                 j    t          |||          x| _        }t          j        j        | |||fi | d S r   )_FixupStream_streamioTextIOWrapper__init__)selfr   r   r   r   r   extras          r   r2   z!_NonClosingTextIOWrapper.__init__=   sD     !-V^^ T TTv
!$&JJEJJJJJr   c                 $   t          |t                    st          |          rM	 |                                  n# t          $ r Y nw xY w| j                            t          |                    S t          j                            | |          S r   )	
isinstancestris_bytesflush	Exceptionbufferwriter0   r1   r3   xs     r   r<   z_NonClosingTextIOWrapper.writeN   s    !S!! 1Xa[[ 1JJLLLL    D{((Q000#))$222s   ; 
AAc                 :    |D ]}|                      |           d S r   )r<   )r3   lineslines      r   
writelinesz#_NonClosingTextIOWrapper.writelinesW   s0     ! !

4    ! !r   c                 R    	 |                                   d S # t          $ r Y d S w xY wr   )detachr:   r3   s    r   __del__z _NonClosingTextIOWrapper.__del__[   s:    	KKMMMMM 	 	 	DD	s    
&&c                 4    | j                                         S r   )r/   isattyrE   s    r   rH   z_NonClosingTextIOWrapper.isattya   s    |""$$$r   NFF)	__name__
__module____qualname__r2   PY2r<   rB   rF   rH   r   r   r   r   r   <   sz         
K 
K 
K 
K  !	3 	3 	3	! 	! 	!  % % % % %r   r   c                   8    e Zd ZdZd
dZd Zd Zd Zd Z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).
    Fc                 0    || _         || _        || _        d S r   )r/   _force_readable_force_writable)r3   r   r   r   s       r   r2   z_FixupStream.__init__p   s    --r   c                 ,    t          | j        |          S r   )r*   r/   r3   r%   s     r   __getattr__z_FixupStream.__getattr__u   s    t|T***r   c                     t          | j        dd           }| ||          S t          r| j                            |          S | j                            |          S )Nread1)r*   r/   rM   readlineread)r3   sizefs      r   rV   z_FixupStream.read1x   s]    DL'400=1T77N  	/<((...|  &&&r   c                     | j         rdS t          | j        dd           }|
 |            S 	 | j                            d           n# t          $ r Y dS w xY wdS )NTreadabler   F)rP   r*   r/   rX   r:   r=   s     r   r\   z_FixupStream.readable   sz     	4DL*d33=133J	La     	 	 	55	ts   A 
AAc                    | j         rdS t          | j        dd           }|
 |            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   r   F)rQ   r*   r/   r<   r:   r=   s     r   r^   z_FixupStream.writable   s     	4DL*d33=133J	Lr"""" 	 	 	""3''''   uuu ('	
 ts5   A 
BA.-B.
A=8B<A==BBc                     t          | j        dd           }|
 |            S 	 | j                            | j                                                   n# t          $ r Y dS w xY wdS )NseekableFT)r*   r/   seektellr:   r=   s     r   r`   z_FixupStream.seekable   sx    DL*d33=133J	Ldl//112222 	 	 	55	ts   1A 
A$#A$NrI   )
rJ   rK   rL   __doc__r2   rT   rV   r\   r^   r`   r   r   r   r.   r.   f   s}         . . . .
+ + +	' 	' 	'
 
 
      r   r.   c                 *    |                                  S r   )	iteritemsr>   s    r   <lambda>rg      s    !++-- r   c                 :    t          | t          t          f          S r   )r6   r;   	bytearrayrf   s    r   r8   r8      s    !fi0111r   z^[a-zA-Z_][a-zA-Z0-9_]*$c                     | S r   r   )rZ   s    r   set_binary_moderk      s    r   c                     	 |                                  }t          j        |t          j                   n# t
          $ r Y nw xY w| S r   )filenomsvcrtsetmodeosO_BINARYr:   )rZ   rm   s     r   rk   rk      sV    4 vr{3333     Hs   6 
AAc                     	 |                                  }t          j        |t          j                  }t          j        |t          j        |t          j         z             n# t          $ r Y nw xY w| S r   )rm   fcntlF_GETFLF_SETFLrp   
O_NONBLOCKr:   )rZ   rm   flagss      r   rk   rk      su    K FEM::FEM5BM>3IJJJJ	    
 Hs   A$ $
A10A1c                 :    t                               |           d uS r   )_identifier_researchrf   s    r   isidentifierr{      s    $$Q''t33r   c                  4    t          t          j                  S r   )rk   r   stdinr   r   r   get_binary_stdinr~      s    sy)))r   c                  R    t          d           t          t          j                  S )Nstdout)_wrap_std_streamrk   r   r   r   r   r   get_binary_stdoutr           """sz***r   c                  R    t          d           t          t          j                  S )Nstderr)r   rk   r   r   r   r   r   get_binary_stderrr      r   r   c                 z    t          t          j        | |          }||S t          t          j        | |d          S NTr   )_get_windows_console_streamr   r}   r    r   r   r+   s      r   get_text_stdinr      s8    (HfEE>I HfTRRRRr   c                     t          d           t          t          j        | |          }||S t	          t          j        | |d          S )Nr   Tr   )r   r   r   r   r    r   s      r   get_text_stdoutr      F    """(XvFF>I XvdSSSSr   c                     t          d           t          t          j        | |          }||S t	          t          j        | |d          S )Nr   Tr   )r   r   r   r   r    r   s      r   get_text_stderrr     r   r   c                 t    t          | t                    r"|                     t                      d          } | S )Nr   )r6   bytesdecoder   values    r   filename_to_uir     s4    eU## 	GLL!8!:!:IFFEr   c                 *    |                                  S r   )r{   rf   s    r   rg   rg     s    Q^^-- r   c                 D    t          |                                           S r   )iteritemsrf   s    r   rg   rg     s    $qwwyy// r   c                 F    t          | t          t          t          f          S r   )r6   r   
memoryviewri   rf   s    r   r8   r8     s    !eZ;<<<r   c                 x    	 t          |                     d          t                    S # t          $ r |cY S w xY wNr   )r6   rX   r   r:   r   defaults     r   _is_binary_readerr      sE    	fkk!nne444 	 	 	NNN	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   r   FT)r<   r:   r   s     r   _is_binary_writerr   (  s    	LL 	 	 	R   uu   NNN	 ts*    
A;
AAAAAc                 x    t          | d          r| S t          | dd           }|t          |d          r|S d S d S NFr;   T)r   r*   r   bufs     r   _find_binary_readerr   4  R    
 VU++ 	Mfh-- ?0d;;?J ???r   c                 x    t          | d          r| S t          | dd           }|t          |d          r|S d S d S r   )r   r*   r   s     r   _find_binary_writerr   C  r   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_misconfiguredr   R  s#     !T!B!B!MgNNNr   c                 @    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   attrr   stream_values       r   _is_compat_stream_attrr   Z  s3    
 vtT22u$T$)S<t;STr   c                 F    t          | d|          ot          | d|          S )zkCheck 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   b  s1     &J
 
 ?$VXv>>	?r   c                      || d          r| }n3t          | ||          r|t          |           s| S  ||           }|| S |d}t          |||||          S )NFr   )r   r   )r   r   r    )text_streamr   r   	is_binaryfind_binaryr   r   binary_readers           r   _force_correct_text_streamr   j  s     9[%(( 	#'MM *+xHH # %=k%J%J "" (K44M $"" >F !))
 
 
 	
r   c                 @    t          | ||t          t          |          S )Nr   )r   r   r   )text_readerr   r   r   s       r   _force_correct_text_readerr     +    ))
 
 
 	
r   c                 @    t          | ||t          t          |          S )Nr   )r   r   r   )text_writerr   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.)r   r   r}   RuntimeError)readers    r   r~   r~     s*    $SY//>WXXXr   c                  Z    t          t          j                  } | t          d          | S )Nz7Was not able to determine binary stream for sys.stdout.)r   r   r   r   writers    r   r   r     2    $SZ00>I   r   c                  Z    t          t          j                  } | t          d          | S )Nz7Was not able to determine binary stream for sys.stderr.)r   r   r   r   r   s    r   r   r     r   r   c                 z    t          t          j        | |          }||S t          t          j        | |d          S r   )r   r   r}   r   r   s      r   r   r     sA    (HfEE>I)Ix
 
 
 	
r   c                 z    t          t          j        | |          }||S t          t          j        | |d          S NTr   )r   r   r   r   r   s      r   r   r     A    (XvFF>I)J&
 
 
 	
r   c                 z    t          t          j        | |          }||S t          t          j        | |d          S r   )r   r   r   r   r   s      r   r   r     r   r   c                     t          | t                    r#|                     t                      d          } n*|                     dd                              dd          } | S )Nr   r)   surrogateescape)r6   r   r   r   encoder   s    r   r   r     sZ    eU## 	XLL!8!:!:IFFEELL*;<<CCGYWWEr   c                     t          | d          r| j        }n||}nt          |           }t          |t                    r|                    dd          }|S )Nstrerrorr)   r   )hasattrr   r7   r6   r   r   )er   msgs      r   get_streerrorr     s_    q* jCCa&&C#u -jj),,Jr   c           	          d|v }|ri }n||d}t           r|rt          j        | |fi |S t          j        | d                    |                    dd                              }t          |fi |S )a+  On Python 2, :func:`io.open` returns a text file wrapper that
    requires passing ``unicode`` to ``write``. Need to open the file in
    binary mode then wrap it in a subclass that can write ``str`` and
    ``unicode``.

    Also handles not passing ``encoding`` and ``errors`` in binary mode.
    br   r   z{}btr   )rM   r0   openformatr   r    )filemoder   r   binarykwargsrZ   s          r   _wrap_io_openr     s     D[F :&&99 -& -wtT,,V,,,
ell4<<R#8#899::AQ))&)))r   rstrictc                 @   dv }| 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                              }
	 t          j        |
|	|dn|          }n# t          $ r}|j        |j        k    sht          j        dk    r^|j        |j        k    rNt          j                            |j                  r*t          j        |j        t          j                  rY d }~ d }~ww xY w|t          j        |
|           t          |||          }t?          ||
t          j                             |                     dfS )Nr   -c              3       K   | ]}|v V  	d S r   r   ).0mr   s     r   	<genexpr>zopen_stream.<locals>.<genexpr>  s'      22QqDy222222r   )war>   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.r>   z&Use the `overwrite`-parameter instead.r   z,Atomic writes only make sense with `w`-mode.r   rq   z.__atomic-write{:08x}l        i  nt)!anyr   r   r~   r   r   
ValueErrorerrnorandomrp   statst_modeOSErrorO_RDWRO_CREATO_EXCLr*   pathjoindirnamer   	randranger   EEXISTr%   EACCESisdirfilenameaccessW_OKchmod_AtomicFilerealpath)r  r   r   r   atomicr   r   r   permrw   tmp_filenamefdr   rZ   s    `            r   open_streamr    s   D[F 3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wx  (    I
"RY.E ,Z+++w||GOOH%%#**6+;+;G+D+DEE
 
	ut|eeNNB 	 	 	w%,&&4Gu|++GMM!*-- ,Iaj"'22 , 	 
t$$$b$&11Aq,(8(8(B(BCCTIIs1   	C# #C21C2F6 6
I A8H?>H??Ir   Tc                   J    e Zd Zd Zed             Zd
dZd Zd Zd Z	d Z
d	S )r  c                 >    || _         || _        || _        d| _        d S NF)_f_tmp_filename_real_filenameclosed)r3   rZ   r	  real_filenames       r   r2   z_AtomicFile.__init__T  s$    )+r   c                     | j         S r   )r  rE   s    r   r%   z_AtomicFile.nameZ  s    ""r   Fc                     | j         rd S | j                                         t          s+	 t	          j        | j                   n# t          $ r Y nw xY wt          | j	        | j                   d| _         d S )NT)
r  r  close_can_replacerp   remover  r   _replacer  )r3   deletes     r   r  z_AtomicFile.close^  s    ; 	F 		$-....   #T%8999s   A 
AAc                 ,    t          | j        |          S r   )r*   r  rS   s     r   rT   z_AtomicFile.__getattr__j  s    tw%%%r   c                     | S r   r   rE   s    r   	__enter__z_AtomicFile.__enter__m  s    r   c                 6    |                      |d u           d S )N)r  )r  )r3   exc_type	exc_valuetbs       r   __exit__z_AtomicFile.__exit__p  s!    

($.
/////r   c                 *    t          | j                  S r   )reprr  rE   s    r   __repr__z_AtomicFile.__repr__s  s    DG}}r   NF)rJ   rK   rL   r2   propertyr%   r  rT   r  r"  r%  r   r   r   r  r  S  s           # # X#
 
 
 
& & &  0 0 0    r   r  c                 8    t                               d|           S )Nr   )_ansi_resubr   s    r   
strip_ansir+  |  s    <<E"""r   c                     t           rd S t          | t          t          f          r#| j        } t          | t          t          f          #| j        j                            d          S )Nz
ipykernel.)WINr6   r.   r   r/   	__class__rK   
startswithr   s    r   _is_jupyter_kernel_outputr0    sf    
  	
Vl,DE
F
F   Vl,DE
F
F   &11,???r   c                 h    |.| t           j        } t          |            ot          |            S | S r   )r   r}   rH   r0  )r   colors     r   should_strip_ansir3    s;    }>YF&>>!K*CF*K*K&KK9r   O      )r   r   c                  2    dd l } |                                 S r   )localegetpreferredencoding)r7  s    r   _get_argv_encodingr9    s    **,,,r   c                     t           j                                         | r#t                      }|                    |            t                      }|                                                    d          S )Nz
)r   r   r9   _default_text_stdoutr<   _default_text_stdinrW   rstrip)promptr   r}   s      r   	raw_inputr?    sd    J %-//V$$$'))E>>##**6222r   c                 (   	 t                               |           }n# t          $ r d}Y nw xY w||S t          | |          }t	          j        | |          j        }|j        fd}||_        	 |t           | <   n# t          $ r Y nw xY w|S )a  This function wraps a stream so that calls through colorama
            are issued to the win32 console API to recolor on demand.  It
            also ensures to reset the colors if a write call is interrupted
            to not destroy the console afterwards.
            N)stripc                 P    	  |           S #                                     xY wr   )	reset_all)s_writeansi_wrappers    r   _safe_writez'auto_wrap_for_ansi.<locals>._safe_write  s4    !6!99$ **,,,s   
 %)_ansi_stream_wrappersgetr:   r3  coloramaAnsiToWin32r   r<   )r   r2  cachedrA  r+   rG  rE  rF  s         @@r   auto_wrap_for_ansirM    s    .226::   !%fe44E#/eDDDL$BXF      #BH02%f--   Is    ..7
B 
BBc                      t           j                            t           j        j                  j        } | j        | j        z
  | j        | j        z
  fS r   )	rJ  win32GetConsoleScreenBufferInfoSTDOUTsrWindowRightLeftBottomTop)r   s    r   get_winterm_sizerW    sF    .;;%   9sx'cg)===r   c                  T    t          t          j        dd           pt                      S )Nr   )r*   r   r}   r   r   r   r   r9  r9    s"    sy*d33P7N7P7PPr   c                      d S r   r   rf   s    r   rg   rg     s    T r   c                      d S r   r   rf   s    r   rg   rg     s    $ r   c                 :    t          t          |                     S r   )lenr+  rf   s    r   term_lenr]    s    z!}}r   c                 N    	 |                                  S # t          $ r Y dS w xY wr  )rH   r:   r   s    r   rH   rH     s7    }}   uus    
$$c                 6     t                       fd}|S )Nc                                   } 	                      |           }n# t          $ r d }Y nw xY w||S              }	              } || <   n# t          $ r Y nw xY w|S r   )rI  r:   )r   r+   cachesrc_funcwrapper_funcs     r   funcz&_make_cached_stream_func.<locals>.func  s    	6""BB 	 	 	BBB	>I\^^	XZZFE&MM 	 	 	D		s   # 22A 
A! A!r   )rb  rc  rd  ra  s   `` @r   _make_cached_stream_funcre    s:    E        Kr   c                      t           j        S r   )r   r}   r   r   r   rg   rg     s    sy r   c                      t           j        S r   )r   r   r   r   r   rg   rg         
 r   c                      t           j        S r   )r   r   r   r   r   rg   rg     rh  r   )r}   r   r   rI   )NNr&  r   )r   Nr   F)r   )^r#   r0   rp   rer   weakrefr   version_inforM   platformr/  CYGWINversionMSYS2environrI  
APP_ENGINEr-  DEFAULT_COLUMNScompiler)  r   r    r'   r   r1   r   objectr.   unicode	text_typer?  r7   string_typesintlong	int_typesre   xrange
range_typer8   ry   rk   rn   ImportErrorrs   r{   r~   r   r   r   r   r   r   inputranger   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r  r  renamer  rM  rJ  rW  r+  r0  r3  _winconsoler   r   r9  rH  r]  rH   re  r<  r;  _default_text_stderrbinary_streamstext_streamsr   r   r   <module>r     s    				 				 				 



 % % % % % %	qQ		 	 	*	*&&AES[,@ BJ. >RZ^^rF F 4
 
le$$EZEI 2:/00C C C
 DI   "    '% '% '% '% '%r/ '% '% '%T@ @ @ @ @6 @ @ @F  rII>LdI''IJ2 2 2  RZ ;<<N(  
	 	 	 		    
	 	 	 		    4 4 4* * *+ + ++ + +S S S ST T T TT T T T    IIIII6LIJ--L))I= = =   
 
 
 
    O O OU U U? ? ? (
 (
 (
 (
T
 
 
 

 
 
 
      
 
 
 

 
 
 

 
 
 
  
 
 
 
* * *,FJ FJ FJ FJT 72y zHLLyH7L! ! ! ! !& ! ! !H   # # #	@ 	@ 	@     H'OJJJJJJJJ- - -
  3	3 	3 	3 	3*> !2 1 3 3	 	 	 	>	> 	> 	> 	>I    ZQ Q Q #2/&      , /./@/@.QQ //0B0BOTT //0B0BOTT     s6   D" "D*)D*.D6 6D>=D>H( (H0/H0