
    
jbzI                     d   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          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        ej        ej        gej        f                  ed
<    ej        d          ZdefdZ	 	 dUdej        dej        e         dej        e         dededej        fdZdedefdZdej        defdZ  G d dej!                  Z" G d d          Z#dVdej        dedefdZ$dVdej        dedefdZ%dej        dej        ej                 fdZ&dej        dej        ej                 fdZ'dej        defd Z(dej        d!ed"ej        e         defd#Z)dej        dej        e         dej        e         defd$Z*	 	 dUd%ej        dej        e         dej        e         d&ej        ej        egef         d'ej        ej        gej        ej                 f         dededej        fd(Z+	 dVd)ej        dej        e         dej        e         dedej        f
d*Z,	 dVd+ej        dej        e         dej        e         dedej        f
d,Z-dej        fd-Z.dej        fd.Z/dej        fd/Z0	 dWdej        e         dej        e         dej        fd0Z1	 dWdej        e         dej        e         dej        fd1Z2	 dWdej        e         dej        e         dej        fd2Z3d3ej4        eej5        e6f         d4edej        e         dej        e         dej        f
d5Z7	 	 	 	 dXd8ed4edej        e         dej        e         d9edej8        ej        ef         fd:Z9 G d; d<          Z:d"edefd=Z;dej        defd>Z<	 dWdej        ej                 d?ej        e         defd@Z=ej	        
                    d          rVerTdAdBl>m?Z? defdCZ@ e            ZAejB        ej        ej        f         edD<   	 dYdej        d?ej        e         dej        fdEZn=defdFZ@dGej        dej        e         dej        e         dej        ej                 fdHZ?dIede6fdJZCdej        defdKZDdLej        g ej        f         dMej        g ej        f         dej        g ej        f         fdNZE eEdO e1          ZF eEdP e2          ZG eEdQ e3          ZHe.e/e0dRZIejJ        eej        g ej        f         f         edS<   e1e2e3dRZKejJ        eej        ej        e         ej        e         gej        f         f         edT<   dS )Z    N)WeakKeyDictionarycygwinwinGCCAPPENGINE_RUNTIMEzDevelopment/SERVER_SOFTWARE auto_wrap_for_ansiz\033\[[;?0-9]*[a-zA-Z]returnc                  N    t          j                    pt          j                    S N)sysgetfilesystemencodinggetdefaultencoding     //usr/lib/python3/dist-packages/click/_compat.pyget_filesystem_encodingr      s    $&&B#*@*B*BBr   Fstreamencodingerrorsforce_readableforce_writablec                 V    |t          |           }|d}t          | ||d||          S )NreplaceT)line_bufferingr   r   )get_best_encoding_NonClosingTextIOWrapper)r   r   r   r   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   Nzutf-8)getattrr   r   r&   )r   rvs     r   r   r   5   s;    	T	*	*	Fc.D.F.FB wIr   c                        e Zd Z	 	 ddej        dej        e         dej        e         dededej        dd	f fd
Z	ddZ
defdZ xZS )r   Fr   r   r   r   r   extrar   Nc                     t          j        t           j        t          |||                    x| _        } t                      j        |||fi | d S r   )tcastBinaryIO_FixupStream_streamsuper__init__)selfr   r   r   r   r   r+   	__class__s          r   r3   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r   )detach	Exceptionr4   s    r   __del__z _NonClosingTextIOWrapper.__del__L   s:    	KKMMMMM 	 	 	DD	s    
&&c                 4    | j                                         S r   )r1   isattyr9   s    r   r<   z_NonClosingTextIOWrapper.isattyR   s    |""$$$r   FF)r   N)__name__
__module____qualname__r-   r/   OptionalstrboolAnyr3   r:   r<   __classcell__)r5   s   @r   r   r   =   s          %$< <
< *S/< 
3	<
 < < < 
< < < < < <   % % % % % % % % %r   r   c                       e Zd ZdZ	 	 ddej        dedefdZdedej	        fd	Z
d
edefdZdefdZdefdZdefdZdS )r0   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   c                 0    || _         || _        || _        d S r   )r1   _force_readable_force_writable)r4   r   r   r   s       r   r3   z_FixupStream.__init__a   s!     --r   r$   r   c                 ,    t          | j        |          S r   )r(   r1   r4   r$   s     r   __getattr__z_FixupStream.__getattr__k   s    t|T***r   sizec                     t          | j        dd           }|#t          j        t           ||                    S | j                            |          S )Nread1)r(   r1   r-   r.   bytesread)r4   rM   fs      r   rO   z_FixupStream.read1n   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)rH   r(   r1   r-   r.   rC   rQ   r8   r4   xs     r   rT   z_FixupStream.readablev   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	   r   F)rI   r(   r1   r-   r.   rC   writer8   rU   s     r   rX   z_FixupStream.writable   s     	4DL*d33=6$$$$	Lr"""" 	 	 	""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(   r1   r-   r.   rC   seektellr8   rU   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<Nr=   )r>   r?   r@   __doc__r-   r/   rC   r3   rB   rD   rL   intrP   rO   rT   rX   r[   r   r   r   r0   r0   W   s           %$	. .
. . 	. . . .+ + + + + +'# '% ' ' ' '
$ 
 
 
 
$    $      r   r0   defaultc                 x    	 t          |                     d          t                    S # t          $ r |cY S w xY wNr   )
isinstancerQ   rP   r8   r   r`   s     r   _is_binary_readerre      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   r	   FT)rY   r8   rd   s     r   _is_binary_writerrg      s    S   	LL55 	 	 	D	 4s*    
A;
AAAAAc                     t          | d          rt          j        t          j        |           S t	          | dd           }|/t          |d          rt          j        t          j        |          S d S NFbufferT)re   r-   r.   r/   r(   r   bufs     r   _find_binary_readerrm      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 ri   )rg   r-   r.   r/   r(   rk   s     r   _find_binary_writerrp      rn   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_misconfiguredrs      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   rt   ru   stream_values       r   _is_compat_stream_attrrx      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   )rx   )r   r   r   s      r   _is_compatible_text_streamrz      s1     "
H  ;
 6
:
:;r   text_stream	is_binaryfind_binaryc                 2    || d          r t          j        t           j        |           }nTt          j        t           j        |           } t	          | ||          r|t          |           s| S  ||           }|| S |}|d}t          |||||          S )NFr   )r   r   )r-   r.   r/   TextIOrz   rs   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   re   rm   )r   r   r   r   s       r   _force_correct_text_readerr   !  -     &%   r   text_writerc                 @    t          | ||t          t          |          S )Nr   )r   rg   rp   )r   r   r   r   s       r   _force_correct_text_writerr   1  r   r   c                  Z    t          t          j                  } | t          d          | S )Nz6Was not able to determine binary stream for sys.stdin.)rm   r   stdinRuntimeError)readers    r   get_binary_stdinr   A  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.)rp   r   stdoutr   writers    r   get_binary_stdoutr   H  *     ,,F~TUUUMr   c                  Z    t          t          j                  } | t          d          | S )Nz7Was not able to determine binary stream for sys.stderr.)rp   r   stderrr   r   s    r   get_binary_stderrr   O  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   V  s;     
%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   _  ;     
%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   h  r   r   file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   q  s4     d{{D$dXf====r   rstrictfilenameatomicc                    dv }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          |||          }t?          ||
t           j                             |                     }tC          j"        tB          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arV   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.rV   z&Use the `overwrite`-parameter instead.r   z,Atomic writes only make sense with `w`-mode.r   O_BINARYz.__atomic-writel        08xi  nt)$os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)r   r   r   r   r   binaryr   r   permflagstmp_filenamefderR   afs    `             r   open_streamr   ~  s    D[F 
{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 " 1 1 9    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!$T!!s1   C5 5DDF9 9
IA8I IIc                       e Zd Zdej        dededdfdZedefd            Zdd	e	ddfd
Z
dedej        fdZddZd ZdefdZdS )r   rR   r   real_filenamer   Nc                 >    || _         || _        || _        d| _        d S NF)_f_tmp_filename_real_filenameclosed)r4   rR   r   r   s       r   r3   z_AtomicFile.__init__  s$    )+r   c                     | j         S r   )r   r9   s    r   r$   z_AtomicFile.name  s    ""r   Fdeletec                     | j         rd S | j                                         t          j        | j        | j                   d| _         d S )NT)r   r   closer   r   r   r   )r4   r   s     r   r   z_AtomicFile.close  sC    ; 	F

4%t':;;;r   r$   c                 ,    t          | j        |          S r   )r(   r   rK   s     r   rL   z_AtomicFile.__getattr__  s    tw%%%r   c                     | S r   r   r9   s    r   	__enter__z_AtomicFile.__enter__  s    r   c                 6    |                      |d u           d S )N)r   )r   )r4   exc_type	exc_valuetbs       r   __exit__z_AtomicFile.__exit__  s!    

($.
/////r   c                 *    t          | j                  S r   )reprr   r9   s    r   __repr__z_AtomicFile.__repr__  s    DG}}r   F)r   r   )r>   r?   r@   r-   r   rB   r3   propertyr$   rC   r   rD   rL   r   r   r   r   r   r   r   r     s        !$ c # $     #c # # # X# D T    & & & & & &   0 0 0#      r   r   c                 8    t                               d|           S )Nr	   )_ansi_resub)ru   s    r   
strip_ansir     s    <<E"""r   c                     t          | t          t          f          r#| j        } t          | t          t          f          #| j        j                            d          S )Nz
ipykernel.)rc   r0   r   r1   r5   r?   
startswithrr   s    r   _is_jupyter_kernel_outputr     sW    
Vl,DE
F
F   Vl,DE
F
F   &11,???r   colorc                 h    |.| t           j        } t          |            ot          |            S | S r   )r   r   r<   r   )r   r   s     r   should_strip_ansir     s=     }>YF&>>!K*CF*K*K&KK9r      )r   c                  2    dd l } |                                 S rb   )localegetpreferredencoding)r   s    r   _get_argv_encodingr    s    **,,,r   _ansi_stream_wrappersc                 l   	 t                               |           }n# t          $ r d}Y nw xY w||S ddl}t	          | |          }|                    | |          t          j        t          j        j	                  }|j
        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   )stripc                 b    	  |           S # t           $ r                                   w xY wr   )BaseException	reset_all)s_writeansi_wrappers    r   _safe_writez'auto_wrap_for_ansi.<locals>._safe_write$  sF    vayy     &&(((s   
  .)r  getr8   coloramar   AnsiToWin32r-   r.   r   r   rY   )	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$ $
B10B1c                  T    t          t          j        dd           pt                      S )Nr   )r(   r   r   r   r   r   r   r  r  6  s"    sy*d33P7N7P7PPr   rR   c                     d S r   r   )rR   r   r   s      r   r   r   9  s	     tr   rV   c                 :    t          t          |                     S r   )lenr   )rV   s    r   term_lenr  ?  s    z!}}r   c                 N    	 |                                  S # t          $ r Y dS w xY wr   )r<   r8   rr   s    r   r<   r<   C  s7    }}   uus    
$$src_funcwrapper_funcc                 P     t                      dt          j        f fd}|S )Nr   c                                   } 	                      |           }n# t          $ r d }Y nw xY w||S              }	 || <   n# t          $ r Y nw xY w|S r   )r  r8   )r   r)   cacher  r  s     r   funcz&_make_cached_stream_func.<locals>.funcO  s    	6""BB 	 	 	BBB	>I\^^	E&MM 	 	 	D		s   # 22A
 

AA)r   r-   r   )r  r  r  r  s   `` @r   _make_cached_stream_funcr  J  sK     3D2E2EE!(         Kr   c                      t           j        S r   )r   r   r   r   r   <lambda>r  a  s    sy r   c                      t           j        S r   )r   r   r   r   r   r  r  b      
 r   c                      t           j        S r   )r   r   r   r   r   r  r  c  r!  r   )r   r   r   binary_streamstext_streamsr=   r   )NN)r   Nr   Fr   )Lr"   ior   rer   typingr-   weakrefr   platformr   CYGWINversionMSYS2environr  
APP_ENGINEWINr
   rA   Callabler   __annotations__compiler   rB   r   r/   rC   r   r&   r   r   TextIOWrapperr   r0   re   rg   rm   rp   rs   rx   rz   r   r   r   r   r   r   r   r   r   UnionPathLiker_   r   Tupler   r   r   r   r   _winconsoler   r  r  MutableMappingr  r<   r  _default_text_stdin_default_text_stdout_default_text_stderrr#  Mappingr$  r   r   r   <module>r=     s
    				 				 				 



     % % % % % %		 	 	*	*&&AES[,@ BJ. >RZ^^rF F 4
 
le$$EZEICG AJqz18*ah*>?@ G G G2:/00C C C C C !  Jjo JsO 	
  X   *     ad s    % % % % %r/ % % %4B B B B B B B BJ ad T d    
 
ad 
T 
d 
 
 
 
 AJ)?    $ AJ)?    $KQX K$ K K K KQ18 Q3 Qqz# QSW Q Q Q Q;H; !
3;9:C;	; ; ; ;" ! + ++jo+ JsO+ z14,,-	+
 QTFAJqz$::;+ + + X+ + + +d !	 jo JsO 	
 X   ( !	 jo JsO 	
 X    !*    1:    1:     AEX XjoX./joXXX X X X AEY YjoY./joYXY Y Y Y AEY YjoY./joYXY Y Y Y
>
'#r{C'
(
>

> jo
> JsO	
>
 T
> 
> 
> 
>  $&M" M"M"
M" joM" JsO	M"
 M" WQT4ZM" M" M" M"`       >#c #c # # # #@ad @t @ @ @ @ @D Jqt,-Jt,<	    <5!! 7c 7888888- - - - -
 CTBSBUBU1+AHah,>?UUU 59# ##!"D!1#	
# # # # #NQ Q Q Q Q8 z#89
3	
AH	        14 D    jQX&67jQX6NZAH   . /./@/@.QQ //0B0BOTT //0B0BOTT  > >	#qz"aj.99:      aiQZ_ajo6@	AA     r   