4V=jI\UddlmZddlZddlmZddlZddlZddlZddl Z ddl Z ddl m Z ddlmZe jdZe jdZdZded<ejd Z dgdhdZdidZdjdZGddejZGddZdkdldZdkdld Zdmd"Z dmd#Z!dnd$Z"dod'Z#dpd(Z$ dgdqd.Z% dkdrd0Z& dkdsd2Z'dtd3Z(dtd4Z)dtd5Z*dudvd6Z+dudvd7Z,dudvd8Z-dwd<Z. dxdydCZ/GdDdEZ0dzdFZ1d{dGZ2 dud|dKZ3e jdr!erdLdMl4m5Z5d}dNZ6eZ7dOedP<d~ddQZnd}dRZ6ddUZ5ddXZ8d{dYZ9dd^Z:e:d_e+Z;e:d`e,Z<e:dae-Z=e(e)e*dbZ>dcedd<e+e,e-dbZ?deedf<dS)) annotationsN) TracebackTypeWeakKeyDictionarycygwinwinz't.Callable[[t.TextIO], t.TextIO] | Noneauto_wrap_for_ansiz\033\[[;?0-9]*[a-zA-Z]Fstream t.BinaryIOencoding str | Noneerrorsforce_readableboolforce_writablereturnt.TextIOcV|t|}|d}t|||d||S)NreplaceT)line_bufferingrr)get_best_encoding_NonClosingTextIOWrapper)r r rrrs ;C:\PYTHON\_runtimes\venv\Lib\site-packages\click/_compat.py_make_text_streamrsJ$V,, ~ #%%    strc` tj|jdkS#t$rYdSwxYw)z$Checks if a given encoding is ascii.asciiF)codecslookupname LookupError)r s ris_ascii_encodingr#(sA}X&&+w66 uus  -- t.IO[t.Any]cpt|ddptj}t|rdS|S)z1Returns the default stream encoding if not found.r Nzutf-8)getattrsysgetdefaultencodingr#)r rvs rrr0s; T * * Fc.D.F.FBw Irc6eZdZ ddfd ZddZddZxZS)rFr r r r rrrrextrat.AnyrNonec tjtjt|||x|_}t j|||fi|dSN)tcastBinaryIO _FixupStream_streamsuper__init__)selfr r rrrr+ __class__s rr6z!_NonClosingTextIOWrapper.__init__9s]!" J V^^LL! !   v 6;;U;;;;;rcR |dS#t$rYdSwxYwr/)detach Exceptionr7s r__del__z _NonClosingTextIOWrapper.__del__Gs:  KKMMMMM    DD s  &&c4|jSr/)r4isattyr<s rr?z_NonClosingTextIOWrapper.isattyMs|""$$$rFF)r r r r rr rrrrr+r,rr-)rr-rr)__name__ __module__ __qualname__r6r=r? __classcell__)r8s@rrr8sr %$ < < < < < < < %%%%%%%%rrcHeZdZdZ dddZdd ZddZddZddZddZ dS)r3aQThe 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 rrrc0||_||_||_dSr/)r4_force_readable_force_writable)r7r rrs rr6z_FixupStream.__init__\s!  --rr!rrr,c,t|j|Sr/)r&r4r7r!s r __getattr__z_FixupStream.__getattr__fst|T***rsizeintbytesct|jdd}|#tjt||S|j|S)Nread1)r&r4r0r1rOread)r7rMfs rrQz_FixupStream.read1isJ DL'4 0 0 =6%4)) )|  &&&rc|jrdSt|jdd}|"tjt |S |jdn#t$rYdSwxYwdS)NTreadablerF)rHr&r4r0r1rrRr;r7xs rrUz_FixupStream.readableqs   4 DL*d 3 3 =6$$$ $  L  a    55 tsA A.-A.c@|jrdSt|jdd}|"tjt |S |jdn>#t$r1 |jdn#t$rYYdSwxYwYnwxYwdS)NTwritablerF)rIr&r4r0r1rwriter;rVs rrYz_FixupStream.writable}s   4 DL*d 3 3 =6$$$ $  L  s # # # #     ""3''''   uuu ('  ts6A B+BB BBBBBct|jdd}|"tjt|S |j|jn#t$rYdSwxYwdS)NseekableFT)r&r4r0r1rseektellr;rVs rr\z_FixupStream.seekables DL*d 3 3 =6$$$ $  L  dl//11 2 2 2 2   55 ts1A.. A<;A<Nr@)r r rrrrr!rrr,)rMrNrrOrA) rBrCrD__doc__r6rLrQrUrYr\rrr3r3Rs %$ .....++++''''        rr3defaultcx t|dtS#t$r|cYSwxYwNr) isinstancerRrOr;r rbs r_is_binary_readerrgsE&++a..%000 s '* 99c |dn;#t$r. |dYdS#t$rYnwxYw|cYSwxYwdS)NrFT)rZr;rfs r_is_binary_writerrjs S   LL   55    D   4s* A; AAAAAt.BinaryIO | Nonect|drtjtj|St |dd}|/t|drtjtj|SdSNFbufferT)rgr0r1r2r&r bufs r_find_binary_readerrqj ''*vaj&))) &(D ) )C ,S$77vaj#&&& 4rct|drtjtj|St |dd}|/t|drtjtj|SdSrm)rjr0r1r2r&ros r_find_binary_writerrtrrrcBtt|ddpdS)z3A stream is misconfigured if its encoding is ASCII.r Nr)r#r&r s r_stream_is_misconfiguredrws# WVZ>>I' J JJrattrvaluec@t||d}||kp|duo|duS)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 rxry stream_values r_is_compat_stream_attrr|s3 64..L 5 PUd]%O|47OPrcFt|d|ot|d|S)zcCheck if a stream's encoding and errors attributes are compatible with the desired values. r r)r|)r r rs 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]c2||dr tjtj|}nTtjtj|}t |||r|t |s|S||}||S|}|d}t |||||S)NFr)rr)r0r1r2TextIOr~rwr) rr rrrrr binary_readerpossible_binary_readers r_force_correct_text_streamrsye$$/qz;77 fQX{33  &k8V D D   !9+!F!F  "-[!9!9 " ) . ~ %%    r text_readerc@t|||tt|S)Nr)rrgrq)rr rrs r_force_correct_text_readerr- &%    r text_writerc@t|||tt|S)Nr)rrjrt)rr rrs r_force_correct_text_writerr,rrcZttj}|td|S)Nz6Was not able to determine binary stream for sys.stdin.)rqr'stdin RuntimeError)readers rget_binary_stdinr<s*  + +F ~STTT MrcZttj}|td|S)Nz7Was not able to determine binary stream for sys.stdout.)rtr'stdoutrwriters rget_binary_stdoutrC*  , ,F ~TUUU MrcZttj}|td|S)Nz7Was not able to determine binary stream for sys.stderr.)rtr'stderrrrs rget_binary_stderrrJrrczttj||}||Sttj||dS)NTr)_get_windows_console_streamr'rrr rr)s rget_text_stdinrQs9 $SY& A AB ~ %ci6RV W W WWrczttj||}||Sttj||dSNTr)rr'rrrs rget_text_stdoutrX9 $SZ6 B BB ~ %cj(FSW X X XXrczttj||}||Sttj||dSr)rr'rrrs rget_text_stderrr_rrfilestr | os.PathLike[str] | intmodecPd|vrt||St||||S)z?Handles not passing ``encoding`` and ``errors`` in binary mode.br r)open)rrr rs r _wrap_io_openrfs4 d{{D$ dXf = = ==rrstrictfilenamestr | os.PathLike[str]atomictuple[t.IO[t.Any], bool]cdv}tj|}tj|dkretfddDr%|rt dfSt ||dfS|rt dfSt||dfS|st|||dfSdvrtd d vrtd d vrtd ddl }ddl } tj |j }n#t$rd}YnwxYwtjtjztjz} |r| t%tddz} tjtj|d|dd} tj| | |dn|} n#t$r} | j |jkshtjdkr]| j |jkrMtj| jr)tj| jtjrYd} ~ d} ~ wwxYw|tj| |t| ||} tA| | tj!|}tEj#tDj$tDj%|dfS)Nr-c3 K|]}|vV dSr/ra).0mrs r zopen_stream..s'22QqDy222222r)warWFrTrzAppending 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.rWz&Use the `overwrite`-parameter instead.rz,Atomic writes only make sense with `w`-mode.rO_BINARYz.__atomic-writel08xint)&osfspathfsdecodeanyrrrrr ValueErrorerrnorandomstatst_modeOSErrorO_RDWRO_CREATO_EXCLr&pathjoindirname randrangerEEXISTr!EACCESisdirraccessW_OKchmod _AtomicFilerealpathr0r1IOAny)rrr rrbinaryrrpermflags tmp_filenamefderSafs ` r open_streamrssD[Fy""H {8## 2222/222 2 2 L 2(**E11"HVDDDeK K  -#%%u, ,x???FF EXtXv>>DD d{{ ,    d{{ABBB $GHHH LLLMMM78,,4  I "RY .E , Z+++w|| GOOH % % =f..w77 = = =   ut|eeNNB    w%,&&4Gu|++GMM!*--,Iaj"'22,    t$$$b$&11A Q bg&6&6x&@&@ A AB 6!$qu+r " "D ((s1/D DD2G IA8IIIcXeZdZddZedd Zddd ZddZd dZd!dZ ddZ dS)"rrSr$rr real_filenamerr-c>||_||_||_d|_dSNF)_f _tmp_filename_real_filenameclosed)r7rSrrs rr6z_AtomicFile.__init__s$)+ rc|jSr/)rr<s rr!z_AtomicFile.names ""rFdeleterc|jrdS|jtj|j|jd|_dS)NT)rrcloserrrr)r7rs rrz_AtomicFile.closesC ;  F   4%t':;;; rr!r,c,t|j|Sr/)r&rrKs rrLz_AtomicFile.__getattr__stw%%%rc|Sr/rar<s r __enter__z_AtomicFile.__enter__s rexc_typetype[BaseException] | None exc_valueBaseException | NonetbTracebackType | Nonec6||dudS)N)r)r)r7rrrs r__exit__z_AtomicFile.__exit__s# ($. /////rc*t|jSr/)reprrr<s r__repr__z_AtomicFile.__repr__sDG}}rN)rSr$rrrrrr-rrF)rrrr-r_)rr)rrrrrrrr-) rBrCrDr6propertyr!rrLrrrrarrrrs ###X#&&&&0000rrc8td|S)Nri)_ansi_resub)rys r strip_ansirs <<E " ""rct|ttfr#|j}t|ttf#|jjdS)Nz ipykernel.)rer3rr4r8rC startswithrvs r_is_jupyter_kernel_outputr sW Vl,DE F F  Vl,DE F F    & 1 1, ? ??rt.IO[t.Any] | Nonecolor bool | Nonec|A| tj}nt|drdSt| ot | S| S)Nr F)r'rhasattrr?r )r r s rshould_strip_ansirsX } >YFF VW % % 5&>>!K*CF*K*K&KK9r)rc2ddl}|Srd)localegetpreferredencoding)rs r_get_argv_encodingrs **,,,rz'cabc.MutableMapping[t.TextIO, t.TextIO]_ansi_stream_wrapperscn t|}n#t$rd}YnwxYw||Sddl}t ||}|||t jt jj }|j d fd }||_ |t|<n#t$rYnwxYw|S) zbSupport ANSI color and style codes on Windows by wrapping a stream with colorama. Nr)stripsrrrNcb |S#t$rwxYwr/) BaseException reset_all)r_write ansi_wrappers r _safe_writez'auto_wrap_for_ansi.._safe_write!sF vayy     &&((( s  .)rrrrN) rgetr;coloramar AnsiToWin32r0r1rr rZ) r r cachedr rr)rrrs @@rr r s *..v66FF   FFF   M!&%00++F%+@@ VAHl1 2 2        ,. !& ) )    D  s .. B%% B21B2c^ttjddptjS)Nr )r&r'rgetfilesystemencodingrarrrr3s$sy*d33Rs7P7R7RRrrSt.TextIO | NonecdSr/ra)rSr rs rrr6s trrWrNc:tt|Sr/)lenr)rWs rterm_lenr)<s z!}}  rcN |S#t$rYdSwxYwr)r?r;rvs rr?r?@s7}} uus  $$src_funct.Callable[[], t.TextIO | None] wrapper_funct.Callable[[], t.TextIO]c8tdfd }|S)Nrr%c}|dS |}n#t$rd}YnwxYw||S} ||<n#t$rYnwxYw|Sr/)rr;)r r)cacher+r-s rfuncz&_make_cached_stream_func..funcMs >4 6""BB   BBB  >I \^^ E&MM    D  s' 66A AA)rr%r)r+r-r2r1s`` @r_make_cached_stream_funcr3GsB6G5H5HE& KrctjSr/)r'rrarrr5cssyrctjSr/)r'rrarrr5r5d rctjSr/)r'rrarrr5r5er7r)rrrz-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 rr rrrrrr)r rrr)r r$rrr)r r$rbrrr)r r$rrk)r rrr)r rrxrryr rr)r rr r rr rr)rr$r r rr rrrrrrrrrr) rr$r r rr rrrr) rr$r r rr rrrr)rr )NN)r r rr rr) rrrrr r rr rr$)rNrF) rrrrr r rr rrrr)ryrrr)r r$rr)r r r r rrrr/)r rr r rr)rSrr r rr rr%)rWrrrN)r+r,r-r.rr,)@ __future__rrcollections.abcabccabciorrer'typingr0typesrweakrefrplatformrCYGWINWINr __annotations__compilerrr#r TextIOWrapperrr3rgrjrqrtrwr|r~rrrrrrrrrrrrrr r _winconsolerrrr)r?r3_default_text_stdin_default_text_stdout_default_text_stderrr9r:rarrrNs]"""""""  %%%%%%   * * le$$>BBBBB 2:/ 0 0! *%%%%%r/%%%4BBBBBBBBJ     $$KKKKQQQQ;;;;"! +++++d!     (!      XXXXXYYYYYYYYYY > > > >! N)N)N)N)N)b!!!!!!!!H####@@@@=A     "<5!!5c5888888---- FWEVEXEXXXXX!!!!!!JSSSS 8/./@/@.QQ//0B0BOTT//0B0BOTTAASS r