U e5dŸFã@s^ddlZddlZddlZddlmZddlmZmZmZm Z m Z ddlm Z Gdd„dƒ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ƒ‚||_| ¡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.8/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| ¡d|_dS)Né)rÚfinalize_options©rrrrÚensure_finalizediszCommand.ensure_finalizedcCstd|jƒ‚dS©Nz,abstract method -- subclass %s must override©rrr"rrrr{s ÿzCommand.initialize_optionscCstd|jƒ‚dSr$r%r"rrrr!ˆs ÿzCommand.finalize_optionsNÚcCsšddlm}|dkr d| ¡}|j||tjd�|d}|jD]R\}}}| |¡}|ddkrn|dd…}t||ƒ}|j|d||ftjd�qBdS) Nr)Ú longopt_xlatezcommand options for '%s':)Úlevelz éÿÿÿÿú=z%s = %s) Zdistutils.fancy_getoptr'Úget_command_nameÚannouncer ÚINFOZ user_optionsÚ translater)rÚheaderÚindentr'ÚoptionrÚvaluerrrÚ dump_options—s      ÿzCommand.dump_optionscCstd|jƒ‚dSr$r%r"rrrÚrun¥s ÿz Command.runr cCst ||¡dS©Nr)rÚmsgr(rrrr,²szCommand.announcecCs&ddlm}|r"t|ƒtj ¡dS)Nr)ÚDEBUG)Zdistutils.debugr7ÚprintÚsysÚstdoutÚflush)rr6r7rrrÚ 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)rr1ÚwhatÚdefaultÚvalrrrÚ_ensure_stringlikeÏs   ÿzCommand._ensure_stringlikecCs| |d|¡dS)NÚstring)rB)rr1r@rrrÚ ensure_stringÙszCommand.ensure_stringcCspt||ƒ}|dkrdSt|tƒr6t||t d|¡ƒn6t|tƒrTtdd„|Dƒƒ}nd}|sltd||fƒ‚dS)Nz,\s*|\s+css|]}t|tƒVqdSr5)r r>)Ú.0ÚvrrrÚ ìsz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r>r=ÚreÚsplitÚlistÚallr)rr1rAÚokrrrÚensure_string_listßs   ÿÿzCommand.ensure_string_listcCs6| |||¡}|dk r2||ƒs2td|||fƒ‚dS)Nzerror in '%s' option: )rBr)rr1Ztesterr?Z error_fmtr@rArrrÚ_ensure_tested_stringôs ÿzCommand._ensure_tested_stringcCs| |tjjdd¡dS)NÚfilenamez$'%s' does not exist or is not a file)rNÚosÚpathÚisfile©rr1rrrÚensure_filenameûs þzCommand.ensure_filenamecCs| |tjjdd¡dS)Nzdirectory namez)'%s' does not exist or is not a directory)rNrPrQÚisdirrSrrrÚensure_dirnames þzCommand.ensure_dirnamecCst|dƒr|jS|jjSdS)NÚ command_name)ÚhasattrrWrÚ__name__r"rrrr+ s zCommand.get_command_namecGsF|j |¡}| ¡|D](\}}t||ƒdkrt||t||ƒƒqdSr5)rÚget_command_objr#rr=)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrÚset_undefined_optionss   zCommand.set_undefined_optionscCs|j ||¡}| ¡|Sr5)rrZr#)rÚcommandZcreateZcmd_objrrrÚget_finalized_command$szCommand.get_finalized_commandrcCs|j ||¡Sr5)rÚreinitialize_command)rr\Zreinit_subcommandsrrrr^0sÿzCommand.reinitialize_commandcCs|j |¡dSr5)rÚ run_command)rr\rrrr_4szCommand.run_commandcCs2g}|jD]"\}}|dks"||ƒr | |¡q |Sr5)Ú sub_commandsÚappend)rZcommandsZcmd_nameÚmethodrrrÚget_sub_commands;s  zCommand.get_sub_commandscCst d| ¡|¡dS)Nzwarning: %s: %s )r Úwarnr+)rr6rrrrdKsz Command.warncCstj||||jd�dS©N©r)rÚexecuter)rÚfuncÚargsr6r(rrrrgNszCommand.executeéÿcCstj|||jd�dSre)rÚmkpathr)rÚnameÚmoderrrrkQszCommand.mkpathc Cstj|||||j ||jd�Sre)rÚ copy_filerr)rÚinfileÚoutfileÚ preserve_modeÚpreserve_timesÚlinkr(rrrrnTs  þzCommand.copy_filec Cstj||||||j |jd�Sre)rÚ copy_treerr)rrorprqrrZpreserve_symlinksr(rrrrt]s  þzCommand.copy_treecCstj|||jd�Sre)rÚ move_filer)rÚsrcZdstr(rrrrufszCommand.move_filecCs ddlm}||||jd�dS)Nr)Úspawnrf)Zdistutils.spawnrwr)rÚcmdZ search_pathr(rwrrrrwjs z Command.spawnc Cstj|||||j||d�S)N)rÚownerÚgroup)rÚ make_archiver)rZ base_nameÚformatZroot_dirZbase_dirryrzrrrr{os  þzCommand.make_archivecCs„|dkrd|}t|tƒr"|f}nt|ttfƒs8tdƒ‚|dkrRd|d |¡f}|jsdt ||¡rv|  ||||¡n t   |¡dS)Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r>rJÚtupler ÚjoinrrZ newer_grouprgr Údebug)rZinfilesrprhriZexec_msgZskip_msgr(rrrÚ make_fileus  ÿzCommand.make_file)Nr&)r )N)N)N)r )r)Nr )rj)r r Nr )r r rr )r )r r )NNNN)NNr )"rYÚ __module__Ú __qualname__r`rrr#rr!r3r4r,r<rBrDrMrNrTrVr+r[r]r^r_rcrdrgrkrnrtrurwr{r€rrrrr sX0     ÿ    ÿ ÿ  ÿ ÿr ) r9rPrHZdistutils.errorsrZ distutilsrrrrrr r rrrrÚs