summaryrefslogtreecommitdiff
path: root/setuptools/dist.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2017-07-23 14:10:33 -0400
committerJason R. Coombs <jaraco@jaraco.com>2017-07-23 14:41:37 -0400
commit171fc767992f55f10186b6ded6ea2875328d0827 (patch)
tree12715ce1b660319639c5b28487f5cdb1b5bd1680 /setuptools/dist.py
parent3e6409381946eba193533c9a9a968af9be1231f2 (diff)
downloadpython-setuptools-git-171fc767992f55f10186b6ded6ea2875328d0827.tar.gz
Extract two methods (still interdependent) for fixing requires
Diffstat (limited to 'setuptools/dist.py')
-rw-r--r--setuptools/dist.py28
1 files changed, 19 insertions, 9 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py
index 2b720b53..ad50a8ef 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -356,21 +356,31 @@ class Distribution(Distribution_parse_config_files, _Distribution):
def _finalize_requires(self):
"""
Fix environment markers in `install_requires` and `extras_require`.
+ """
+ self._convert_extras_requirements()
+ self._move_install_requirements_markers()
- - move requirements in `install_requires` that are using environment
- markers or extras to `extras_require`.
- - convert requirements in `extras_require` of the form
- `"extra": ["barbazquux; {marker}"]` to
- `"extra:{marker}": ["barbazquux"]`.
+ def _convert_extras_requirements(self):
+ """
+ Convert requirements in `extras_require` of the form
+ `"extra": ["barbazquux; {marker}"]` to
+ `"extra:{marker}": ["barbazquux"]`.
"""
- extras_require = defaultdict(list)
spec_ext_reqs = getattr(self, 'extras_require', None) or {}
+ self._tmp_extras_require = defaultdict(list)
for k, v in spec_ext_reqs.items():
for r in pkg_resources.parse_requirements(v):
if r.marker:
k += ':' + str(r.marker)
r.marker = None
- extras_require[k].append(r)
+ self._tmp_extras_require[k].append(r)
+
+ def _move_install_requirements_markers(self):
+ """
+ Move requirements in `install_requires` that are using environment
+ markers or extras to `extras_require`.
+ """
+
install_requires = []
spec_inst_reqs = getattr(self, 'install_requires', None) or ()
for r in pkg_resources.parse_requirements(spec_inst_reqs):
@@ -385,10 +395,10 @@ class Distribution(Distribution_parse_config_files, _Distribution):
section = e
if marker:
section += ':' + str(marker)
- extras_require[section].append(r)
+ self._tmp_extras_require[section].append(r)
self.extras_require = dict(
(k, [str(r) for r in v])
- for k, v in extras_require.items()
+ for k, v in self._tmp_extras_require.items()
)
self.install_requires = [str(r) for r in install_requires]