File tree 3 files changed +9
-4
lines changed
src/pip/_internal/resolution/resolvelib 3 files changed +9
-4
lines changed Original file line number Diff line number Diff line change
1
+ Improve performance of dependency resolution.
Original file line number Diff line number Diff line change 18
18
cast ,
19
19
)
20
20
21
- from pip ._vendor .packaging .requirements import InvalidRequirement
22
- from pip ._vendor .packaging .requirements import Requirement as PackagingRequirement
21
+ from pip ._vendor .packaging .requirements import (
22
+ InvalidRequirement ,
23
+ get_or_create_requirement ,
24
+ )
23
25
from pip ._vendor .packaging .specifiers import SpecifierSet
24
26
from pip ._vendor .packaging .utils import NormalizedName , canonicalize_name
25
27
from pip ._vendor .resolvelib import ResolutionImpossible
@@ -365,7 +367,7 @@ def find_candidates(
365
367
# If the current identifier contains extras, add explicit candidates
366
368
# from entries from extra-less identifier.
367
369
with contextlib .suppress (InvalidRequirement ):
368
- parsed_requirement = PackagingRequirement (identifier )
370
+ parsed_requirement = get_or_create_requirement (identifier )
369
371
explicit_candidates .update (
370
372
self ._iter_explicit_candidates_from_base (
371
373
requirements .get (parsed_requirement .name , ()),
Original file line number Diff line number Diff line change @@ -657,13 +657,15 @@ def test_parse_editable_local_extras(
657
657
{"bar" , "baz" },
658
658
)
659
659
660
+
660
661
def test_get_or_create_caching () -> None :
661
662
"""test caching of get_or_create requirement"""
662
663
teststr = "affinegap==1.10"
663
664
assert get_or_create_requirement (teststr ) == Requirement (teststr )
664
- assert not (get_or_create_requirement (teststr ) is Requirement (teststr ))
665
+ assert not (get_or_create_requirement (teststr ) is Requirement (teststr ))
665
666
assert get_or_create_requirement (teststr ) is get_or_create_requirement (teststr )
666
667
668
+
667
669
def test_exclusive_environment_markers () -> None :
668
670
"""Make sure RequirementSet accepts several excluding env markers"""
669
671
eq36 = install_req_from_line ("Django>=1.6.10,<1.7 ; python_version == '3.6'" )
You can’t perform that action at this time.
0 commit comments