diff options
| author | Jason R. Coombs <jaraco@jaraco.com> | 2019-02-19 17:52:15 -0500 |
|---|---|---|
| committer | Jason R. Coombs <jaraco@jaraco.com> | 2019-02-19 17:52:15 -0500 |
| commit | 2063cffefaa644e5948f50eddd524a0df23c8eb0 (patch) | |
| tree | 0b111fcf6d44bea368397421241118e555b3256b /setuptools/dist.py | |
| parent | 78996f70807b9e0e50bc68c7579b339fedb7cade (diff) | |
| download | external_python_setuptools-2063cffefaa644e5948f50eddd524a0df23c8eb0.tar.gz external_python_setuptools-2063cffefaa644e5948f50eddd524a0df23c8eb0.tar.bz2 external_python_setuptools-2063cffefaa644e5948f50eddd524a0df23c8eb0.zip | |
Store 'provides_extras' as an ordered list to retain order.
Diffstat (limited to 'setuptools/dist.py')
| -rw-r--r-- | setuptools/dist.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py index ddb1787a..f03f3862 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -31,6 +31,7 @@ from setuptools.extern import packaging from setuptools.extern.six.moves import map, filter, filterfalse from . import SetuptoolsDeprecationWarning +from .itertools_recipes import unique_everseen from setuptools.depends import Require from setuptools import windows_support @@ -408,7 +409,7 @@ class Distribution(_Distribution): _DISTUTILS_UNSUPPORTED_METADATA = { 'long_description_content_type': None, 'project_urls': dict, - 'provides_extras': set, + 'provides_extras': list, } _patched_dist = None @@ -493,14 +494,14 @@ class Distribution(_Distribution): if getattr(self, 'python_requires', None): self.metadata.python_requires = self.python_requires - if getattr(self, 'extras_require', None): - for extra in self.extras_require.keys(): - # Since this gets called multiple times at points where the - # keys have become 'converted' extras, ensure that we are only - # truly adding extras we haven't seen before here. - extra = extra.split(':')[0] - if extra: - self.metadata.provides_extras.add(extra) + # Since this gets called multiple times at points where the + # keys have become 'converted' extras, ensure that we are only + # truly adding extras we haven't seen before here. + raw_extra_names = filter(None, unique_everseen( + extra.split(':')[0] + for extra in getattr(self, 'extras_require', None) or {} + )) + self.metadata.provides_extras.extend(raw_extra_names) self._convert_extras_requirements() self._move_install_requirements_markers() |
