ó zn¯Sc@sÛddlZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z ddd„Zd„Zd„Zd„Zdejfd„ƒYZd „Zddd dd „ZdS( iÿÿÿÿN(tPopentPIPEcCsRt|tjƒs$|j|ƒ}n|dkr?tjƒ}nt||||ƒS(s'for zipfile py2.5 borrowed from cpythonN(t isinstancetzipfiletZipInfotgetinfotNonetostgetcwdt_extract_member(tselftmembertpathtpwd((sF/usr/local/lib/python2.7/site-packages/setuptools/tests/environment.pyt_extract s  cCs;t|dƒ}z|j|j|ƒƒWd|jƒXdS(Ntwb(topentwritetreadtclose(R tnamet dest_patht dest_file((sF/usr/local/lib/python2.7/site-packages/setuptools/tests/environment.pyt_extract_from_zipscCs8|dtjjtjjfkrQttjj|ƒdƒdkrQ|d }n|jddkrƒtjj||jdƒ}ntjj||jƒ}tjj|ƒ}tjj |ƒ}|rètjj |ƒ rètj |ƒn|jddkr!tjj |ƒstj |ƒn|St||j|ƒ|S(s'for zipfile py2.5 borrowed from cpythoniÿÿÿÿiit/(RR tseptaltseptlent splitdrivetfilenametjointnormpathtdirnametexiststmakedirstisdirtmkdirR(R R t targetpathR t upperdirs((sF/usr/local/lib/python2.7/site-packages/setuptools/tests/environment.pyR s "" cCszxftj|ƒD]U\}}}tj|tjƒx0|D](}tjtjj||ƒtjƒq9WqWtj|ƒdS(N( RtwalktchmodtstattS_IWRITER Rtshutiltrmtree(ttargettdir_pathtdirstfilesR((sF/usr/local/lib/python2.7/site-packages/setuptools/tests/environment.pyt _remove_dir@s  *tZippedEnvironmentcBs,eZdZdZdZd„Zd„ZRS(cCsö|jdks|jdkr"dStjj|jƒsDd|_dStjƒ|_tj ƒ|_ ddd}}}z@t j |jƒ}x'|j ƒD]}t|||j ƒq˜WWd|rÌ|jƒn~Xtjtjj|j |jƒƒdS(N(tdatafileRtdatanameRR tisfiletold_cwdRttempfiletmkdtempttemp_dirRtZipFiletnamelistRRtchdirR(R tzip_filetsourceR-R0((sF/usr/local/lib/python2.7/site-packages/setuptools/tests/environment.pytsetUpPs   cCsg|jdks|jdkr"dSy-|jrNtj|jƒt|jƒnWntk rbnXdS(N( R4RR3R6RR<R1R9tOSError(R ((sF/usr/local/lib/python2.7/site-packages/setuptools/tests/environment.pyttearDowngs  N(t__name__t __module__RR3R4R6R?RA(((sF/usr/local/lib/python2.7/site-packages/setuptools/tests/environment.pyR2Js  cCsstƒ}xctjjddƒjtjƒD]@}tjj||ƒ}tj|tj ƒr+|j |ƒq+q+W|S(NtPATHt( tsetRtenvirontgettsplittpathsepR RtaccesstX_OKtadd(tcmdtresultR R((sF/usr/local/lib/python2.7/site-packages/setuptools/tests/environment.pyt _which_dirsus  (ic Csi|dkr=tƒ}x%tjD]}tj|||s          +