o ?Og@sf ddlZddlZddlZddlmZeeeZ ej Z gdZ ddZ ddZde vrndZd Zdd lTz dd lmZe d Wn eyJYnwddlZzdd lmZWn ey`YnwddlZe ee[nIde vrdZdZdd lTz dd lmZe d Wn eyYnwddlZddlZe ee[zdd lmZWn eyYnwedeejd<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 dIre'dJde'd d!e'dKde'dLde'dde'd3de'dMde)Z.[)[[&['dZ/dNZ0dOZ1ddRdSZ2dTdUZ3dVdWZ4e gdXddZd[Z5d\d]Z6e d[e7ehe*kre8ehe-krddQdd_d`daZ9dbdcZ:e dadddeZ;dfdgZdldmZ?dndoZ@e gdpddqdrZAddsdtZBddulmCZCmDZDGdvdwdweCZEdxdyZFeFZG[Fddzd{ZHedkZIe d|eIrd}d~ZJeEeGjKeJeLeJeLZM[JdddZNe dddZOeO\ZPZQ[Oe dre dse drdZRdNZSZTe gdddZUddZVddZWddZXddZYe gde drddZZddZ[e ddge drddZ\ddZ]e ddgej^dkrdddZ_GdddZ`e ddddZaddZbe dsebZcdec_dGdddejeZfedkr1GdddZgddZhdSdS)N)_check_methods)altsepcurdirpardirseppathseplinesepdefpathnamepathdevnullSEEK_SETSEEK_CURSEEK_ENDfsencodefsdecode get_exec_pathfdopenextsepcCs |tvSN)globals)r r)/opt/alt/python310/lib64/python3.10/os.py_exists) rcCs2zt|jWStyddt|DYSw)NcSsg|] }|ddkr|qS)r_r).0nrrr 0sz%_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|dSdSdSr)_globalsr)_setadd)strfnrrr_addhsr0ZHAVE_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_WINDOWSFcCs t|\}}|st|\}}|r>|r>t|s>zt||dWn ty+Ynwt}t|tr8ttd}||kr>dSzt||WdSt yX|rTt |sUYdSw)N)exist_okASCII) r splitexistsmakedirsFileExistsErrorr isinstancebytesr7OSErrorisdir)r moderLheadtailcdirrrrrPs,     rPcCsz t|t|\}}|st|\}}|r7|r9zt|Wn ty)YdSwt|\}}|r;|sdSdSdSdSr)r?r rNrT)r rWrXrrr removedirss   rZcCsv t|\}}|r|rt|st|t||t|\}}|r7|r9zt|WdSty6YdSwdSdSr)r rNrOrPr<rZrT)oldnewrWrXrrrrenamess  r])rPrZr]TcCs& td||||tt||||S)Nzos.walk)sysaudit_walkfspath)toptopdownonerror followlinksrrrwalks;rfc csg}g}g}zt|}Wnty(}z|dur||WYd}~dSd}~ww| zzt|} Wn ty>YWnlwWn!tya}z|durP||WYd}~WddSd}~wwz| } Wn tysd} Ynw| r}|| jn|| j|s| r|rd} nz| } Wn tyd} Ynw| } | r|| jq-Wdn1swY|r|||fVtj tj } }|D]}|||}|s| |st ||||EdHqdS|D] }t ||||EdHq|||fVdS)NTF) rBrTnext StopIterationis_dirappendr is_symlinkr islinkjoinr`)rbrcrdredirsnondirs walk_dirs scandir_iterrorentryri walk_intorkrlrmdirnamenew_pathrrrr`Ys|          +    r`.follow_symlinksdir_fdccs td|||||t|trt|dst|}|s#t|d|d}t|t|d}z4|s;t |j rQt |t|rXt||t|t|||EdHWt|dSWt|dSWt|dSt|w)Nzos.fwalk __index__Frxrz)r^r_rRinthasattrrar4r:O_RDONLYstS_ISDIRst_moder samestat_fwalkrSclose)rbrcrdryrzorig_sttopfdrrrfwalks(   rc cst|}g}g}|s |rdng} |D]C} | j} |rt| } z| r2|| | dur1| | n|| WqtyVz | rI|| Wn tySYnwYqw|r`||||fV| durf|nt|| D]c} z|s|rzt| |dd} n | \} } | jdd} t | t |d} Wnty}z|dur||WYd}~qkd}~wwz"|st | t| rt || }t| |||||EdHWt| qkt| w|s||||fVdSdS)NF)rzry)ryr|)rBr rrirjrTrkzipr4r:rr rrmrr)rtoppathisbytesrcrdryrqrnroentriesrsr rdirfderrdirpathrrrrsl          rcG t||dSr)execvfileargsrrrexeclrcG" |d}t||dd|dSN)rCrrenvrrrexecle!srcGrr)execvprrrrexeclp)rrcGrr)execvperrrrexeclpe0srcCrr_execvperrrrr9srcCs t|||dSrrrrrrrAr)rrrrrrc Cs|dur t}||f}nt}|f}t}t|r!||g|RdSd}t|}tdkr4t|}tt|}|D]A}t ||}z ||g|RWq6t t fy^} z| } WYd} ~ q6d} ~ wt yw} z| } |durm| }WYd} ~ q6d} ~ ww|dur~|| )Nr*) rCrenvironr rurr rmaprmFileNotFoundErrorNotADirectoryErrorrT) rrr exec_funcargrest saved_exc path_listr"fullnameelast_excrrrrLs<    rc Cs ddl}|dur t}|L|dtz|d}Wn ty(d}YnwtrTz|d}Wn ttfy<Yn w|durEt d|}|durTt |t rTt |}Wdn1s^wY|durit }|tS)NrignorePATHsPATHz*env cannot contain 'PATH' and b'PATH' keys)warningsrcatch_warnings simplefilter BytesWarningget TypeErrorsupports_bytes_environKeyError ValueErrorrRrSrr rNr)rrr path_listbrrrrls:      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__cCs8z |j||}Wn tyt|dw||Sr)rrrrrkeyvaluerrr __getitem__s    z_Environ.__getitem__cCs,||}||}t||||j|<dSr)rrputenvrrrrr __setitem__s   z_Environ.__setitem__cCs:||}t|z|j|=WdStyt|dwr)runsetenvrr)rr encodedkeyrrr __delitem__s   z_Environ.__delitem__ccs&t|j}|D]}||VqdSr)rrr)rkeysrrrr__iter__s  z_Environ.__iter__cC t|jSr)lenrrrrr__len__rz_Environ.__len__cs$ddfddjDS)Nzenviron({{{}}})z, c3s,|]\}}d||VqdS)z {!r}: {!r}N)formatrr)rrrrrr s z$_Environ.__repr__..)rrmritemsrrrr__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__  z_Environ.__or__cCs$t|tstSt|}|||Srrrrrr__ror__rz_Environ.__ror__N)__name__ __module__ __qualname__rrrrrrrrrrrrrrrrrs  rcstdkr$dd}|t}fdd}i}tD] \}}||||<qntfddfdd }}t}t||||S) Nr*cS t|tstdt|j|S)Nstr expected, not %s)rRr.rtyperrrrr check_str z!_createenviron..check_strcs |Sr)upper)r)encoderrr z!_createenviron..encodekeycs(t|tstdt|j|dS)Nrsurrogateescape)rRr.rrrrrencodingrrrs  z_createenviron..encodecs |dS)Nr)decoderrrrrrz_createenviron..decode)r r.rrr^getfilesystemencodingr)rrrrrrr)rrr_createenvirons$   rcC t||Sr)rrrdefaultrrrgetenv r)rrcCr)Nzbytes expected, not %s)rRrSrrrrrrr _check_bytesrrcCrr)environbrrrrrgetenvbrr)rrcs4ttfdd}fdd}||fS)Nc$ t|}t|tr|S|Sr)rarRr.rfilenamererrorsrrr%   z_fscodec..fsencodecrr)rarRrSrrrrrr1rz_fscodec..fsdecode)r^rgetfilesystemencodeerrors)rrrrr_fscodec!s   rforkspawnvr)P_WAITP_NOWAIT P_NOWAITOcCst|ttfs td|r|dstdt}|s;z|dur%|||n ||||WdSWdStdYdS|tkrA|S t|d\}}t |rNqAt |S)Nzargv must be a tuple or a listrz"argv first element cannot be empty) rRtuplerrrrr(r waitpid WIFSTOPPEDwaitstatus_to_exitcode)rVrrrfuncpidwpidstsrrr _spawnvefNs(  rcC t|||dtSr)rrrVrrrrrrircC t||||tSr)rrCrVrrrrrrspawnverrcCrr)rrrrrrspawnvp~rrcCrr)rrrrrrspawnvperr)rrrrcG t|||Sr)rrrrrspawnls rcG |d}t|||dd|Sr)rrrrrspawnler!cGrr)rrrrrspawnlps r#cGr r)rrrrrspawnlper"r$vxworksrrcCst|ts tdt||dvrtd||dks|dur#tdddl}ddl}|dkr@|j|dd|j|d}t |j |S|j|dd|j|d }t |j |S) Nz&invalid cmd type (%s, expected string))r&wzinvalid mode %rrz+popen() does not support unbuffered streamsr&T)shelltextstdoutbufsize)r(r)stdinr+) rRr.rrr subprocessioPopenPIPE _wrap_closer*r,)cmdrV bufferingr-r.procrrrpopens(    r5c@s<eZdZddZddZddZddZd d Zd d Zd S)r1cCs||_||_dSr)_stream_proc)rstreamr4rrrrs z_wrap_close.__init__cCs4|j|j}|dkrdStdkr|S|d>S)Nrr*)r6rr7waitr )r returncoderrrrs  z_wrap_close.closecC|Srrrrrr __enter__z_wrap_close.__enter__cG |dSrrrrrrr__exit__rz_wrap_close.__exit__cCs t|j|Sr)getattrr6)rr rrr __getattr__rz_wrap_close.__getattr__cCrr)iterr6rrrrrrz_wrap_close.__iter__N) rrrrrr=rBrDrrrrrr1s  r1cOsRt|ts tdt|ddl}d|vr||}|j||||g|Ri|S)Nz&invalid fd type (%s, expected integer)rb)rRr}rrr. text_encodingr:)fdrVr3rrkwargsr.rrrrs  rcCs~ t|ttfr |St|}z||}Wnty)t|dr"td|jwt|ttfr3|Std |jt|j)N __fspath__z/expected str, bytes or os.PathLike object, not z7expected {}.__fspath__() to return str or bytes, not {}) rRr.rSrrJr!r~rrr)r path_type path_reprrrr_fspath s(  rMrac@s0eZdZ ejddZeddZeeZ dS)PathLikecCs tr)NotImplementedErrorrrrrrJ3szPathLike.__fspath__cCs|tur t|dStS)NrJ)rNrr)clssubclassrrr__subclasshook__8s zPathLike.__subclasshook__N) rrrabcabstractmethodrJ classmethodrR GenericAlias__class_getitem__rrrrrN/s   rNc@s4eZdZddZddZddZddZd d Zd S) _AddedDllDirectorycCs||_||_||_dSr)r _cookie_remove_dll_directory)rr cookieZremove_dll_directoryrrrrCs z_AddedDllDirectory.__init__cCs||jd|_dSr)rZrYr rrrrrGs  z_AddedDllDirectory.closecCr<rrrrrrr=Jr>z_AddedDllDirectory.__enter__cGr?rr@rArrrrBLrz_AddedDllDirectory.__exit__cCs|jr d|jSdS)Nzz)r rrrrrrNs z_AddedDllDirectory.__repr__N)rrrrrr=rBrrrrrrXBs  rXcCs" ddl}||}t|||jS)Nr)r*Z_add_dll_directoryrXrZ)r r*r[rrradd_dll_directorySs r\)rKF)TNF)rwTNr)r&r)r&rN)irSr^r4r_collections_abcrrrr}rVbuiltin_module_namesZ_namesr rr$r rr%r(rj ImportError posixpathr r)extendr*ZntpathmodulesZos.pathrrrrr rrr rr+r0setr,supports_dir_fdsupports_effective_idsr- supports_fdsupports_follow_symlinksr rrrPrZr]rfr`r:rBrrrrrrrrrrrrrrrrrrrrSrrrrrr r r rrrrrrr!r#r$platformr5r1rrMrarABCrNrXr\rrrrsr         (                                              ? R1 8   -G