U &Ì.e�jã@sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZmZmZdd lmZdd l mZdd lmZdd lmZd ZddddddœZddddddœddddddœedœZe�rddddddœed<ddd d!ddœed"<dZGd#d$„d$eƒZdS)%éN)Úlog)ÚCommand)ÚDEBUG)Úget_config_vars)ÚDistutilsPlatformError)Ú write_file)Ú convert_pathÚ subst_varsÚ change_root)Ú get_platform)ÚDistutilsOptionError)Ú USER_BASE)Ú USER_SITETz$base/Lib/site-packagesz$base/Include/$dist_namez $base/Scriptsz$base)ÚpurelibÚplatlibÚheadersÚscriptsÚdataz/$base/lib/python$py_version_short/site-packagesz5$platbase/lib64/python$py_version_short/site-packagesz9$base/include/python$py_version_short$abiflags/$dist_namez $base/binz$base/lib/pythonz$base/lib64/pythonz$base/include/python/$dist_name)Ú unix_prefixÚ unix_homeÚntz $usersitez4$userbase/Python$py_version_nodot/Include/$dist_namez)$userbase/Python$py_version_nodot/Scriptsz $userbaseZnt_userz=$userbase/include/python$py_version_short$abiflags/$dist_namez $userbase/binÚ unix_userc@s:eZdZdZdddddddd d d d d ddddddgZdddgZer`e dddef¡e d¡ddiZ dd„Z dd„Z dd „Z d!d"„Z d#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Zd=d>„Zd?d@„ZdAdB„ZdCdD„ZdEefdFefdGefdHefdIdJdK„fgZdS)LÚinstallz'install everything from build directory)zprefix=Nzinstallation prefix)z exec-prefix=Nz.(Unix only) prefix for platform-specific files)zhome=Nz+(Unix only) home directory to install under)z install-base=Nz;base installation directory (instead of --prefix or --home))zinstall-platbase=Nz\base installation directory for platform-specific files (instead of --exec-prefix or --home))zroot=Nzr)r%r&r+r(r)r*r,r-r r r.rÚ select_schemer$r"r#ÚhasattrrMÚ base_prefixrGÚenvironr\Únormpath)r9Zadditionr:r:r;rKˆsZ ÿþýüûÿ ÿ     ÿ  ÿþ zinstall.finalize_unixcCs¼|jr8|jdkrtdƒ‚|j|_|_| tjd¡n€|jdk r\|j|_|_| d¡n\|j dkrvtj   t j ¡|_ |j |_|_z| tj¡Wn"t k r¶tdtjƒ‚YnXdS)NrmZ_userrz)I don't know how to install stuff on '%s')r r.rr%r&rorGrHr$r"r\rsrMÚKeyErrorr8r:r:r;rL»s& ÿ   ÿzinstall.finalize_othercCs<t|}tD]*}d|}t||ƒdkr t||||ƒq dS©NZinstall_)ÚINSTALL_SCHEMESÚ SCHEME_KEYSriÚsetattr)r9rHZschemeÚkeyÚattrnamer:r:r;roÑs zinstall.select_schemecCsX|D]N}t||ƒ}|dk rtjdks.tjdkr:tj |¡}t||jƒ}t|||ƒqdS)Nr=r)rirGrHr\Ú expanduserr rSrx)r9ÚattrsÚattrrlr:r:r;Ú _expand_attrsÚs   zinstall._expand_attrscCs| dddg¡dS)Nr%r&r'©r~r8r:r:r;rUãszinstall.expand_basedirscCs| ddddddg¡dS)Nr(r)r+r*r,r-rr8r:r:r;rWès þzinstall.expand_dirscGs,|D]"}d|}t||tt||ƒƒƒqdSru)rxrri©r9ÚnamesrHr}r:r:r;rYîszinstall.convert_pathscCs¤|jdkr|jj|_|jdk rŒt d¡t|jtƒrB|j d¡|_t|jƒdkr`|jd}}n"t|jƒdkrz|j\}}ntdƒ‚t |ƒ}nd}d}||_ ||_ dS)NzIDistribution option extra_path is deprecated. See issue27919 for details.ú,r!rr?zY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsr>) r1rQrrIÚ isinstanceÚstrrOÚlenr rÚ path_filer^)r9r†r^r:r:r;rZôs(   ÿ  ÿ zinstall.handle_extra_pathc Gs0|D]&}d|}t||t|jt||ƒƒƒqdSru)rxr r'rir€r:r:r;r_szinstall.change_rootscCsb|js dSttj d¡ƒ}|j ¡D]8\}}| |¡r$tj |¡s$|  d|¡t  |d¡q$dS)Nú~zos.makedirs('%s', 0o700)iÀ) r rrGr\r{rSÚitemsÚ startswithÚisdirZ debug_printÚmakedirs)r9r$rHr\r:r:r;rXszinstall.create_home_pathcCs"|js6| d¡|j d¡j}|jr6|tƒkr6tdƒ‚| ¡D]}| |¡q>|j r\|  ¡|j rº|  ¡}|j r t|j ƒ}tt|ƒƒD]}|||d…||<q†| t|j |fd|j ¡ttjjtjƒ}ttjj|ƒ}tj tj |j¡¡}|j�r|j �r|j�s||k�rt d|j¡dS)NrFz"Can't install when cross-compilingz'writing list of installed files to '%s'zƒmodules installed to '%s', which is not in Python's module search path (sys.path) -- you'll have to change the search path yourself)r3Z run_commandrQZget_command_objZ plat_namer4r rÚget_sub_commandsr†Úcreate_path_filer7Ú get_outputsr'r…ÚrangeÚexecuterÚmaprGr\rsrMÚnormcaser+r2rre)r9Z build_platÚcmd_nameÚoutputsZroot_lenZcounterZsys_pathr+r:r:r;Úrun(sD    ÿþÿÿþýz install.runcCsJtj |j|jd¡}|jr8| t||jgfd|¡n|  d|¡dS)Nú.pthz creating %szpath file '%s' not created) rGr\r]r[r†r2r�rr^rI)r9Úfilenamer:r:r;r�Ts ÿ þzinstall.create_path_filecCshg}| ¡D].}| |¡}| ¡D]}||kr"| |¡q"q |jrd|jrd| tj |j |jd¡¡|S)Nr–) rŒÚget_finalized_commandrŽÚappendr†r2rGr\r]r[)r9r”r“Úcmdr—r:r:r;rŽbs    ÿzinstall.get_outputscCs.g}| ¡D]}| |¡}| | ¡¡q |S©N)rŒr˜ÚextendÚ get_inputs)r9Zinputsr“ršr:r:r;r�ss   zinstall.get_inputscCs|j ¡p|j ¡Sr›)rQZhas_pure_modulesZhas_ext_modulesr8r:r:r;Úhas_libs ÿzinstall.has_libcCs |j ¡Sr›)rQÚ has_headersr8r:r:r;rŸ…szinstall.has_headerscCs |j ¡Sr›)rQÚ has_scriptsr8r:r:r;r Šszinstall.has_scriptscCs |j ¡Sr›)rQZhas_data_filesr8r:r:r;Úhas_data�szinstall.has_datar+r*r,r-Zinstall_egg_infocCsdS)NTr:r8r:r:r;Úšózinstall.) Ú__name__Ú __module__Ú __qualname__Z descriptionrfZboolean_optionsrTr™rrgr<r`rJrKrLror~rUrWrYrZr_rXr•r�rŽr�ržrŸr r¡Z sub_commandsr:r:r:r;rIsn É; ÿ N3  " ,  ür)rMrGZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rrTZWINDOWS_SCHEMErvrwrr:r:r:r;Ús`          û ûûñû ú