;ς _ιCc@s§dZdklZdklZdklZdklZdZd„Z d„Z e e d„Z e e d „Ze d „Ze d „Zd Zd ZdZd„ZdS(sSupport for reading and generating publication metadata files. Such files include the PKG-INFO files generated by `distutils` as well as the PUBLICATION.cfg files used by **zpkg**. :var PUBLICATION_CONF: The default name of the file containing publication data as used by **zpkg**. (sDistributionMetadata(s rfc822_escape(s HeaderParser(sStringIOsPUBLICATION.cfgcCsTd}|ip|ip|ip |iƒo d}n|dI|IJ|dI|iƒIJ|io|dI|i ƒIJn|i o|dI|i ƒIJn|io|dI|i ƒIJn|i o|dI|iƒIJn|io|d I|iƒIJn|io|d I|iƒIJn|io|d I|iƒIJn|io|d I|iƒIJn|io|d I|iIJn|io&t|iƒƒ}|dI|IJn|iƒ}|o|dIdi|ƒIJnx$|iƒD]}|dI|IJqWx$|iƒD]}|dI|IJq6WdS(s›Write package metadata to a file in PKG-INFO format. :param metadata: Metadata object to serialize. :param f: Open file object to write to. s1.0s1.1sMetadata-Version:sName:sVersion:sSummary:s Home-page:sAuthor:s Author-email:s Maintainer:sMaintainer-email:sLicense:s Download-URL:s Description:s Keywords:s, s Platform:s Classifier:N(smetadata_versionsmetadatas maintainersmaintainer_emailsurlsget_classifierssfsget_namesversions get_versions descriptionsget_descriptionsget_urlsauthors get_authors author_emailsget_author_emailsget_maintainersget_maintainer_emailslicenses get_licenseslong_descriptions rfc822_escapesget_long_descriptions long_descs get_keywordsskeywordssjoins get_platformssplatforms classifier(smetadatasfs long_descsmetadata_versionsplatformskeywordss classifier((sW/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/zpkgsetup/publication.pysdump&sH+              cCs$tƒ}t||ƒ|iƒSdS(sΉReturn package metadata serialized in PKG-INFO format. :return: String containing the serialized metadata. :rtype: str :param metadata: Metadata object to serialize. N(sStringIOssiosdumpsmetadatasgetvalue(smetadatassio((sW/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/zpkgsetup/publication.pysdumpsRs  cCs,tƒ}|i|ƒ}t|||ƒSdS(s₯Parse a PKG-INFO file and return a DistributionMetadata instance. :return: Populated metadata object. :rtype: `DistributionMetadata` :param versioninfo: Flag indicating whether version-specific information should be included. :param metadata: Metadata object which should be populated from the publication data. If omitted, a fresh `DistributionMetadata` instance will be used. N(s HeaderParsersparsersparsesfsmsgs_loadmsgs versioninfosmetadata(sfs versioninfosmetadatasparsersmsg((sW/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/zpkgsetup/publication.pysload`s  cCs,tƒ}|i|ƒ}t|||ƒSdS(sͺParse PKG-INFO source text and return a DistributionMetadata instance. :return: Populated metadata object. :rtype: `DistributionMetadata` :param versioninfo: Flag indicating whether version-specific information should be included. :param metadata: Metadata object which should be populated from the publication data. If omitted, a fresh `DistributionMetadata` instance will be used. N(s HeaderParsersparsersparsestrstextsmsgs_loadmsgs versioninfosmetadata(stexts versioninfosmetadatasparsersmsg((sW/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/zpkgsetup/publication.pysloadsss  cCs’|tjo tƒ}n|ot|dƒ|_nt|dƒ|_t|dƒ|_t|dƒ|_ t|dƒ|_ t|dƒ|_ t|dƒ|_ t|dƒ|_ t|d ƒ|_t|d ƒ|_t|d ƒ|_t|d d ƒ}gi}|idƒD]'}|iƒo||iƒƒqq~}|pt|_|idƒ}|o ||_n|idƒ}|o ||_n|SdS(NsVersions Download-URLsNamesAuthors Author-emails MaintainersMaintainer-emails Home-pagesLicensesSummarys DescriptionsKeywordsss,sPlatforms Classifier(smetadatasNonesDistributionMetadatas versioninfos_get_single_headersmsgsversions download_urlsnamesauthors author_emails maintainersmaintainer_emailsurlslicenses descriptionslong_descriptionskeywordssappends_[1]ssplitsssstripsget_alls platformss classifiers(smsgs versioninfosmetadatas platformss_[1]skeywordssss classifiers((sW/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/zpkgsetup/publication.pys_loadmsg†s0  G  cCss|i|ƒ}|ot|ƒdjotd|ƒ‚n|o'|d}|djotSqo|Sn|SdS(s…Return the value for a header that only occurs once in the input. :raises ValueError: If the header occurs more than once. is header %r can only be given onceisUNKNOWNN( smsgsget_allsnamesheadersslens ValueErrorsvsNonesdefault(smsgsnamesdefaultsheaderssv((sW/mnt/gmirror/ports/devel/py-zconfig/work/ZConfig-2.3.1/Support/zpkgsetup/publication.pys_get_single_header¦s  sDevelopment Status :: 3 - AlphasDevelopment Status :: 4 - Betas+Development Status :: 5 - Production/StablecCsΏ|i o|g|_dSnx™tt|iƒƒD]r}|i|}gi}|i ƒi dƒD]}||i ƒƒqe~}|ddjo||i|