]0@s ddlZddlZddlZejZdddddddd d d d d dddddddgZddZddZdekr6dZ dZ ddl Ty!ddl m Z ej dWnek rYnXddlZyddl mZWnek rYnXddl Z ejee [ npdekrdZ d Z ddlTy!ddlm Z ej dWnek rYnXddlZddlZejee[yddlmZWqek rYqXnd!ekrd!Z d Z ddlTy!ddlm Z ej dWnek r?YnXddlZddlZejee[yddlmZWqek rYqXn ed"eejd#d?e"d@dAe"dBdCe"dBdDe"dEd1e$Z%e#Z$e"d(d)e$Z&e#Z$e"dFdGe"dHd+e"dId-e"dJdKe"dLdMe$j'ee"dNdOe"dPd1e"dQd1e"dRdSedTredUre"dVdTe$Z(e#Z$e"d(d)e"d,d-e"d.d/e"dWdXe"dYd+edZr%e"d[d-e"d2d3e"d\d1e"d]d/e"d.d/e"dEd1e"d^d/e$Z)[$[[!["dZ*d_Z+d`Z,dadbdcddZ-dedfZ.dgdhZ/ejdddfdhgdiddbdjdkZ0GdldmdmZ1dndoZ2ej dke3ehe%krve4ehe(krvdpdiddqdbdrddsdtZ5dudvZ6ej dtye7Wne8k riZ7YnXdwdxZ9dydzZ:d{d|Z;d}d~Z<ddZ=ddZ>ejdxdzd|d~ddgdddZ?dddZ@ddlAmBZBGdddeBZCy eDZEWne8k rnddZEYnXdekrej dy eFZGWne8k rddZGYnXdekrej dddZHeHZ7[HdddZIe dkZJejdeJr^ddZKeCe7jLeKeMeKeMeEeGZN[KdddZOejdddZPeP\ZQZR[Pedr ed r edr dZSd_ZTZUejdddgddZVddZWddZXddZYddZZejddddgedrS ddZ[ddZ\ejddgedr ddZ]ddZ^ejddgddddZ_GdddZ`ddZadS)NaltsepcurdirpardirseppathseplinesepdefpathnamepathdevnullSEEK_SETSEEK_CURSEEK_ENDfsencodefsdecode get_exec_pathfdopenpopenextsepcCs |tkS)N)globals)r r'/opt/alt/python35/lib64/python3.5/os.py_exists%src CsAyt|jSWn)tk r<ddt|DSYnXdS)NcSs&g|]}|ddkr|qS)r_r).0nrrr ,s z%_get_exports_list..)list__all__AttributeErrordir)modulerrr_get_exports_list(s r"posix )*)_exitr&)_have_functionsntz cezno os specific module foundzos.path)rrrrrrrr r'cCs-|tkr)|tkr)tjt|dS)N)_globalsr'_setadd)strfnrrr_addysr/HAVE_FACCESSATaccess HAVE_FCHMODATchmod HAVE_FCHOWNATchown HAVE_FSTATATstatHAVE_FUTIMESATutime HAVE_LINKATlink HAVE_MKDIRATmkdir HAVE_MKFIFOATmkfifo HAVE_MKNODATmknod HAVE_OPENATopenHAVE_READLINKATreadlink HAVE_RENAMEATrenameHAVE_SYMLINKATsymlink HAVE_UNLINKATunlinkrmdirHAVE_UTIMENSAT HAVE_FCHDIRchdir HAVE_FCHMOD HAVE_FCHOWNHAVE_FDOPENDIRlistdir HAVE_FEXECVEexecveHAVE_FTRUNCATEtruncate HAVE_FUTIMENS HAVE_FUTIMESHAVE_FPATHCONFpathconfstatvfsfstatvfs HAVE_FSTATVFS HAVE_LCHFLAGSchflags HAVE_LCHMODlchown HAVE_LCHOWN HAVE_LUTIMES HAVE_LSTATZ MS_WINDOWSiFcCstj|\}}|s0tj|\}}|r|rtj| ryt|||Wntk rtYnXt}t|trttd}||krdSyt||Wn,t k r| stj | rYnXdS)NASCII) r splitexistsmakedirsFileExistsErrorr isinstancebytesr=OSErrorisdir)r modeexist_okheadtailcdirrrrrks$    rkc Cst|tj|\}}|s:tj|\}}xI|r|ryt|Wntk rlPYnXtj|\}}q=WdS)N)rLr riro)r rsrtrrr removedirss  rvc Cstj|\}}|r;|r;tj| r;t|t||tj|\}}|r|ryt|Wntk rYnXdS)N)r rirjrkrGrvro)oldnewrsrtrrrrenamess    ryTc$csg}g}yFtdkr9t|tr9t|}n t|}t|}Wn?tk r}z|dk r}||dSWYdd}~XnXx|D]} y| j} Wntk rd} YnX| r|j| jn|j| j| r| r|rd} n2y| j } Wntk r;d} YnX| } | rt | j |||EdHqW|r|||fVt j t j } }xY|D]@}|||}|s| | rt ||||EdHqWn|||fVdS)Nr(FT)r rmrn_dummy_scandirscandirrrois_dirappend is_symlinkwalkr islinkjoin)toptopdownonerror followlinksdirsnondirs scandir_itentrieserrorentryr| walk_intor~rrdirnamenew_pathrrrr*sJ;           rc@sFeZdZddZddddZddZd d Zd S) _DummyDirEntryc Cs]||_tj|||_d|_d|_y|jddWntk rXYnXdS)Nfollow_symlinksF)r r r_stat_lstatr7ro)selfr r rrr__init__s    z_DummyDirEntry.__init__rTcCs`|r.|jdkr't|j|_|jS|jdkrUt|jdd|_|jSdS)NrF)rr7r r)rrrrrr7sz_DummyDirEntry.statcCsZ|jdk r>|j r>|jdd}tj|jS|j}tj|jS)NrF)rr~r7stS_ISDIRst_mode)rr7rrrr|s  z_DummyDirEntry.is_dircCs"|jdd}tj|jS)NrF)r7rS_ISLNKr)rr7rrrr~sz_DummyDirEntry.is_symlinkN)__name__ __module__ __qualname__rr7r|r~rrrrrs   rccs)x"t|D]}t||Vq WdS)N)rSr)r r rrrrzsrz.rdir_fdc cst|ddd|}t|td|}zO|s`tj|jr{tj|t|r{t|||||EdHWdt |XdS)NrFr) r7rCO_RDONLYrrrr samestat_fwalkclose)rrrrrorig_sttopfdrrrfwalks#rc cst|}gg}}x|D]}y?tjt|d|jrW|j|n |j|Wq tk ry5tjt|d|ddjr|j|Wntk rw YnXYq Xq W|r||||fVx|D]}y1t|d|d|} t|t d|} Wn>tk r`} z|dk rK|| wWYdd} ~ XnXzO|st j | t| rt j ||} t | | |||EdHWdt| XqW|s||||fVdS)NrrF)rSrrr7rr}rorrCrr rrrr) rtoppathrrrnamesrrr rdirfderrdirpathrrrr s<    $    rcGst||dS)N)execv)fileargsrrrexeclBsrcGs(|d}t||dd|dS)Nrfr)rU)rrenvrrrexecleIs rcGst||dS)N)execvp)rrrrrexeclpQsrcGs(|d}t||dd|dS)Nrfrr)execvpe)rrrrrrexeclpeXs rcCst||dS)N)_execvpe)rrrrrrasrcCst|||dS)N)r)rrrrrrrisrcCs{|dk r!t}||f}nt}|f}t}tj|\}}|rb|||dSd}}d} t|} tdkrt|}tt| } x| D]} tj | |} y|| |Wqt k rN} zW| }t j d}| j t jkr<| j t jkr<|dkr<| }|} WYdd} ~ XqXqW|rh|j| |j|dS)Nr(rg)rUrenvironr rirr rmaprrosysexc_infoerrnoENOENTENOTDIRwith_traceback)rrr exec_funcargrestrsrtlast_exc saved_excsaved_tb path_listr fullnameetbrrrrts<        $ rcCsddl}|dkrt}|j|jdty|jd}Wntk rhd}YnXtry|d}Wnttfk rYnX|dk rt d|}|dk rt |t rt |}WdQRX|dkrt }|jtS)NrignorePATHsPATHz*env cannot contain 'PATH' and b'PATH' keys)warningsrcatch_warnings simplefilter BytesWarningget TypeErrorsupports_bytes_environKeyError ValueErrorrmrnrrrir)rrr path_listbrrrrs.        )MutableMappingc@s|eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)_EnvironcCsC||_||_||_||_||_||_||_dS)N) encodekey decodekey encodevalue decodevalueputenvunsetenv_data)rdatarrrrrrrrrrs      z_Environ.__init__c CsKy|j|j|}Wn!tk r=t|dYnX|j|S)N)rrrr)rkeyvaluerrr __getitem__s  z_Environ.__getitem__cCs?|j|}|j|}|j||||j|sz$_Environ.__repr__..)rrritems)rr)rr__repr__s z_Environ.__repr__cCs t|S)N)dict)rrrrcopysz _Environ.copycCs||kr|||<||S)Nr)rrrrrr setdefaults  z_Environ.setdefaultN) rrrrrrrrrrrrrrrrrs       rcCsdS)Nr)rrrrrsrrcCs t|dS)N)_putenv)rrrrrsrcstdkrldd}|t}fdd}i}xitjD]\}}||||.check_strcs|jS)N)upper)r)encoderrrsz!_createenviron..encodekeycs8t|ts(tdt|j|jdS)Nzstr expected, not %ssurrogateescape)rmr-rrrr)r)encodingrrrsz_createenviron..encodecs|jdS)Nr)decode)r)rrrr"sz_createenviron..decode) r r-rrrgetfilesystemencodingrr _unsetenv)rrrrrrr)rrr_createenviron s"   rcCstj||S)N)rr)rdefaultrrrgetenv0srrcCs,t|ts(tdt|j|S)Nzbytes expected, not %s)rmrnrrr)rrrr _check_bytes:srcCstj||S)N)environbr)rrrrrgetenvbFsrrcs[tjdkr!dndfdd}fdd}||fS)NmbcsstrictrcsOt|tr|St|tr2|jStdt|jdS)Nzexpect bytes or str, not %s)rmrnr-rrrr)filename)rerrorsrrrUs z_fscodec..fsencodecsOt|tr|St|tr2|jStdt|jdS)Nzexpect bytes or str, not %s)rmr-rnrrrr)r)rrrrrbs z_fscodec..fsdecode)rr)rrr)rrr_fscodecNs     rforkspawnvrP_WAITP_NOWAIT P_NOWAITOc Cst}|sWy0|dkr.|||n||||WqtdYqXnw|tkrg|Sxdt|d\}}t|rqjqjt|rt| St|rt|St dqjWdS)Nrz"Not stopped, signaled or exited???) rr&rwaitpid WIFSTOPPED WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUSro)rqrrrfuncpidwpidstsrrr _spawnvefs&        rcCst|||dtS)N)rr)rqrrrrrrscCst||||tS)N)rrU)rqrrrrrrspawnvesrcCst|||dtS)N)rr)rqrrrrrspawnvpsrcCst||||tS)N)rr)rqrrrrrrspawnvpesrcGst|||S)N)r)rqrrrrrspawnlsrcGs'|d}t|||dd|S)Nrfrr)r)rqrrrrrrspawnles rcGst|||S)N)r)rqrrrrrspawnlpsrcGs'|d}t|||dd|S)Nrfrr)r)rqrrrrrrspawnlpes rrcCst|ts%tdt||d krAtd||dksY|dkretdddl}ddl}|dkr|j|ddd |jd |}t |j |j |S|j|ddd |jd |}t |j |j |SdS) Nz&invalid cmd type (%s, expected string)rwzinvalid mode %rrz+popen() does not support unbuffered streamsshellTstdoutbufsizestdin)rr) rmr-rrr subprocessioPopenPIPE _wrap_close TextIOWrapperr r")cmdrq bufferingr#r$procrrrrs$         c@sXeZdZddZddZddZddZd d Zd d Zd S)r'cCs||_||_dS)N)_stream_proc)rstreamr+rrrrs z_wrap_close.__init__cCsH|jj|jj}|dkr,dStdkr<|S|d>SdS)Nrr()r,rr-waitr )r returncoderrrrs   z_wrap_close.closecCs|S)Nr)rrrr __enter__$sz_wrap_close.__enter__cGs|jdS)N)r)rrrrr__exit__&sz_wrap_close.__exit__cCst|j|S)N)getattrr,)rr rrr __getattr__(sz_wrap_close.__getattr__cCs t|jS)N)iterr,)rrrrr*sz_wrap_close.__iter__N) rrrrrr2r3r5rrrrrr's     r'cOsDt|ts%tdt|ddl}|j|||S)Nz&invalid fd type (%s, expected integer)r)rmintrrr$rC)fdrkwargsr$rrrr.s )rr)rrr)brrr7rbuiltin_module_namesZ_namesrrr"r rr#r&r} ImportError posixpathr r'extendr(Zntpathr)modulesZos.pathrrrrrrrr rr*r/setr+supports_dir_fdsupports_effective_idsr, supports_fdsupports_follow_symlinksr r rrkrvryrrrzrCrSrrr NameErrorrrrrrrrr_collections_abcrrrrrrrrrrrrnrrrrrrrr rrrrrrrrrrr'rrrrrs                         :                                                  +  $!, /        #-7                 #%