ž Ÿ/{Y 'c@säddlZddlZddlZddlZddlZddlZddlZddlZejdkrŠddl j j j j Znej ejZy eZWnek r¾dZYnXeZddlmZddlmZddlmZmZdddd gZd d „ZGd d„dƒZeed ƒrJejgZ ngZ y'dd l!m"Z"e j#e"ƒƒ["Wne$k r‹YnXGdd„deƒZ%ej&ej'dd„dj(ƒDƒƒZ)Gdd„deƒZ*dS(iNujava(uDistutilsError(u working_set(ubuiltinsuexecfileuAbstractSandboxuDirectorySandboxuSandboxViolationu run_setupc stjƒ}tjdd…}tjdd…}tjjtjjˆƒƒ}tjj|dƒ}tjj|ƒs‡tj |ƒnt j }tj j ƒ‰tjƒ}zÑ|t _ tj|ƒyvˆgt|ƒtjdd…tk rztjƒd} | jrv| jdrv‚nYnXWdtj|ƒtj jˆƒ‡fdd †tj Dƒ} tttj j| ƒƒtj|ƒ|tjdd…<|tjdd…<|t _ XdS( u8Run a distutils setup script, sandboxed in its directoryNutempicSs |jƒS(N(uactivate(udist((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu0surun_setup..cstdiˆd6dd6ƒS(Nusetup.pyu__file__u__main__u__name__(uexecfile((u setup_script(u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu2sics2g|](}|ˆkr|jdƒ r|‘qS(u encodings.(u startswith(u.0umod_name(u save_modules(u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu As  urun_setup..( uosugetcwdusysuargvupathuabspathudirnameujoinuisdirumakedirsutempfileutempdirumodulesucopyu pkg_resourcesu __getstate__uchdirulistuinsertu working_setu__init__u callbacksuappenduDirectorySandboxurunu SystemExituexc_infouargsu __setstate__uupdateumapu __delitem__( u setup_scriptuargsuold_diru save_argvu save_pathu setup_dirutemp_dirusave_tmpupr_stateuvu del_modules((u save_modulesu setup_scriptu+/tmp/pip-jy811g-build/setuptools/sandbox.pyu run_setups@           cBsô|EeZdZdZd4Zdd„Zdd„Zdd„Zdd „Z x<d d d gD]+Z e e e ƒr\e e ƒe ƒe Ts u,AbstractSandbox.__init__..(udiru_osu_attrs(uself((uselfu+/tmp/pip-jy811g-build/setuptools/sandbox.pyu__init__RsuAbstractSandbox.__init__cCs1x*|jD]}tt|t||ƒƒq WdS(N(u_attrsusetattruosugetattr(uselfusourceuname((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu_copyXsuAbstractSandbox._copyc Cs{zB|j|ƒtr%|jt_n|jt_d|_|ƒSWdd|_tr`tt_ntt_|jt ƒXdS(uRun 'func' under os sandboxingNTF( u_copyu_fileubuiltinsufileu_openuopenuTrueu_activeuFalseu_os(uselfufunc((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyurun\s       uAbstractSandbox.runcs(ttˆƒ‰‡‡fdd†}|S(Ncs@|jr-|jˆ||||Ž\}}nˆ||||ŽS(N(u_activeu _remap_pair(uselfusrcudstuargsukw(unameuoriginal(u+/tmp/pip-jy811g-build/setuptools/sandbox.pyuwrapns $u3AbstractSandbox._mk_dual_path_wrapper..wrap(ugetattru_os(unameuwrap((unameuoriginalu+/tmp/pip-jy811g-build/setuptools/sandbox.pyu_mk_dual_path_wrapperlsu%AbstractSandbox._mk_dual_path_wrapperurenameulinkusymlinkcs.ˆpttˆƒ‰‡‡fdd†}|S(Ncs4|jr$|jˆ|||Ž}nˆ|||ŽS(N(u_activeu _remap_input(uselfupathuargsukw(unameuoriginal(u+/tmp/pip-jy811g-build/setuptools/sandbox.pyuwrapys u5AbstractSandbox._mk_single_path_wrapper..wrap(ugetattru_os(unameuoriginaluwrap((unameuoriginalu+/tmp/pip-jy811g-build/setuptools/sandbox.pyu_mk_single_path_wrapperwsu'AbstractSandbox._mk_single_path_wrapperufileuopenustatulistdiruchdiruchmoduchownumkdiruremoveuunlinkurmdiruutimeulchownuchrootulstatu startfileumkfifoumknodupathconfuaccesscs(ttˆƒ‰‡‡fdd†}|S(NcsM|jr=|jˆ|||Ž}|jˆˆ|||ŽƒSˆ|||ŽS(N(u_activeu _remap_inputu _remap_output(uselfupathuargsukw(unameuoriginal(u+/tmp/pip-jy811g-build/setuptools/sandbox.pyuwrap‹s u4AbstractSandbox._mk_single_with_return..wrap(ugetattru_os(unameuwrap((unameuoriginalu+/tmp/pip-jy811g-build/setuptools/sandbox.pyu_mk_single_with_return‰su&AbstractSandbox._mk_single_with_returnureadlinkutempnamcs(ttˆƒ‰‡‡fdd†}|S(Ncs,ˆ||Ž}|jr(|jˆ|ƒS|S(N(u_activeu _remap_output(uselfuargsukwuretval(unameuoriginal(u+/tmp/pip-jy811g-build/setuptools/sandbox.pyuwrap—s u'AbstractSandbox._mk_query..wrap(ugetattru_os(unameuwrap((unameuoriginalu+/tmp/pip-jy811g-build/setuptools/sandbox.pyu _mk_query•suAbstractSandbox._mk_queryugetcwdutmpnamcCs|S(u=Called to remap or validate any path, whether input or output((uselfupath((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu_validate_path¡suAbstractSandbox._validate_pathcOs |j|ƒS(uCalled for path inputs(u_validate_path(uselfu operationupathuargsukw((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu _remap_input¥suAbstractSandbox._remap_inputcCs |j|ƒS(uCalled for path outputs(u_validate_path(uselfu operationupath((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu _remap_output©suAbstractSandbox._remap_outputcOs6|j|d|||Ž|j|d|||ŽfS(u?Called for path pairs like rename, link, and symlink operationsu-fromu-to(u _remap_input(uselfu operationusrcudstuargsukw((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu _remap_pair­suAbstractSandbox._remap_pairNF(u__name__u __module__u __qualname__u__doc__uFalseu_activeu__init__u_copyurunu_mk_dual_path_wrapperunameuhasattru_osulocalsuNoneu_mk_single_path_wrapperu_fileu_openu_mk_single_with_returnu _mk_queryu_validate_pathu _remap_inputu _remap_outputu _remap_pair(u __locals__((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyuAbstractSandboxMs>         udevnull(uGetGeneratePathcBsæ|EeZdZdZejdddddddd d d d d dg ƒZdgZedd„Z dd„Z e rˆddd„Z nddd„Z dd„Z dd„Zdd„Zdd „Zd!d"„Zd#d$d%„Zd&S('uDirectorySandboxu<Restrict operations to a single subdirectory - pseudo-chrootuopenuchmoduchownumkdiruremoveuunlinkurmdiruutimeulchownuchrootumkfifoumknodutempnamu.*lib2to3.*\.pickle$cCsctjjtjj|ƒƒ|_tjj|jdƒ|_dd„|Dƒ|_tj |ƒdS(NucSs.g|]$}tjjtjj|ƒƒ‘qS((uosupathunormcaseurealpath(u.0upath((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu Ôs u-DirectorySandbox.__init__..( uosupathunormcaseurealpathu_sandboxujoinu_prefixu _exceptionsuAbstractSandboxu__init__(uselfusandboxu exceptions((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu__init__Ðs !  uDirectorySandbox.__init__cOst|||ƒ‚dS(N(uSandboxViolation(uselfu operationuargsukw((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu _violationÙsuDirectorySandbox._violationurcOsK|dkr8|j|ƒ r8|jd||||Žnt||||ŽS(NururturburUuUufile(ururturburUuU(u_oku _violationu_file(uselfupathumodeuargsukw((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu_fileÝsuDirectorySandbox._filecOsK|dkr8|j|ƒ r8|jd||||Žnt||||ŽS(NururturburUuUuopen(ururturburUuU(u_oku _violationu_open(uselfupathumodeuargsukw((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu_openâsuDirectorySandbox._opencCs|jdƒdS(Nutmpnam(u _violation(uself((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyutmpnamçsuDirectorySandbox.tmpnamc Css|j}zYd|_tjjtjj|ƒƒ}|j|ƒp`||jkp`|j|j ƒSWd||_XdS(NF( u_activeuFalseuosupathunormcaseurealpathu _exemptedu_sandboxu startswithu_prefix(uselfupathuactiveurealpath((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu_okês  uDirectorySandbox._okcsT‡fdd†|jDƒ}‡fdd†|jDƒ}tj||ƒ}t|ƒS(Nc3s|]}ˆj|ƒVqdS(N(u startswith(u.0u exception(ufilepath(u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu ùsu-DirectorySandbox._exempted..c3s!|]}tj|ˆƒVqdS(N(ureumatch(u.0upattern(ufilepath(u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu ýs(u _exceptionsu_exception_patternsu itertoolsuchainuany(uselfufilepathu start_matchesupattern_matchesu candidates((ufilepathu+/tmp/pip-jy811g-build/setuptools/sandbox.pyu _exempted÷s   uDirectorySandbox._exemptedcOsH||jkrD|j|ƒ rD|j|tjj|ƒ||Žn|S(uCalled for path inputs(u write_opsu_oku _violationuosupathurealpath(uselfu operationupathuargsukw((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu _remap_inputs%uDirectorySandbox._remap_inputcOsF|j|ƒ s |j|ƒ r<|j|||||Žn||fS(u?Called for path pairs like rename, link, and symlink operations(u_oku _violation(uselfu operationusrcudstuargsukw((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu _remap_pair s uDirectorySandbox._remap_pairiÿcOsR|t@r9|j|ƒ r9|jd|||||Žntj|||||ŽS(uCalled for low-level os.open()uos.open(u WRITE_FLAGSu_oku _violationu_osuopen(uselfufileuflagsumodeuargsukw((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyuopensuDirectorySandbox.openN(u__name__u __module__u __qualname__u__doc__udictufromkeysu write_opsu_exception_patternsu _EXCEPTIONSu__init__u _violationu_fileu_openutmpnamu_oku _exemptedu _remap_inputu _remap_pairuopen(u __locals__((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyuDirectorySandboxÂs      cCs"g|]}tt|dƒ‘qS(i(ugetattru_os(u.0ua((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu s u u4O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC O_TEMPORARYcBs&|EeZdZdZdd„ZdS(uSandboxViolationuEA setup script attempted to modify the filesystem outside the sandboxcCs d|jS(Nu³SandboxViolation: %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.(uargs(uself((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyu__str__s uSandboxViolation.__str__N(u__name__u __module__u __qualname__u__doc__u__str__(u __locals__((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyuSandboxViolations(+uosusysutempfileuoperatoru functoolsu itertoolsureu pkg_resourcesunameu$org.python.modules.posix.PosixModuleupythonumodulesuposixu PosixModuleu_osufileu_fileu NameErroruNoneuopenu_openudistutils.errorsuDistutilsErroru working_setusetuptools.compatubuiltinsuexecfileu__all__u run_setupuAbstractSandboxuhasattrudevnullu _EXCEPTIONSuwin32com.client.gencacheuGetGeneratePathuappendu ImportErroruDirectorySandboxureduceuor_usplitu WRITE_FLAGSuSandboxViolation(((u+/tmp/pip-jy811g-build/setuptools/sandbox.pyusF            0h S