a DOg@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'/opt/alt/python39/lib64/python3.9/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_okASCII) r splitexistsmakedirsFileExistsErrorr isinstancebytesr8OSErrorisdir)r moderMheadtailcdirrrrrQs$     rQcCsht|t|\}}|s(t|\}}|rd|rdz t|WntyRYqdYn0t|\}}q(dSr)r@r rOrU)r rXrYrrr removedirss    r[cCslt|\}}|r(|r(t|s(t|t||t|\}}|rh|rhz t|WntyfYn0dSr)r rOrPrQr=r[rU)oldnewrXrYrrrrenamess   r^)rQr[r^TcCs$td||||tt||||S)Nzos.walk)sysaudit_walkfspath)toptopdownonerror followlinksrrrwalks;rgc 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) rCrUnext StopIterationis_dirappendr is_symlinkr islinkjoinra)rcrdrerfdirsnondirs walk_dirs scandir_iterrorentryrj walk_intorlrmrndirnamenew_pathrrrraXs\   $     .  ra.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__Fryr{)r_r`rSinthasattrrbr5r;O_RDONLYstS_ISDIRst_moder samestat_fwalkrTclose)rcrdrerzr{orig_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)r{rz)rzr})rCr rrjrkrUrlzipr5r;rr rrnrr)rtoppathisbytesrdrerzrrrorpentriesrtr rdirfderrdirpathrrrrsV      "  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 rvrr rmaprnFileNotFoundErrorNotADirectoryErrorrU) rrr exec_funcargrest saved_exc path_listr#fullnameelast_excrrrrKs6    rc Csddl}|durt}||dtz|d}WntyNd}Yn0trz |d}WnttfyvYn0|durt d|}|durt |t rt |}Wdn1s0Y|durt }|tS)NrignorePATHsPATHz*env cannot contain 'PATH' and b'PATH' keys)warningsrcatch_warnings simplefilter BytesWarningget TypeErrorsupports_bytes_environKeyError ValueErrorrSrTrr rOr)rrr 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)rr 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__..)rrnritemsrrrr__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|}|||SrrSrNotImplementedrrrrr]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)rSr/rtyperrrrr check_strs z!_createenviron..check_strcs |Sr)upper)r)encoderrrsz!_createenviron..encodekeycs(t|tstdt|j|dS)Nrsurrogateescape)rSr/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)rSrTrrrrrrr _check_bytes s rcCs t||Sr)environbrrrrrgetenvbsr)rrcs4ttfdd}fdd}||fS)Ncs&t|}t|tr|S|SdSr)rbrSr/rfilenamererrorsrrr$s  z_fscodec..fsencodecs&t|}t|tr|S|SdSr)rbrSrTrrrrrr0s  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) rStupler rrrr)rwaitpid WIFSTOPPEDwaitstatus_to_exitcode)rWrrrfuncpidwpidstsrrr _spawnvefMs$  r cCst|||dtSr)r rrWrrrrrrhscCst||||tSr)r rDrWrrrrrrspawnveqsr cCst|||dtSr)r rr rrrspawnvp}sr cCst||||tSr)r rr rrrspawnvpesr)rr r rcGs t|||Sr)rr rrrspawnlsrcGs|d}t|||dd|Sr)r r rrrspawnlesrcGs t|||Sr)r r rrrspawnlpsrcGs|d}t|||dd|Sr)rr rrrspawnlpesrrrcCst|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) rSr/rrr subprocessioPopenPIPE _wrap_close TextIOWrapperrr)cmdrW 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 )r 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) rrrrrr(r+r-rrrrrrs  rcOs:t|tstdt|ddl}|j|g|Ri|S)Nz&invalid fd type (%s, expected integer)r)rSr~rrrr;)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 {}) rSr/rTrr1r"rrrr)r path_type path_reprrrr_fspaths"   r4rbc@s.eZdZejddZeddZeeZ dS)PathLikecCstdSr)NotImplementedErrorrrrrr1,szPathLike.__fspath__cCs|turt|dStS)Nr1)r5rr)clssubclassrrr__subclasshook__1s zPathLike.__subclasshook__N) rrrabcabstractmethodr1 classmethodr9 GenericAlias__class_getitem__rrrrr5(s   r5c@s4eZdZddZddZddZddZd d Zd S) _AddedDllDirectorycCs||_||_||_dSr)r _cookie_remove_dll_directory)rr cookieZremove_dll_directoryrrrr<sz_AddedDllDirectory.__init__cCs||jd|_dSr)rAr@r rrrrr@s z_AddedDllDirectory.closecCs|Srrrrrrr(Csz_AddedDllDirectory.__enter__cGs |dSrr)r*rrrr+Esz_AddedDllDirectory.__exit__cCs|jrd|jSdS)Nzz)r rrrrrrGs z_AddedDllDirectory.__repr__N)rrrrrr(r+rrrrrr?;s r?cCs ddl}||}t|||jS)Nr)r+Z_add_dll_directoryr?rA)r r+rBrrradd_dll_directoryLs  rC)rLF)TNF)rxTN)N)N)N)N)rr)hr:r_r5r_collections_abcrrr r~r=builtin_module_namesZ_namesr!rr%r rr&r)rk ImportError posixpathr r*extendr+ZntpathmodulesZos.pathrrrrr rrr rr,r1setr-supports_dir_fdsupports_effective_idsr. supports_fdsupports_follow_symlinksr rrrQr[r^rgrar;rCrrrrrrrrrrrrrrrrrrrrTrrrrrrrrr rr r rrrrrrrrr4rbrABCr5r?rCrrrrs`        (                                             >R 18    -G