summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Kowalik <steven@wedontsleep.org>2016-03-07 10:33:25 +1100
committerSteve Kowalik <steven@wedontsleep.org>2016-03-07 10:33:25 +1100
commitde4bdcffb9f11769465ba3b6bb67cfb8a5b196e2 (patch)
tree4cba92e3e008b8bab32684f343ba912dc47d861b
parent0ed33b7a4db605e4608f56d6bdb5efe81762b4cb (diff)
downloadpython-setuptools-git-de4bdcffb9f11769465ba3b6bb67cfb8a5b196e2.tar.gz
Change pkg_resources.Requirement to be a subclass of packaging
-rw-r--r--pkg_resources/__init__.py21
-rw-r--r--pkg_resources/tests/test_resources.py2
-rwxr-xr-xsetuptools/command/easy_install.py2
3 files changed, 9 insertions, 16 deletions
diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py
index 2fb7bc51..af336deb 100644
--- a/pkg_resources/__init__.py
+++ b/pkg_resources/__init__.py
@@ -2754,33 +2754,26 @@ def parse_requirements(strs):
yield Requirement(line)
-class Requirement:
+class Requirement(packaging.requirements.Requirement):
def __init__(self, requirement_string):
"""DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!"""
try:
- self.req = packaging.requirements.Requirement(requirement_string)
+ super(Requirement, self).__init__(requirement_string)
except packaging.requirements.InvalidRequirement as e:
raise RequirementParseError(str(e))
- self.unsafe_name = self.req.name
- project_name = safe_name(self.req.name)
- self.project_name, self.key = project_name, project_name.lower()
- self.specifier = self.req.specifier
+ self.unsafe_name = self.name
+ self.project_name, self.key = self.name, self.name.lower()
self.specs = [
- (spec.operator, spec.version) for spec in self.req.specifier]
- self.extras = tuple(map(safe_extra, self.req.extras))
- self.marker = self.req.marker
- self.url = self.req.url
+ (spec.operator, spec.version) for spec in self.specifier]
+ self.extras = tuple(map(safe_extra, self.extras))
self.hashCmp = (
self.key,
self.specifier,
frozenset(self.extras),
- str(self.marker)
+ str(self.marker) if self.marker else None,
)
self.__hash = hash(self.hashCmp)
- def __str__(self):
- return str(self.req)
-
def __eq__(self, other):
return (
isinstance(other, Requirement) and
diff --git a/pkg_resources/tests/test_resources.py b/pkg_resources/tests/test_resources.py
index 16fc3198..5f084001 100644
--- a/pkg_resources/tests/test_resources.py
+++ b/pkg_resources/tests/test_resources.py
@@ -394,7 +394,7 @@ class TestRequirements:
"twisted",
packaging.specifiers.SpecifierSet(">=1.2"),
frozenset(["foo","bar"]),
- 'None'
+ None
))
)
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
index 97de3395..0733065e 100755
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -710,7 +710,7 @@ class easy_install(Command):
elif requirement is None or dist not in requirement:
# if we wound up with a different version, resolve what we've got
distreq = dist.as_requirement()
- requirement = Requirement(str(distreq.req))
+ requirement = Requirement(str(distreq))
log.info("Processing dependencies for %s", requirement)
try:
distros = WorkingSet([]).resolve(