Skip to content

Commit de4bdcf

Browse files
committed
Change pkg_resources.Requirement to be a subclass of packaging
1 parent 0ed33b7 commit de4bdcf

3 files changed

Lines changed: 9 additions & 16 deletions

File tree

pkg_resources/__init__.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2754,33 +2754,26 @@ def parse_requirements(strs):
27542754
yield Requirement(line)
27552755

27562756

2757-
class Requirement:
2757+
class Requirement(packaging.requirements.Requirement):
27582758
def __init__(self, requirement_string):
27592759
"""DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!"""
27602760
try:
2761-
self.req = packaging.requirements.Requirement(requirement_string)
2761+
super(Requirement, self).__init__(requirement_string)
27622762
except packaging.requirements.InvalidRequirement as e:
27632763
raise RequirementParseError(str(e))
2764-
self.unsafe_name = self.req.name
2765-
project_name = safe_name(self.req.name)
2766-
self.project_name, self.key = project_name, project_name.lower()
2767-
self.specifier = self.req.specifier
2764+
self.unsafe_name = self.name
2765+
self.project_name, self.key = self.name, self.name.lower()
27682766
self.specs = [
2769-
(spec.operator, spec.version) for spec in self.req.specifier]
2770-
self.extras = tuple(map(safe_extra, self.req.extras))
2771-
self.marker = self.req.marker
2772-
self.url = self.req.url
2767+
(spec.operator, spec.version) for spec in self.specifier]
2768+
self.extras = tuple(map(safe_extra, self.extras))
27732769
self.hashCmp = (
27742770
self.key,
27752771
self.specifier,
27762772
frozenset(self.extras),
2777-
str(self.marker)
2773+
str(self.marker) if self.marker else None,
27782774
)
27792775
self.__hash = hash(self.hashCmp)
27802776

2781-
def __str__(self):
2782-
return str(self.req)
2783-
27842777
def __eq__(self, other):
27852778
return (
27862779
isinstance(other, Requirement) and

pkg_resources/tests/test_resources.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ def testOptionsAndHashing(self):
394394
"twisted",
395395
packaging.specifiers.SpecifierSet(">=1.2"),
396396
frozenset(["foo","bar"]),
397-
'None'
397+
None
398398
))
399399
)
400400

setuptools/command/easy_install.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,7 @@ def process_distribution(self, requirement, dist, deps=True, *info):
710710
elif requirement is None or dist not in requirement:
711711
# if we wound up with a different version, resolve what we've got
712712
distreq = dist.as_requirement()
713-
requirement = Requirement(str(distreq.req))
713+
requirement = Requirement(str(distreq))
714714
log.info("Processing dependencies for %s", requirement)
715715
try:
716716
distros = WorkingSet([]).resolve(

0 commit comments

Comments
 (0)