a `@sPddlZddlZddlZddlmZeeeZ ej Z gdZ ddZ ddZde vrdZd Zdd lTzdd lmZe d WneyYn0ddlZzdd lmZWneyYn0ddlZe ee[nde vrldZdZdd lTzdd lmZe d Wney"Yn0ddlZddlZe ee[zdd lmZWneyhYn0nedeejd<ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$[ e dre%Z&ddZ'e(Z)e'dde'dde'dde'dde'dde'd d!e'd"d#e'd$d%e'd&d'e'd(d)e'd*d+e'd,d-e'd.d/e'd0d1e'd0d2e'd3de)Z*e(Z)e'dde)Z+e(Z)e'd4d5e'd6de'd7de'd8d9e'd8d:e'd;d<e),ee'd=d>e'd?de'd@de'dAdBe dCre dDre'dEdCe)Z-e(Z)e'dde'dde'dde'dFdGe'dHde dIr`e'dJde'd d!e'dKde'dLde'dde'd3de'dMde)Z.[)[[&['dZ/dNZ0dOZ1ddRdSZ2dTdUZ3dVdWZ4e gdXddZd[Z5d\d]Z6e d[e7ehe*kr8e8ehe-kr8ddQdd_d`daZ9dbdcZ:e dadddeZ;dfdgZdldmZ?dndoZ@e gdpddqdrZAddsdtZBddulmCZCmDZDGdvdwdweCZEdxdyZFeFZG[Fddzd{ZHedkZIe d|eIr d}d~ZJeEeGjKeJeLeJeLZM[JdddZNe dddZOeO\ZPZQ[Oe dre dse drdZRdNZSZTe gdddZUddZVddZWddZXddZYe gde drddZZddZ[e ddge drddZ\ddZ]e ddgdddZ^GdddZ_ddZ`ddZae dseaZbdeb_cGdddejdZeedkrLGdddZfddZgdS)N)_check_methods)altsepcurdirpardirseppathseplinesepdefpathnamepathdevnullSEEK_SETSEEK_CURSEEK_ENDfsencodefsdecode get_exec_pathfdopenpopenextsepcCs |tvSN)globals)r r%/usr/local/src/Python-3.9.6/Lib/os.py_exists)srcCs6z t|jWSty0ddt|DYS0dS)NcSsg|]}|ddkr|qS)r_r).0nrrr 0z%_get_exports_list..)list__all__AttributeErrordir)modulerrr_get_exports_list,s  r%posix )*)_exitr))_have_functionsntz zno os specific module foundzos.path)rrrrr rrr r*cCs"|tvr|tvrtt|dSr)_globalsr*_setadd)strfnrrr_addhsr1ZHAVE_FACCESSATaccessZ HAVE_FCHMODATchmodZ HAVE_FCHOWNATchownZ HAVE_FSTATATstatZHAVE_FUTIMESATutimeZ HAVE_LINKATlinkZ HAVE_MKDIRATmkdirZ HAVE_MKFIFOATmkfifoZ HAVE_MKNODATmknodZ HAVE_OPENATopenZHAVE_READLINKATreadlinkZ HAVE_RENAMEATrenameZHAVE_SYMLINKATsymlinkZ HAVE_UNLINKATunlinkrmdirZHAVE_UTIMENSATZ HAVE_FCHDIRchdirZ HAVE_FCHMODZ HAVE_FCHOWNZHAVE_FDOPENDIRlistdirscandirZ HAVE_FEXECVEexecveZHAVE_FTRUNCATEtruncateZ HAVE_FUTIMENSZ HAVE_FUTIMESZHAVE_FPATHCONFpathconfstatvfsfstatvfsZ HAVE_FSTATVFSZ HAVE_LCHFLAGSZchflagsZ HAVE_LCHMODlchownZ HAVE_LCHOWNZ HAVE_LUTIMESZ HAVE_LSTATZ MS_WINDOWSFcCst|\}}|s t|\}}|rz|rzt|szzt||dWntyTYn0t}t|trnttd}||krzdSzt||Wn"t y|rt |sYn0dS)N)exist_okZASCII) r splitexistsmakedirsFileExistsErrorr isinstancebytesr8OSErrorisdir)r moderMheadtailZcdirrrrrPs$     rPcCsht|t|\}}|s(t|\}}|rd|rdz t|WntyRYqdYn0t|\}}q(dSr)r@r rNrT)r rWrXrrr removedirss    rYcCslt|\}}|r(|r(t|s(t|t||t|\}}|rh|rhz t|WntyfYn0dSr)r rNrOrPr=rYrT)oldnewrWrXrrrrenamess   r\)rPrYr\TcCs$td||||tt||||S)Nzos.walk)sysaudit_walkfspath)toptopdownonerror followlinksrrrwalks;rec cs g}g}g}z t|}Wn6tyN}z|dur8||WYd}~dSd}~00|z,z t|} WntyYWq`Yn0WnBty}z*|dur||WYd}~WddSd}~00z | } Wntyd} Yn0| r|| jn || j|sX| rX|r"d} n,z | } WntyFd} Yn0| } | rX|| jqXWdn1sv0Y|r|||fVtj tj } }|D]4}|||}|s| |st ||||EdHqn,|D]}t ||||EdHq|||fVdS)NFT) rCrTnext StopIterationis_dirappendr is_symlinkr islinkjoinr_)rarbrcrddirsnondirsZ walk_dirs scandir_iterrorentryrhZ walk_intorjrkrldirnameZnew_pathrrrr_Xs\   $     .  r_.follow_symlinksdir_fdccstd|||||t|tr(t|ds0t|}|sBt|d|d}t|t|d}zJ|srt |j rt |t|rt||t|t|||EdHWt|n t|0dS)Nzos.fwalk __index__Frtrv)r]r^rRinthasattrr`r5r;O_RDONLYstZS_ISDIRst_moder samestat_fwalkrSclose)rarbrcrurvorig_sttopfdrrrfwalks! rc cst|}g}g}|s|rdng} |D]} | j} |r:t| } z4| rb|| | durl| | n || Wq$tyz| r|| WntyYn0Yq$0q$|r||||fV| dur|nt|| D]} z@|s |rt| |dd} n| \} } | jdd} t | t |d} WnDty^}z*|dur>||WYd}~qWYd}~n d}~00zH|szt | t| rt || }t| |||||EdHWt| qt| 0q|s||||fVdS)NF)rvru)rurx)rCr rrhrirTrjzipr5r;r{r r~rlrr)rZtoppathZisbytesrbrcrurormrnZentriesrqr rZdirfderrdirpathrrrrsV      "  rcGst||dSr)execvfileargsrrrexeclsrcGs |d}t||dd|dSN)rDrrenvrrrexecle srcGst||dSr)execvprrrrexeclp(srcGs |d}t||dd|dSr)execvperrrrexeclpe/srcCst||dSr_execvperrrrr8srcCst|||dSrrrrrrr@sr)rrrrrrc Cs|durt}||f}nt}|f}t}t|rB||g|RdSd}t|}tdkrht|}tt|}|D]}t ||}z||g|RWqlt t fy} z| } WYd} ~ qld} ~ 0t y} z| } |dur| }WYd} ~ qld} ~ 00ql|dur|| dS)Nr+) rDrenvironr rrrr rmaprlFileNotFoundErrorNotADirectoryErrorrT) rrrZ exec_funcZargrestZ saved_exc path_listr#fullnameeZlast_excrrrrKs6    rc Csddl}|durt}||dtz|d}WntyNd}Yn0trz |d}WnttfyvYn0|durt d|}|durt |t rt |}Wdn1s0Y|durt }|tS)NrignoreZPATHsPATHz*env cannot contain 'PATH' and b'PATH' keys)warningsrcatch_warnings simplefilter BytesWarningget TypeErrorsupports_bytes_environKeyError ValueErrorrRrSrr rNr)rrrZ path_listbrrrrks0      &r)MutableMappingMappingc@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)_EnvironcCs"||_||_||_||_||_dSr) encodekey decodekey encodevalue decodevalue_data)selfdatarrrrrrr__init__s z_Environ.__init__cCs<z|j||}Wnty0t|dYn0||Sr)rrrrrkeyvaluerrr __getitem__s  z_Environ.__getitem__cCs,||}||}t||||j|<dSr)rrputenvrrrrr __setitem__s   z_Environ.__setitem__cCs@||}t|z |j|=Wnty:t|dYn0dSr)runsetenvrr)rrZ encodedkeyrrr __delitem__s    z_Environ.__delitem__ccs$t|j}|D]}||VqdSr)r rr)rkeysrrrr__iter__s z_Environ.__iter__cCs t|jSr)lenrrrrr__len__sz_Environ.__len__cs$ddfddjDS)Nzenviron({{{}}})z, c3s*|]"\}}d||VqdS)z {!r}: {!r}N)formatrr)rrrrrr sz$_Environ.__repr__..)rrlritemsrrrr__repr__s  z_Environ.__repr__cCst|Sr)dictrrrrcopysz _Environ.copycCs||vr|||<||Srrrrrr setdefaultsz_Environ.setdefaultcCs|||Sr)update)rotherrrr__ior__s z_Environ.__ior__cCs$t|tstSt|}|||SrrRrNotImplementedrrrrr[rrr__or__s   z_Environ.__or__cCs$t|tstSt|}|||Srrrrrr__ror__s   z_Environ.__ror__N)__name__ __module__ __qualname__rrrrrrrrrrrrrrrrrs rcstdkrHdd}|t}fdd}i}tD]\}}||||<q0n(tfddfdd }}t}t||||S) Nr+cSs t|tstdt|j|S)Nstr expected, not %s)rRr/rtyperrrrr check_strs z!_createenviron..check_strcs |Sr)upper)r)encoderrrsz!_createenviron..encodekeycs(t|tstdt|j|dS)Nrsurrogateescape)rRr/rrrrrencodingrrrs z_createenviron..encodecs |dS)Nr)decoderrrrrsz_createenviron..decode)r r/rrr]getfilesystemencodingr)rrrrrrr)rrr_createenvirons"   rcCs t||Sr)rrrdefaultrrrgetenvsr)rrcCs t|tstdt|j|S)Nzbytes expected, not %s)rRrSrrrrrrr _check_bytes s rcCs t||Sr)environbrrrrrgetenvbsr)rrcs4ttfdd}fdd}||fS)Ncs&t|}t|tr|S|SdSr)r`rRr/rfilenamererrorsrrr$s  z_fscodec..fsencodecs&t|}t|tr|S|SdSr)r`rRrSrrrrrr0s  z_fscodec..fsdecode)r]rgetfilesystemencodeerrors)rrrrr_fscodec s   rforkspawnvr)P_WAITP_NOWAIT P_NOWAITOcCst|ttfstd|r"|ds*tdt}|spz$|durJ|||n ||||WqtdYq0n,|tkr||St|d\}}t |rq|t |SdS)Nzargv must be a tuple or a listrz"argv first element cannot be empty) rRtupler rrrr)rwaitpid WIFSTOPPEDwaitstatus_to_exitcode)rVrrrfuncZpidZwpidZstsrrr _spawnvefMs$  rcCst|||dtSr)rrrVrrrrrrhscCst||||tSr)rrDrVrrrrrrspawnveqsrcCst|||dtSr)rrrrrrspawnvp}srcCst||||tSr)rrrrrrspawnvpesr)rrrrcGs t|||Sr)rrrrrspawnlsrcGs|d}t|||dd|Sr)rrrrrspawnlesrcGs t|||Sr)rrrrrspawnlpsrcGs|d}t|||dd|Sr)rrrrrspawnlpesrrrcCst|tstdt||dvr.td||dks>|durFtdddl}ddl}|dkr|j|d|j|d}t | |j |S|j|d|j|d }t | |j |SdS) Nz&invalid cmd type (%s, expected string))rwzinvalid mode %rrz+popen() does not support unbuffered streamsrT)shellstdoutbufsize)rstdinr) rRr/rrr subprocessioZPopenZPIPE _wrap_close TextIOWrapperrr)ZcmdrV bufferingrrprocrrrrs(  rc@s<eZdZddZddZddZddZd d Zd d Zd S)rcCs||_||_dSr)_stream_proc)rstreamr rrrrsz_wrap_close.__init__cCs8|j|j}|dkr dStdkr,|S|d>SdS)Nrr+)r rr waitr )rZ returncoderrrrs  z_wrap_close.closecCs|Srrrrrr __enter__sz_wrap_close.__enter__cGs |dSrrrrrrr__exit__sz_wrap_close.__exit__cCs t|j|Sr)getattrr )rr rrr __getattr__sz_wrap_close.__getattr__cCs t|jSr)iterr rrrrrsz_wrap_close.__iter__N) rrrrrrrrrrrrrrs  rcOs:t|tstdt|ddl}|j|g|Ri|S)Nz&invalid fd type (%s, expected integer)r)rRryrrrr;)fdrkwargsrrrrrs rcCst|ttfr|St|}z||}Wn.tyVt|drDntd|jYn0t|ttfrj|Std |jt|jdS)N __fspath__z/expected str, bytes or os.PathLike object, not z7expected {}.__fspath__() to return str or bytes, not {}) rRr/rSrrr"rzrrr)r Z path_typeZ path_reprrrr_fspaths"   rr`c@s.eZdZejddZeddZeeZ dS)PathLikecCstdSr)NotImplementedErrorrrrrr,szPathLike.__fspath__cCs|turt|dStS)Nr)rrr)clssubclassrrr__subclasshook__1s zPathLike.__subclasshook__N) rrrabcabstractmethodr classmethodr GenericAlias__class_getitem__rrrrr(s   rc@s4eZdZddZddZddZddZd d Zd S) _AddedDllDirectorycCs||_||_||_dSr)r _cookie_remove_dll_directory)rr cookieZremove_dll_directoryrrrr<sz_AddedDllDirectory.__init__cCs||jd|_dSr)r'r&r rrrrr@s z_AddedDllDirectory.closecCs|SrrrrrrrCsz_AddedDllDirectory.__enter__cGs |dSrrrrrrrEsz_AddedDllDirectory.__exit__cCs|jrd|jSdS)Nzz)r rrrrrrGs z_AddedDllDirectory.__repr__N)rrrrrrrrrrrrr%;s r%cCs ddl}||}t|||jS)Nr)r+Z_add_dll_directoryr%r')r r+r(rrradd_dll_directoryLs  r))rLF)TNF)rsTN)N)N)N)N)rr)hr r]r5r|Z_collections_abcrrr ryr#builtin_module_namesZ_namesr!rr%r rr&r)ri ImportErrorZ posixpathr r*extendr+ZntpathmodulesZos.pathrrrrr rrr rr,r1setr-Zsupports_dir_fdZsupports_effective_idsr.Z supports_fdZsupports_follow_symlinksr rrrPrYr\rer_r;rCrrrrrrrrrrrrrrrrrrrrSrrrrrrrrrrrrrrrrrrrrrr`rABCrr%r)rrrrs`        (                                             >R 18    -G