o ?Og@s ddlZddlZddlZddlmZzddlZWn ey$dZYnwddlTddlm Z m Z ddl m Z m Z mZddlmZddlmZedZd d ZGd d d ZGd ddZddZdS)N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escapelog)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$cCsPt|tr |St|ts&t|j}d|d|d}ttj|t|}|S)Nz Warning: 'z' should be a list, got type '') isinstancestrlisttype__name__r ZWARN)valueZ fieldnametypenamemsgr5/opt/alt/python310/lib64/python3.10/distutils/dist.py _ensure_lists  rc@sBeZdZ gdZdZgdZddeDZddiZdHd d Zd d Z dIddZ ddZ dHddZ ddZ ddZddZddZddgfddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*ZdJd+d,ZdHd-d.ZdKd0d1Zejfd2d3Zd4d5Zd6d7Zd8d9Z d:d;Z!dd?Z#d@dAZ$dBdCZ%dDdEZ&dFdGZ'dS)L Distribution))verbosevzrun verbosely (default))quietqz!run quietly (turns verbosity off))zdry-runnzdon't actually do anything)helphzshow detailed help message)z no-user-cfgNz-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package ))z help-commandsNzlist all available commands)nameNzprint package name)versionVzprint package version)fullnameNzprint -)authorNzprint the author's name) author-emailNz print the author's email address) maintainerNzprint the maintainer's name)zmaintainer-emailNz$print the maintainer's email address)contactNz7print the maintainer's name if known, else the author's)z contact-emailNz@print the maintainer's email address if known, else the author's)urlNzprint the URL for this package)licenseNz print the license of the package)licenceNzalias for --license) descriptionNzprint the package description)zlong-descriptionNz"print the long package description) platformsNzprint the list of platforms) classifiersNzprint the list of classifiers)keywordsNzprint the list of keywords)providesNz+print the list of packages/modules provided)requiresNz+print the list of packages/modules required) obsoletesNz0print the list of packages/modules made obsoletecCsg|]}t|dqSrr).0xrrr szDistribution.rrNcCsF d|_d|_d|_|jD]}t||dq t|_|jjD]}d|}t||t|j|qi|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|d}|dur|d=|D]\}}| |}|D] \} } d| f|| <qqd|vr|d|d<|d=d } t!durt!"| nt#j$%| d |D]<\} } t&|jd | rt|jd | | qt&|j| rt|j| | qt&|| rt|| | qd t'| } t!"| qd |_(|j dur|j D]} | )dsn | dkrd|_(nq|*dS)Nrrget_optionsz setup scriptr+r*z:'licence' distribution option is deprecated; use 'license' Zset_zUnknown distribution option: %sT-z --no-user-cfgF)+rdry_runrdisplay_option_namessetattrDistributionMetadatametadata_METHOD_BASENAMESgetattrcmdclasscommand_packages script_name script_argscommand_optionsZ dist_filespackagesZ package_dataZ package_dir py_modules librariesheaders ext_modulesZ ext_packageZ include_dirsZ extra_pathscripts data_filesZpassword command_objhave_rungetitemsget_option_dictwarningswarnsysstderrwritehasattrrepr want_user_cfg startswithfinalize_options)selfZattrsattrbasenameZ method_namer:commandZ cmd_optionsopt_dictoptvalrkeyargrrr__init__s                  zDistribution.__init__cCs( |j|}|duri}|j|<|SN)rHrR)r_rbdictrrrrT&s  zDistribution.get_option_dictr9c Csddlm}|durt|j}|dur ||||d}|s+||ddS|D]4}|j|}|durC||d|q-||d|||}|dD] }||d|qUq-dS)Nr)pformatz zno commands known yetzno option dict for '%s' commandzoption dict for '%s' command:r;)ZpprintrksortedrHkeysannouncerRsplit) r_headercommandsindentrkZcmd_namercoutlinerrrdump_option_dicts1s.  zDistribution.dump_option_dictscCs g}ttjtjdj}tj|d}tj|r"| |tj dkr*d}nd}|j rEtjtj d|}tj|rE| |d}tj|rR| |t r^|dd ||S) N distutilsz distutils.cfgposixz.pydistutils.cfgzpydistutils.cfg~z setup.cfgzusing config files: %sz, )rospathdirnamerWmodules__file__joinisfileappendr!r\ expanduserr rn)r_filesZsys_dirZsys_fileZ user_filenameZ user_fileZ local_filerrrfind_config_filesMs(       zDistribution.find_config_filesc Cs|ddlm}tjtjkrgd}ng}t|}|dur|}tr&|d|}|D]D}tr6|d|| || D]+}| |}| |}|D]} | dkri| |vri| || } | dd} || f|| <qMq?|q+d |jvr|jd D]?\} \} } |j | } z!| rt|| t|  n| d vrt|| t| nt|| | Wq|ty} zt| d} ~ wwdSdS) Nr) ConfigParser) z install-basezinstall-platbasez install-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptsz install-dataprefixz exec-prefixhomeuserrootz"Distribution.parse_config_files():z reading %srr<_global)rr=)Z configparserrrWr base_prefix frozensetrr rnreadZsectionsr:rTrRreplacerhrHrS negative_optr?r ValueErrorDistutilsOptionError)r_ filenamesrZignore_optionsparserfilenameZsectionr:rcrdresrcaliasrrrrparse_config_files}sR               zDistribution.parse_config_filescCs |}g|_t||j}||j|ddi|j|j|d}| }t |j | |r5dS|rE|||}|durCdS|s7|jrX|j|t|jdk|jddS|js_tddS)Nr+r*)argsobjectrdisplay_optionsrqzno commands suppliedT)_get_toplevel_optionsrqrrset_negative_aliasesrZ set_aliasesgetoptrGZget_option_orderr Z set_verbosityrhandle_display_options_parse_command_optsr _show_helplenDistutilsArgError)r_Ztoplevel_optionsrr option_orderrrrparse_command_lines2       zDistribution.parse_command_linecCs |jdgS)N)zcommand-packages=Nz0list of packages that provide distutils commands)global_optionsr_rrrrsz"Distribution._get_toplevel_optionsc Cs ddlm}|d}t|std||j|z||}Wnty3}zt |d}~wwt ||s?t d|t |drJt |jtsRd}t |||j}t |drd|}||jt |drut |jtrut|j}ng}||j|j|||||d d\}} t | d r| jr|j|d|gd dSt |drt |jtrd} |jD] \} } } }t | || rd } t|r|qt d || fq| rdS||}t| D] \}}d |f||<q|S)NrCommandzinvalid command name '%s'z&command class %s must subclass Command user_optionszIcommand class %s must provide 'user_options' attribute (a list of tuples)r help_optionsrrrzYinvalid help function %r for help option '%s': must be a callable object (function, etc.)z command line) distutils.cmdr command_rematch SystemExitrqrget_command_classDistutilsModuleErrorr issubclassZDistutilsClassErrorrZr rrrcopyupdaterfix_help_optionsset_option_tablerrrrrZ get_attr_namecallablerTvarsrS)r_rrrrbZ cmd_classrrrZoptsZhelp_option_foundZ help_optionZshortZdescfuncrcr!rrrrrsz                  z Distribution._parse_command_optscCsR dD]#}t|j|}|durqt|tr&dd|dD}t|j||qdS)Nr/r-cSg|]}|qSrstrip)r5Zelmrrrr7jz1Distribution.finalize_options..,)rCrAr rror?)r_r`rrrrr^`s  zDistribution.finalize_optionsrc Cs  ddlm}ddlm}|r*|r|}n|j}||||jdt d|r;||j |dt d|j D]=}t |t rMt||rM|} n||} t| drit | jtri|| jt| jn|| j|d| jt dq>t ||jdS) Nr gen_usagerz Global options:r9zKInformation display options (just display information, ignore any commands)rzOptions for '%s' command:)distutils.corerrrrrrZ print_help common_usageprintrrqr rrrrZrrrrrrF) r_rrrrqrrr:rbklassrrrrms<          zDistribution._show_helpc Cs ddlm}|jr|tdt||jdSd}i}|jD]}d||d<q"|D]6\}}|rc||rct|}t |j d|}|dvrQtd |n|dvr]td |nt|d}q-|S) Nrrr9rr8rr)r.r0r1r2r;) rrZ help_commandsprint_commandsrrFrrRrrCrAr~) r_rrZany_display_optionsZis_display_optionoptionrdrerrrrrs.   z#Distribution.handle_display_optionsc Csj t|d|D])}|j|}|s||}z|j}Wn ty(d}Ynwtd|||fq dS)N:(no description available)z %-*s %s)rrDrRrr,AttributeError)r_rqrp max_lengthcmdrr,rrrprint_command_lists     zDistribution.print_command_listcCs ddl}|jj}i}|D]}d||<q g}|jD] }||s'||qd}||D] }t||kr:t|}q.||d||rPt ||d|dSdS)NrrzStandard commandszExtra commands) distutils.commandrb__all__rDrmrRrrrr)r_rv std_commandsis_stdrextra_commandsrrrrrs6     zDistribution.print_commandsc Cs ddl}|jj}i}|D]}d||<q g}|jD] }||s'||qg}||D]'}|j|}|s=||}z|j}Wn t yMd}Ynw|||fq.|S)Nrrr) rrbrrDrmrRrrr,r) r_rvrrrrZrvrr,rrrget_command_lists.        zDistribution.get_command_listcCsP |j}t|ts&|durd}dd|dD}d|vr#|dd||_|S)Nr9cSsg|] }|dkr|qS)r9r)r5Zpkgrrrr7!sz5Distribution.get_command_packages..rzdistutils.commandr)rEr rroinsert)r_Zpkgsrrrget_command_packagess  z!Distribution.get_command_packagesc Cs |j|}|r |S|D]?}d||f}|}z t|tj|}Wn ty-Yqwzt||}WntyEt d|||fw||j|<|St d|)Nz%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s') rDrRr __import__rWr| ImportErrorrCrr)r_rbrZpkgnameZ module_nameZ klass_namemodulerrrr's2       zDistribution.get_command_classcCsn |j|}|s5|r5tr|d|||}||}|j|<d|j|<|j|}|r5||||S)Nz.z1error in %s: command '%s' has no such option '%s')get_command_namerTr rnrSZboolean_optionsrrr rr?rrZrr) r_rPZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringrrrrrhsT         z!Distribution._set_command_optionsrcCs~ ddlm}t||s|}||}n|}|js|S|d|_d|j|<|||r=| D]}| ||q4|S)Nrr) rrr rrZ finalizedZinitialize_optionsrQrZget_sub_commandsreinitialize_command)r_rbZreinit_subcommandsrrsubrrrrs       z!Distribution.reinitialize_commandcCst||dSrir )r_rlevelrrrrnzDistribution.announcecCs |jD]}||qdSri)rq run_command)r_rrrr run_commandss  zDistribution.run_commandscCsF |j|r dStd|||}||d|j|<dS)Nz running %sr)rQrRr inforZensure_finalizedrun)r_rbrrrrrs   zDistribution.run_commandcCst|jp|jpgdkSNr)rrIrJrrrrhas_pure_modulesszDistribution.has_pure_modulescC|jo t|jdkSr)rMrrrrrhas_ext_moduleszDistribution.has_ext_modulescCrr)rKrrrrrhas_c_librariesrzDistribution.has_c_librariescCs|p|Sri)rrrrrr has_modulesrzDistribution.has_modulescCrr)rLrrrrr has_headersrzDistribution.has_headerscCrr)rNrrrrr has_scriptsrzDistribution.has_scriptscCrr)rOrrrrrhas_data_filesrzDistribution.has_data_filescCs|o | o | Sri)rrrrrrris_pures zDistribution.is_pureri)NNr9)rr3)(r __module__ __qualname__rrrr>rrhrTrurrrrrr^rrrrrrrrrrr INFOrnrrrrrrrrrrrrrrr,sP ,   0:C [  2(!" &  ,)  rc@seZdZ dZdAddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"ZeZd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Z d;d<Z!d=d>Z"d?d@Z#dS)Br@)r!r"r% author_emailr'maintainer_emailr)r*r,long_descriptionr/r-r$r(Z contact_emailr. download_urlr0r1r2NcCs|dur |t|dSd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dSri) read_pkg_fileopenr!r"r%rr'rr)r*r,rr/r-r.rr0r1r2)r_rzrrrrh s& zDistributionMetadata.__init__cs t|fdd}fdd}d}|d|_|d|_|d|_|d |_d|_|d |_d|_|d |_|d |_ d vrH|d |_ nd|_ |d|_ |d|_dvra|d d|_ |d|_|d|_|dkr|d|_|d|_|d|_dSd|_d|_d|_dS)Ncs|}|dkr dS|SNZUNKNOWNr)r!rrrr _read_field(sz7DistributionMetadata.read_pkg_file.._read_fieldcs|d}|gkr dS|Sri)Zget_all)r!valuesrrr _read_list.s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionr!r"Zsummaryr%r&z home-pager*z download-urlr,r/rplatformZ classifier1.1r1r0r2)rr!r"r,r%r'rrr)r*rrror/r-r.r1r0r2)r_filerrZmetadata_versionrrrr$s<                 z"DistributionMetadata.read_pkg_filecCsJ ttj|dddd}||WddS1swYdS)NzPKG-INFOwzUTF-8)encoding)rryrzr~write_pkg_file)r_Zbase_dirZpkg_inforrrwrite_pkg_infoXs "z#DistributionMetadata.write_pkg_infocCsb d}|js|js|js|js|jrd}|d||d||d||d||d| |d| |d | |d | |jre|d |jt |}|d |d |}|r|d|||d|||d|||d|||d|||d|dS)Nz1.0rzMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s ZPlatformZ ClassifierZRequiresZProvidesZ Obsoletes)r0r1r2r.rrYget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenserget_long_descriptionr~ get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)r_rr"Z long_descr/rrrr_s8 z#DistributionMetadata.write_pkg_filecCs |D] }|d||fqdS)Nz%s: %s )rY)r_rr!rrrrrrsz DistributionMetadata._write_listcC |jpdSr)r!rrrrr zDistributionMetadata.get_namecCr)Nz0.0.0)r"rrrrr rz DistributionMetadata.get_versioncCsd||fS)Nz%s-%s)rr rrrr get_fullnamerz!DistributionMetadata.get_fullnamecCrr)r%rrrr get_authorrzDistributionMetadata.get_authorcCrr)rrrrrget_author_emailrz%DistributionMetadata.get_author_emailcCrr)r'rrrrget_maintainerrz#DistributionMetadata.get_maintainercCrr)rrrrrget_maintainer_emailrz)DistributionMetadata.get_maintainer_emailcC|jp|jpdSr)r'r%rrrrr rz DistributionMetadata.get_contactcCrr)rrrrrrr rz&DistributionMetadata.get_contact_emailcCrr)r)rrrrr rzDistributionMetadata.get_urlcCrr)r*rrrrrrz DistributionMetadata.get_licensecCrr)r,rrrrr rz$DistributionMetadata.get_descriptioncCrr)rrrrrrrz)DistributionMetadata.get_long_descriptioncC |jpgSri)r/rrrrrrz!DistributionMetadata.get_keywordscCt|d|_dS)Nr/)rr/r_rrrr set_keywordsrz!DistributionMetadata.set_keywordscCs |jpdgSr)r-rrrrrs z"DistributionMetadata.get_platformscCr )Nr-)rr-r!rrr set_platformsrz"DistributionMetadata.set_platformscCrri)r.rrrrrrz$DistributionMetadata.get_classifierscCr )Nr.)rr.r!rrrset_classifiersrz$DistributionMetadata.set_classifierscCrr)rrrrrget_download_urlrz%DistributionMetadata.get_download_urlcCrri)r1rrrrrrz!DistributionMetadata.get_requirescC,ddl}|D]}|j|qt||_dSr)distutils.versionpredicateversionpredicateVersionPredicaterr1r_rrvrrrr set_requiresz!DistributionMetadata.set_requirescCrri)r0rrrrrrz!DistributionMetadata.get_providescCs6dd|D}|D] }ddl}|j|q ||_dS)NcSrrr)r5rrrrr7rz5DistributionMetadata.set_provides..r)r'r(Zsplit_provisionr0)r_rrrvrrr set_providess  z!DistributionMetadata.set_providescCrri)r2rrrrrrz"DistributionMetadata.get_obsoletescCr&r)r'r(r)rr2r*rrr set_obsoletesr,z"DistributionMetadata.set_obsoletesri)$rrrrBrhrrrrrr rrrrrr r r rZ get_licencer rrr"rr#rr$r%rr+rr-rr.rrrrr@sF 4" r@cCs& g}|D] }||ddq|S)Nr)r)r:Z new_optionsZ help_tuplerrrrs r)rWryreZemailrrUrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrrvr Zdistutils.debugr compilerrrr@rrrrrs8      Z c