summaryrefslogtreecommitdiff
path: root/setuptools/dist.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2021-05-21 17:04:45 -0400
committerJason R. Coombs <jaraco@jaraco.com>2021-05-21 17:04:57 -0400
commit57002305daec1d31622927c0aea0d4e7df79ec40 (patch)
tree502c4719fe26a687703657c0c6da046aff30d654 /setuptools/dist.py
parentdc7eabef4ee59134c7c3f49604dd9131aebcde72 (diff)
downloadpython-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.py24
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: