�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%Zd?d@ZdAdBZdCdDZdEefdFefdGefdHefdIdJdKfgZdS)Linstallz'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_prefixrGenvironr\normpath)r9Zadditionr:r:r;rKsZ          zinstall.finalize_unixcCs|jr8|jdkrtd|j|_|_|tjdn|jdk r\|j|_|_|dn\|j dkrvtj t j |_ |j |_|_z|tjWn"t k rtdtjYnXdS)z)Finalizes options for non-posix platformsNrmZ_userrz)I don't know how to install stuff on '%s')r r.rr%r&rorGrHr$r"r\rsrMKeyErrorr8r:r:r;rLs&    zinstall.finalize_othercCs<t|}tD]*}d|}t||dkr t||||q dS)z=Sets the install directories by applying the install schemes.install_N)INSTALL_SCHEMES SCHEME_KEYSrisetattr)r9rHZschemekeyattrnamer:r:r;ros zinstall.select_schemecCsX|D]N}t||}|dk rtjdks.tjdkr:tj|}t||j}t|||qdS)Nr=r)rirGrHr\ expanduserr rSrx)r9attrsattrrlr:r:r; _expand_attrss   zinstall._expand_attrscCs|dddgdS)zNCalls `os.path.expanduser` on install_base, install_platbase and root.r%r&r'Nr~r8r:r:r;rUszinstall.expand_basedirscCs|ddddddgdS)z+Calls `os.path.expanduser` on install dirs.r(r)r+r*r,r-Nrr8r:r:r;rWs zinstall.expand_dirscGs,|D]"}d|}t||tt||qdS)z!Call `convert_path` over `names`.ruN)rxrrir9namesrHr}r:r:r;rYszinstall.convert_pathscCs|jdkr|jj|_|jdk rtdt|jtrB|jd|_t|jdkr`|jd}}n"t|jdkrz|j\}}ntdt |}nd}d}||_ ||_ dS) z4Set `path_file` and `extra_dirs` using `extra_path`.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 isinstancestrrOlenr r path_filer^)r9rr^r:r:r;rZs(      zinstall.handle_extra_pathc Gs0|D]&}d|}t||t|jt||qdS)z:Change the install directories pointed by name using root.ruN)rxr r'rirr:r:r;r_szinstall.change_rootscCsb|js dSttjd}|jD]8\}}||r$tj|s$| d|t |dq$dS)zCreate directories under ~.N~zos.makedirs('%s', 0o700)i) r rrGr\r{rSitems startswithisdirZ debug_printmakedirs)r9r$rHr\r:r:r;rXszinstall.create_home_pathcCs"|js6|d|jdj}|jr6|tkr6td|D]}||q>|j r\| |j r| }|j rt|j }tt|D]}|||d||<q|t|j |fd|j ttjjtj}ttjj|}tjtj|j}|jr|j r|js||krtd|jdS)zRuns the command.rFz"Can't install when cross-compilingNz'writing list of installed files to '%s'zmodules 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 rget_sub_commandsrcreate_path_filer7 get_outputsr'rrangeexecutermaprGr\rsrMnormcaser+r2rre)r9Z build_platcmd_nameoutputsZroot_lenZcounterZsys_pathr+r:r:r;run(sD    z install.runcCsJtj|j|jd}|jr8|t||jgfd|n| d|dS)zCreates the .pth file.pthz creating %szpath file '%s' not createdN) rGr\r]r[rr2rrr^rI)r9filenamer:r:r;rTs  zinstall.create_path_filecCshg}|D].}||}|D]}||kr"||q"q |jrd|jrd|tj|j |jd|S)z.Assembles the outputs of all the sub-commands.r) rget_finalized_commandrappendrr2rGr\r]r[)r9rrcmdrr:r:r;rbs    zinstall.get_outputscCs.g}|D]}||}||q |S)z*Returns the inputs of all the sub-commands)rrextend get_inputs)r9Zinputsrrr:r:r;rss   zinstall.get_inputscCs|jp|jS)zSReturns true if the current distribution has any Python modules to install.)rQZhas_pure_modulesZhas_ext_modulesr8r:r:r;has_libs zinstall.has_libcCs |jS)zLReturns true if the current distribution has any headers to install.)rQ has_headersr8r:r:r;rszinstall.has_headerscCs |jS)zMReturns true if the current distribution has any scripts to. install.)rQ has_scriptsr8r:r:r;rszinstall.has_scriptscCs |jS)zJReturns true if the current distribution has any data to. install.)rQZhas_data_filesr8r:r:r;has_dataszinstall.has_datar+r*r,r-Zinstall_egg_infocCsdS)NTr:r8r:r:r;zinstall.) __name__ __module__ __qualname__Z descriptionrfZboolean_optionsrTrrrgr<r`rJrKrLror~rUrWrYrZr_rXrrrrrrrrZ sub_commandsr:r:r:r;rIsn ;  N3  " ,  r)__doc__rMrGZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rrTZWINDOWS_SCHEMErvrwrr:r:r:r;sb