b-Qc@sddlZddlZddlZddlZddlZejdkrfddljjj j Z nejejZ y e Z Wnek rdZ nXeZddlmZddlmZddlmZmZmZdddd gZd Zddd YZeed r(ejgZngZy'dd lm Z ej!e [ Wne"k rhnXdefdYZ#eej$gdj%D]Z&e'e e&d^qZ(defdYZ)dS(iNtjava(tDistutilsError(t working_set(tbuiltinstexecfiletreducetAbstractSandboxtDirectorySandboxtSandboxViolationt run_setupc stj}tj}tj}tjjtjj}tjj|d}tjj|sutj |nt j }tj j }tj} z|t _ tj|yggt|tj(tjjd|tjtjjdt|jfdWn=tk rXtjd} | jrY| jdrYqYnXWdtj| tj j|gtj D](} | |kr| jd r| ^q} tttj j | tj||tj(|tj(|t _ XdS(s8Run a distutils setup script, sandboxed in its directoryttempicSs |jS(N(tactivate(tdist((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pytCscstdid6dd6S(Nssetup.pyt__file__t__main__t__name__(R((t setup_script(s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyR EsiNs encodings.(!tostgetcwdtsystargvtpathtabspathtdirnametjointisdirtmakedirsttempfilettempdirtmodulestcopyt pkg_resourcest __getstate__tchdirtlisttinsertRt__init__t callbackstappendRtrunt SystemExittexc_infotargst __setstate__tupdatet startswithtmapt __delitem__( RR+told_dirt save_argvt save_patht setup_dirttemp_dirtsave_tmpt save_modulestpr_statetvtmod_namet del_modules((Rs6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyR 0sD               cBseZdZeZdZdZdZdZx<dddgD]+Z e e e rFee e e (RAtfunc((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyR(ps       cs%ttfd}|S(Ncs@|jr-|j||||\}}n||||S(N(RLt _remap_pair(RAtsrctdstR+tkw(RBtoriginal(s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pytwraps $(RDR>(RBRT((RBRSs6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyt_mk_dual_path_wrapperstrenametlinktsymlinkcs+pttfd}|S(Ncs4|jr$|j|||}n|||S(N(RLt _remap_input(RARR+RR(RBRS(s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRTs (RDR>(RBRSRT((RBRSs6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyt_mk_single_path_wrappersRHRJtstattlistdirR"tchmodtchowntmkdirtremovetunlinktrmdirtutimetlchowntchroottlstatt startfiletmkfifotmknodtpathconftaccesscs%ttfd}|S(NcsM|jr=|j|||}|j|||S|||S(N(RLRYt _remap_output(RARR+RR(RBRS(s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRTs (RDR>(RBRT((RBRSs6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyt_mk_single_with_returnstreadlinkttempnamcs%ttfd}|S(Ncs,||}|jr(|j|S|S(N(RLRl(RAR+RRtretval(RBRS(s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRTs (RDR>(RBRT((RBRSs6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyt _mk_querysRttmpnamcCs|S(s=Called to remap or validate any path, whether input or output((RAR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyt_validate_pathscOs |j|S(sCalled for path inputs(Rs(RAt operationRR+RR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRYscCs |j|S(sCalled for path outputs(Rs(RARtR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRlscOs6|j|d||||j|d|||fS(s?Called for path pairs like rename, link, and symlink operationss-froms-to(RY(RARtRPRQR+RR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyROsN(Rt __module__t__doc__RMRLR%RFR(RURBR?R>tlocalstNoneRZRGRIRmRqRsRYRlRO(((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRas>          tdevnull(tGetGeneratePathcBseZdZejddddddddd d d d d g ZedZdZe rlddZ nddZ dZ dZ dZ dZdZddZRS(s<Restrict operations to a single subdirectory - pseudo-chrootRJR]R^R_R`RaRbRcRdReRhRiRocCstjjtjj||_tjj|jd|_g|D]$}tjjtjj|^qC|_tj |dS(Nt( RRtnormcasetrealpatht_sandboxRt_prefixt _exceptionsRR%(RAtsandboxt exceptionsR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyR%s!4cOst|||dS(N(R(RARtR+RR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyt _violationstrcOsK|dkr8|j| r8|jd||||nt||||S(NRtrttrbtrUtURH(RRsrbsrUR(t_okRRG(RARtmodeR+RR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRGscOsK|dkr8|j| r8|jd||||nt||||S(NRRRRRRJ(RsrtsrbsrUR(RRRI(RARRR+RR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRIscCs|jddS(NRr(R(RA((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRrscCsy|j}z_t|_tjjtjj|}|j|sc||jksc|j|j rgt SWd||_XdS(N( RLRMRRR|R}t _exemptedR~R.RRK(RARtactiveR}((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRs  cCst|j|j}t|kS(N(R/R.RRK(RAtfilepathtexception_matches((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRscOsH||jkrD|j| rD|j|tjj|||n|S(sCalled for path inputs(t write_opsRRRRR}(RARtRR+RR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRYs%cOsF|j| s |j| r<|j|||||n||fS(s?Called for path pairs like rename, link, and symlink operations(RR(RARtRPRQR+RR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRO s icOsR|t@r9|j| r9|jd|||||ntj|||||S(sCalled for low-level os.open()sos.open(t WRITE_FLAGSRRR>RJ(RARHtflagsRR+RR((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRJs(RRuRvtdicttfromkeysRt _EXCEPTIONSR%RRGRIRrRRRYRORJ(((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRs       s4O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC O_TEMPORARYicBseZdZdZRS(sEA setup script attempted to modify the filesystem outside the sandboxcCs d|jS(NsSandboxViolation: %s%r %s The package setup script has attempted to modify files on your system that are not within the EasyInstall build area, and has been aborted. This package cannot be safely installed by EasyInstall, and may not support alternate installation locations even if you run its setup script by hand. Please inform the package's author and the EasyInstall maintainers to find out if a fix or workaround is available.(R+(RA((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyt__str__s (RRuRvR(((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyRs((*RRRtoperatorR RBt$org.python.modules.posix.PosixModuletpythonRtposixt PosixModuleR>RHRGt NameErrorRxRJRItdistutils.errorsRRtsetuptools.compatRRRt__all__R RR?RyRtwin32com.client.gencacheRzR't ImportErrorRtor_tsplittaRDRR(((s6/usr/lib/python2.7/site-packages/setuptools/sandbox.pyts8<    1i @ +