3 \¹Jã@snddlZddlZddlZddlmZddlmZmZmZm Z m Z ddlm Z Gdd„dƒZ Gdd„de ƒZ dS) éN)ÚDistutilsOptionError)ÚutilÚdir_utilÚ file_utilÚ archive_utilÚdep_util)Úlogc@seZdZgZdd„Zdd„Zdd„Zdd„Zd d „ZdBd d„Z dd„Z dCdd„Z dd„Z dDdd„Z dEdd„Zdd„ZdFdd„Zdd„Zd d!„Zd"d#„Zd$d%„ZdGd&d'„ZdHd)d*„Zd+d,„Zd-d.„Zd/d0„ZdId1d2„ZdJd4d5„ZdKd6d7„ZdLd8d9„ZdMd:d;„ZdNdd?„Z dPd@dA„Z!d S)QÚCommandcCsbddlm}t||ƒstdƒ‚|jtkr0tdƒ‚||_|jƒd|_ |j |_ d|_ d|_ d|_ dS)Nr)Ú Distributionz$dist must be a Distribution instancezCommand is an abstract class)Zdistutils.distr Ú isinstanceÚ TypeErrorÚ __class__r Ú RuntimeErrorÚ distributionÚinitialize_optionsZ_dry_runÚverboseÚforceÚhelpÚ finalized)ÚselfZdistr ©rú%/usr/lib64/python3.6/distutils/cmd.pyÚ__init__/s    zCommand.__init__cCs<|dkr0t|d|ƒ}|dkr*t|j|ƒS|Snt|ƒ‚dS)NÚdry_runÚ_)ÚgetattrrÚAttributeError)rÚattrZmyvalrrrÚ __getattr___s  zCommand.__getattr__cCs|js|jƒd|_dS)Né)rÚfinalize_options)rrrrÚensure_finalizediszCommand.ensure_finalizedcCstd|jƒ‚dS)Nz,abstract method -- subclass %s must override)rr )rrrrr{s zCommand.initialize_optionscCstd|jƒ‚dS)Nz,abstract method -- subclass %s must override)rr )rrrrr ˆs zCommand.finalize_optionsNÚcCsžddlm}|dkr d|jƒ}|j||tjd�|d}x\|jD]R\}}}|j|ƒ}|d dkrp|dd …}t||ƒ}|j|d||ftjd�qDWdS) Nr)Ú longopt_xlatezcommand options for '%s':)Úlevelz rú=z%s = %séÿÿÿÿr&) Zdistutils.fancy_getoptr#Úget_command_nameÚannouncerÚINFOÚ user_optionsÚ translater)rÚheaderÚindentr#ÚoptionrÚvaluerrrÚ dump_options—s      zCommand.dump_optionscCstd|jƒ‚dS)Nz,abstract method -- subclass %s must override)rr )rrrrÚrun¥s z Command.runrcCstj||ƒdS)N)r)rÚmsgr$rrrr(²szCommand.announcecCs&ddlm}|r"t|ƒtjjƒdS)Nr)ÚDEBUG)Zdistutils.debugr3ÚprintÚsysÚstdoutÚflush)rr2r3rrrÚ debug_print¸s zCommand.debug_printcCsBt||ƒ}|dkr"t|||ƒ|St|tƒs>td|||fƒ‚|S)Nz'%s' must be a %s (got `%s`))rÚsetattrr Ústrr)rr.ÚwhatÚdefaultÚvalrrrÚ_ensure_stringlikeÏs   zCommand._ensure_stringlikecCs|j|d|ƒdS)NÚstring)r>)rr.r<rrrÚ ensure_stringÙszCommand.ensure_stringcCspt||ƒ}|dkrdSt|tƒr6t||tjd|ƒƒn6t|tƒrTtdd„|Dƒƒ}nd}|sltd||fƒ‚dS)Nz,\s*|\s+css|]}t|tƒVqdS)N)r r:)Ú.0Úvrrrú ìsz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r:r9ÚreÚsplitÚlistÚallr)rr.r=ÚokrrrÚensure_string_listßs   zCommand.ensure_string_listcCs8|j|||ƒ}|dk r4||ƒ r4td|||fƒ‚dS)Nzerror in '%s' option: )r>r)rr.Ztesterr;Z error_fmtr<r=rrrÚ_ensure_tested_stringôszCommand._ensure_tested_stringcCs|j|tjjddƒdS)NÚfilenamez$'%s' does not exist or is not a file)rJÚosÚpathÚisfile)rr.rrrÚensure_filenameûs zCommand.ensure_filenamecCs|j|tjjddƒdS)Nzdirectory namez)'%s' does not exist or is not a directory)rJrLrMÚisdir)rr.rrrÚensure_dirnames zCommand.ensure_dirnamecCst|dƒr|jS|jjSdS)NÚ command_name)ÚhasattrrRr Ú__name__)rrrrr' s zCommand.get_command_namecGsJ|jj|ƒ}|jƒx0|D](\}}t||ƒdkrt||t||ƒƒqWdS)N)rÚget_command_objr!rr9)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrÚset_undefined_optionss  zCommand.set_undefined_optionscCs|jj||ƒ}|jƒ|S)N)rrUr!)rÚcommandZcreateZcmd_objrrrÚget_finalized_command$szCommand.get_finalized_commandrcCs|jj||ƒS)N)rÚreinitialize_command)rrWZreinit_subcommandsrrrrY0szCommand.reinitialize_commandcCs|jj|ƒdS)N)rÚ run_command)rrWrrrrZ4szCommand.run_commandcCs6g}x,|jD]"\}}|dks$||ƒr |j|ƒq W|S)N)Ú sub_commandsÚappend)rZcommandsZcmd_nameÚmethodrrrÚget_sub_commands;s zCommand.get_sub_commandscCstjd|jƒ|ƒdS)Nzwarning: %s: %s )rÚwarnr')rr2rrrr_Ksz Command.warncCstj||||jd�dS)N)r)rÚexecuter)rÚfuncÚargsr2r$rrrr`NszCommand.executeéÿcCstj|||jd�dS)N)r)rÚmkpathr)rÚnameÚmoderrrrdQszCommand.mkpathc Cstj|||||j ||jd�S)N)r)rÚ copy_filerr)rÚinfileÚoutfileÚ preserve_modeÚpreserve_timesÚlinkr$rrrrgTs  zCommand.copy_filec Cstj||||||j |jd�S)N)r)rÚ copy_treerr)rrhrirjrkZpreserve_symlinksr$rrrrm]s zCommand.copy_treecCstj|||jd�S)N)r)rÚ move_filer)rÚsrcÚdstr$rrrrnfszCommand.move_filecCs ddlm}||||jd�dS)Nr)Úspawn)r)Zdistutils.spawnrqr)rÚcmdZ search_pathr$rqrrrrqjs z Command.spawnc Cstj|||||j||d�S)N)rÚownerÚgroup)rÚ make_archiver)rZ base_nameÚformatZroot_dirZbase_dirrsrtrrrruos zCommand.make_archivecCs„|dkrd|}t|tƒr"|f}nt|ttfƒs8tdƒ‚|dkrRd|dj|ƒf}|jsdtj||ƒrv|j ||||ƒn t j |ƒdS)Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r:rFÚtupler ÚjoinrrZ newer_groupr`rÚdebug)rZinfilesrirarbZexec_msgZskip_msgr$rrrÚ make_fileus  zCommand.make_file)Nr")r)N)N)N)r)r)Nr)rc)rrNr)rrrr)r)rr)NNNN)NNr)"rTÚ __module__Ú __qualname__r[rrr!rr r0r1r(r8r>r@rIrJrOrQr'rVrXrYrZr^r_r`rdrgrmrnrqrurzrrrrr sD0              r c@s2eZdZd gZdd„Zdd„Zdd „Zd d „Zd S)Ú install_miscú install-dir=Údú!directory to install the files tocCsd|_g|_dS)N)Ú install_dirÚoutfiles)rrrrr¡szinstall_misc.initialize_optionscCs|jd|dfƒdS)NZinstallr�)rV)rÚdirnamerrrÚ_install_dir_from¥szinstall_misc._install_dir_fromcCsRg|_|sdS|j|jƒx2|D]*}|j||jƒ|jjtjj|j|ƒƒq WdS)N)r‚rdr�rgr\rLrMrx)rZfilelistÚfrrrÚ _copy_files¨s  zinstall_misc._copy_filescCs|jS)N)r‚)rrrrÚ get_outputs±szinstall_misc.get_outputsN)r~rr€)rTr{r|r*rr„r†r‡rrrrr}šs  r})r5rLrDZdistutils.errorsrZ distutilsrrrrrrr r}rrrrÚs