a [dg@sddlZddlZddlZddlmZz ddlZWneyFdZYn0ddlTddlm 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 n@t|tsLt|j}d}|jfit}ttj|t|}|S)Nz>Warning: '{fieldname}' should be a list, got type '{typename}') isinstancestrlisttype__name__formatlocalsr WARN)value fieldnametypenamemsgrD/usr/local/lib/python3.9/site-packages/setuptools/_distutils/dist.py _ensure_lists   rc@s@eZdZgdZdZgdZddeDZddiZdHd d Zd d Z dIddZ ddZ dJddZ ddZ ddZddZddZddgfddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*ZdKd+d,ZdLd-d.ZdMd0d1Zejfd2d3Zd4d5Zd6d7Zd8d9Z d:d;Z!dd?Z#d@dAZ$dBdCZ%dDdEZ&dFdGZ'dS)N 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|dqS)rr).0xrrr zDistribution.rrNcCs\d|_d|_d|_|jD]}t||dqt|_|jjD] }d|}t||t|j|q:i|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|d}|dur8|d=|D]4\}}| |}|D]\} } d| f|| <qqd|vr~|d|d<|d=d } t!durnt!"| nt#j$%| d |D]\} } t&|jd | rt|jd | | nNt&|j| rt|j| | n0t&|| rt|| | nd t'| } t!"| qd |_(|j durP|j D].} | )ds6qP| dkr d|_(qPq |*dS)Nrrget_optionsz setup scriptr.r-z:'licence' distribution option is deprecated; use 'license' Zset_zUnknown distribution option: %sT-z --no-user-cfgF)+rdry_runr"display_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_filespassword command_objhave_rungetitemsget_option_dictwarningswarnsysstderrwritehasattrrepr want_user_cfg startswithfinalize_options)selfattrsattrbasenameZ method_namer=commandZ cmd_optionsopt_dictoptvalrkeyargrrr__init__s~                   zDistribution.__init__cCs&|j|}|dur"i}|j|<|SN)rKrV)rcrgdictrrrrX's zDistribution.get_option_dictr<c Csddlm}|dur"t|j}|dur@||||d}|sV||ddS|D]h}|j|}|dur||d|qZ||d|||}|dD]}||d|qqZdS)Nr)pformatz zno commands known yetzno option dict for '%s' commandzoption dict for '%s' command:r>)ZpprintrpsortedrKkeysannouncerVsplit) rcheadercommandsindentrpZcmd_namerhoutlinerrrdump_option_dicts2s*  zDistribution.dump_option_dictscCsg}ttjtjdj}tj|d}tj|rB| |tj dkrRd}nd}|j rtjtj d|}tj|r| |d}tj|r| |t r|dd ||S) N distutilsz distutils.cfgposixz.pydistutils.cfgzpydistutils.cfg~z setup.cfgzusing config files: %sz, )rospathdirnamer[modules__file__joinisfileappendr$r` expanduserr rs)rcfilesZsys_dirZsys_fileZ user_filenameZ user_fileZ local_filerrrfind_config_filesNs&       zDistribution.find_config_filesc Csddlm}tjtjkr"gd}ng}t|}|dur>|}trL|d|}|D]}trl|d|| || D]V}| |}| |}|D]8} | dkr| |vr| || } | dd} || f|| <qq~|qVd |jvr|jd D]\} \} } |j | } zF| r.t|| t|  n(| d vrJt|| t| n t|| | Wqty} zt| WYd} ~ qd} ~ 00qdS) 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@) configparserrr[r base_prefix frozensetrr rsreadZsectionsr=rXrVreplacermrKrW negative_optrBr ValueErrorDistutilsOptionError)rc filenamesrZignore_optionsparserfilenamesectionr=rhrirjsrcaliasrrrrparse_config_files~sD              zDistribution.parse_config_filescCs|}g|_t||j}||j|ddi|j|j|d}| }t |j | |rhdS|r|||}|durhdSqh|jr|j|t|jdk|jddS|jstddS)Nr.r-)argsobjectrdisplay_optionsrvzno commands suppliedT)_get_toplevel_optionsrvrrset_negative_aliasesrZ set_aliasesgetoptrJZget_option_orderr Z set_verbosityrhandle_display_options_parse_command_optsr" _show_helplenDistutilsArgError)rcZtoplevel_optionsrr option_orderrrrparse_command_lines.      zDistribution.parse_command_linecCs |jdgS)N)zcommand-packages=Nz0list of packages that provide distutils commands)global_optionsrcrrrrsz"Distribution._get_toplevel_optionsc Csddlm}|d}t|s*td||j|z||}Wn,typ}zt |WYd}~n d}~00t ||st d|t |drt |jtsd}t |||j}t |dr|}||jt |drt |jtrt|j}ng}||j|j|||||d d\}} t | d rX| jrX|j|d|gd dSt |drt |jtrd} |jD]F\} } } }t | || r|d } t|r|nt 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_optionsrr"rzYinvalid help function %r for help option '%s': must be a callable object (function, etc.)z command line) distutils.cmdr command_rematch SystemExitrvrget_command_classDistutilsModuleErrorr issubclassZDistutilsClassErrorr^r rrrcopyupdaterfix_help_optionsset_option_tablerrrr"rZ get_attr_namecallablerXvarsrW)rcrrrrgZ cmd_classrrrZoptsZhelp_option_foundZ help_optionZshortZdescfuncrhr$rrrrrsr                  z Distribution._parse_command_optscCsPdD]F}t|j|}|durqt|trdd|dD}t|j||qdS)Nr2r0cSsg|] }|qSrstrip)r7Zelmrrrr9kr:z1Distribution.finalize_options..,)rFrDr r rtrB)rcrerrrrrbas  zDistribution.finalize_optionsrc Csddlm}ddlm}|rR|r*|}n|j}||||jdt d|rt||j |dt d|j D]z}t |t rt||r|} n ||} t| drt | jtr|| jt| jn || j|d| jt dqzt ||jdS) Nr gen_usagerz Global options:r<zKInformation display options (just display information, ignore any commands)rzOptions for '%s' command:)distutils.corerrrrrr print_help common_usageprintrrvr rrrr^rrrrrrI) rcrrrrvrrr=rgklassrrrrns:           zDistribution._show_helpc Csddlm}|jr4|tdt||jdSd}i}|jD]}d||d<qB|D]l\}}|rX||rXt|}t |j d|}|dvrtd |n |dvrtd |nt|d}qX|S) Nrrr<rr;rr)r1r3r4r5r>) rrZ help_commandsprint_commandsrrIrrVrrFrDr) rcrrZany_display_optionsZis_display_optionoptionrirjrrrrrs*   z#Distribution.handle_display_optionsc Csht|d|D]R}|j|}|s.||}z |j}WntyNd}Yn0td|||fqdS)N:(no description available)z %-*s %s)rrGrVrr/AttributeError)rcrvru max_lengthcmdrr/rrrprint_command_lists      zDistribution.print_command_listcCsddl}|jj}i}|D] }d||<qg}|jD]}||s4||q4d}||D]}t||krZt|}qZ||d||rt ||d|dS)NrrzStandard commandszExtra commands) distutils.commandrg__all__rGrrrVrrrr)rcr{ std_commandsis_stdrextra_commandsrrrrrs.      zDistribution.print_commandsc Csddl}|jj}i}|D] }d||<qg}|jD]}||s4||q4g}||D]N}|j|}|sx||}z |j}Wnt yd}Yn0|||fqZ|S)Nrrr) rrgrrGrrrVrrr/r) rcr{rrrrrvrr/rrrget_command_lists(          zDistribution.get_command_listcCsN|j}t|tsJ|durd}dd|dD}d|vrD|dd||_|S)Nr<cSsg|]}|dkr|qS)r<r)r7Zpkgrrrr9"r:z5Distribution.get_command_packages..rzdistutils.commandr)rHr rrtinsert)rcZpkgsrrrget_command_packagess  z!Distribution.get_command_packagesc Cs|j|}|r|S|D]}d||f}|}zt|tj|}Wnty\YqYn0zt||}Wn$tyt d|||fYn0||j|<|St d|dS)Nz%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s') rGrVr __import__r[r ImportErrorrFrr)rcrgrZpkgname module_nameZ klass_namemodulerrrr(s,        zDistribution.get_command_classcCsl|j|}|sh|rhtr&|d|||}||}|j|<d|j|<|j|}|rh||||S)Nz.z1error in %s: command '%s' has no such option '%s')get_command_namerXr rsrWZboolean_optionsrrr r rBrr^rr) rcrTZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringrrrrrisF             z!Distribution._set_command_optionsrcCs|ddlm}t||s&|}||}n|}|js8|S|d|_d|j|<|||rx| D]}| ||qf|S)Nrr) rrr rrZ finalizedZinitialize_optionsrUrZget_sub_commandsreinitialize_command)rcrgZreinit_subcommandsrrsubrrrrs      z!Distribution.reinitialize_commandcCst||dSrnr )rcrlevelrrrrsszDistribution.announcecCs|jD]}||qdSrn)rv run_command)rcrrrr run_commandss zDistribution.run_commandscCsD|j|rdStd|||}||d|j|<dS)Nz running %sr)rUrVr inforZensure_finalizedrun)rcrgrrrrrs   zDistribution.run_commandcCst|jp|jpgdkSNr)rrLrMrrrrhas_pure_modulesszDistribution.has_pure_modulescCs|jot|jdkSr)rPrrrrrhas_ext_modulesszDistribution.has_ext_modulescCs|jot|jdkSr)rNrrrrrhas_c_librariesszDistribution.has_c_librariescCs|p|Srn)rrrrrr has_modulesszDistribution.has_modulescCs|jot|jdkSr)rOrrrrr has_headersszDistribution.has_headerscCs|jot|jdkSr)rQrrrrr has_scriptsszDistribution.has_scriptscCs|jot|jdkSr)rRrrrrrhas_data_filesszDistribution.has_data_filescCs|o| o| Srn)rrrrrrris_pures zDistribution.is_pure)N)NNr<)N)r)N)r)(r __module__ __qualname__rrrrArrmrXrzrrrrrrbrrrrrrrrrrr INFOrsrrrrrrrrrrrrrrr-sL ,  0 :C [  2(!" &  , ) rc@seZdZdZdAddZddZddZd 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)BrC)r$r%r( author_emailr*maintainer_emailr,r-r/long_descriptionr2r0r'r+Z contact_emailr1 download_urlr3r4r5NcCs|dur|t|nfd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dSrn) read_pkg_fileopenr$r%r(rr*rr,r-r/rr2r0r1rr3r4r5)rcrrrrrms&zDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d|_|d |_d|_|d |_|d |_ d vr|d |_ nd|_ |d|_ |d|_dvr|d d|_ |d|_|d|_|dkr|d|_|d|_|d|_nd|_d|_d|_dS)Ncs|}|dkrdS|SNZUNKNOWNr)r$rrrr _read_field)sz7DistributionMetadata.read_pkg_file.._read_fieldcs|d}|gkrdS|Srn)Zget_all)r$valuesrrr _read_list/s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionr$r%Zsummaryr(r)z home-pager-z download-urlr/r2rplatformZ classifier1.1r4r3r5)rr$r%r/r(r*rrr,r-rrrtr2r0r1r4r3r5)rcfilerrZmetadata_versionrrrr%s:                 z"DistributionMetadata.read_pkg_filecCsFttj|dddd}||Wdn1s80YdS)NzPKG-INFOwzUTF-8)encoding)rr~rrwrite_pkg_file)rcbase_dirZpkg_inforrrwrite_pkg_infoYs z#DistributionMetadata.write_pkg_infocCsbd}|js"|js"|js"|js"|jr&d}|d||d||d||d||d| |d| |d | |d | |jr|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)r3r4r5r1rr]get_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)rcrr%Z long_descr2rrrr `s6 z#DistributionMetadata.write_pkg_filecCs |D]}|d||fqdS)Nz%s: %s )r])rcrr$rrrrrrsz DistributionMetadata._write_listcCs |jpdSr)r$rrrrrszDistributionMetadata.get_namecCs |jpdS)Nz0.0.0)r%rrrrrsz DistributionMetadata.get_versioncCsd||fS)Nz%s-%s)rrrrrr get_fullnamesz!DistributionMetadata.get_fullnamecCs |jpdSr)r(rrrr get_authorszDistributionMetadata.get_authorcCs |jpdSr)rrrrrget_author_emailsz%DistributionMetadata.get_author_emailcCs |jpdSr)r*rrrrget_maintainersz#DistributionMetadata.get_maintainercCs |jpdSr)rrrrrget_maintainer_emailsz)DistributionMetadata.get_maintainer_emailcCs|jp|jpdSr)r*r(rrrrrsz DistributionMetadata.get_contactcCs|jp|jpdSr)rrrrrrrsz&DistributionMetadata.get_contact_emailcCs |jpdSr)r,rrrrrszDistributionMetadata.get_urlcCs |jpdSr)r-rrrrrsz DistributionMetadata.get_licensecCs |jpdSr)r/rrrrrsz$DistributionMetadata.get_descriptioncCs |jpdSr)rrrrrrsz)DistributionMetadata.get_long_descriptioncCs |jpgSrn)r2rrrrrsz!DistributionMetadata.get_keywordscCst|d|_dS)Nr2)rr2rcrrrr set_keywordssz!DistributionMetadata.set_keywordscCs |jp dgSr)r0rrrrrsz"DistributionMetadata.get_platformscCst|d|_dS)Nr0)rr0r"rrr set_platformssz"DistributionMetadata.set_platformscCs |jpgSrn)r1rrrrrsz$DistributionMetadata.get_classifierscCst|d|_dS)Nr1)rr1r"rrrset_classifierssz$DistributionMetadata.set_classifierscCs |jpdSr)rrrrrget_download_urlsz%DistributionMetadata.get_download_urlcCs |jpgSrn)r4rrrrrsz!DistributionMetadata.get_requirescCs,ddl}|D]}|j|q t||_dSr)distutils.versionpredicateversionpredicateVersionPredicaterr4rcrr{rrrr set_requiressz!DistributionMetadata.set_requirescCs |jpgSrn)r3rrrrrsz!DistributionMetadata.get_providescCs6dd|D}|D]}ddl}|j|q||_dS)NcSsg|] }|qSrr)r7rrrrr9r:z5DistributionMetadata.set_provides..r)r'r(Zsplit_provisionr3)rcrrr{rrr set_providess z!DistributionMetadata.set_providescCs |jpgSrn)r5rrrrrsz"DistributionMetadata.get_obsoletescCs,ddl}|D]}|j|q t||_dSr)r'r(r)rr5r*rrr set_obsoletessz"DistributionMetadata.set_obsoletes)N)$rrrrErmrr r rrrrrrr r!rrrrZ get_licencerrrr#rr$rr%r&rr+rr,rr-rrrrrCsB 4"rCcCs$g}|D]}||ddq|S)Nr)r)r=Z new_optionsZ help_tuplerrrrsr)r[r~reZemailrrYrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrr{r Zdistutils.debugr compilerrrrCrrrrrs2       Zc