diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2021-05-21 17:04:45 -0400 |
|---|---|---|
| committer | Jason R. Coombs <jaraco@jaraco.com> | 2021-05-21 17:04:57 -0400 |
| commit | 57002305daec1d31622927c0aea0d4e7df79ec40 (patch) | |
| tree | 502c4719fe26a687703657c0c6da046aff30d654 /setuptools/dist.py | |
| parent | dc7eabef4ee59134c7c3f49604dd9131aebcde72 (diff) | |
| download | python-setuptools-git-57002305daec1d31622927c0aea0d4e7df79ec40.tar.gz | |
Extract _set_metadata_defaults method and collapse the implementation to a much simpler form.
Diffstat (limited to 'setuptools/dist.py')
| -rw-r--r-- | setuptools/dist.py | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py index 24aef1bb..96c82409 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -403,7 +403,7 @@ class Distribution(_Distribution): """ _DISTUTILS_UNSUPPORTED_METADATA = { - 'long_description_content_type': None, + 'long_description_content_type': lambda: None, 'project_urls': dict, 'provides_extras': ordered_set.OrderedSet, 'license_files': ordered_set.OrderedSet, @@ -442,22 +442,22 @@ class Distribution(_Distribution): if k not in self._DISTUTILS_UNSUPPORTED_METADATA }) - # Fill-in missing metadata fields not supported by distutils. - # Note some fields may have been set by other tools (e.g. pbr) - # above; they are taken preferrentially to setup() arguments - for option, default in self._DISTUTILS_UNSUPPORTED_METADATA.items(): - for source in self.metadata.__dict__, attrs: - if option in source: - value = source[option] - break - else: - value = default() if default else None - setattr(self.metadata, option, value) + self._set_metadata_defaults(attrs) self.metadata.version = self._normalize_version( self._validate_version(self.metadata.version)) self._finalize_requires() + def _set_metadata_defaults(self, attrs): + """ + Fill-in missing metadata fields not supported by distutils. + Some fields may have been set by other tools (e.g. pbr). + Those fields (vars(self.metadata)) take precedence to + supplied attrs. + """ + for option, default in self._DISTUTILS_UNSUPPORTED_METADATA.items(): + vars(self.metadata).setdefault(option, attrs.get(option, default())) + @staticmethod def _normalize_version(version): if isinstance(version, setuptools.sic) or version is None: |
