Skip to content

Commit 98d9fdf

Browse files
authored
Merge pull request #10600 from nadavwe/vendoring-new-resolve-lib-version
2 parents d01dd4a + 93f5bf7 commit 98d9fdf

File tree

10 files changed

+32
-30
lines changed

10 files changed

+32
-30
lines changed

news/resolvelib.vendor.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Upgrade resolvelib to 0.8.1

src/pip/_vendor/resolvelib/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,16 @@
1111
"ResolutionTooDeep",
1212
]
1313

14-
__version__ = "0.8.0"
14+
__version__ = "0.8.1"
1515

1616

1717
from .providers import AbstractProvider, AbstractResolver
1818
from .reporters import BaseReporter
1919
from .resolvers import (
2020
InconsistentCandidate,
2121
RequirementsConflicted,
22-
Resolver,
2322
ResolutionError,
2423
ResolutionImpossible,
2524
ResolutionTooDeep,
25+
Resolver,
2626
)
Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
__version__: str
22

3-
from .providers import (
4-
AbstractResolver as AbstractResolver,
5-
AbstractProvider as AbstractProvider,
6-
)
3+
from .providers import AbstractProvider as AbstractProvider
4+
from .providers import AbstractResolver as AbstractResolver
75
from .reporters import BaseReporter as BaseReporter
8-
from .resolvers import (
9-
InconsistentCandidate as InconsistentCandidate,
10-
RequirementsConflicted as RequirementsConflicted,
11-
Resolver as Resolver,
12-
ResolutionError as ResolutionError,
13-
ResolutionImpossible as ResolutionImpossible,
14-
ResolutionTooDeep as ResolutionTooDeep,
15-
)
6+
from .resolvers import InconsistentCandidate as InconsistentCandidate
7+
from .resolvers import RequirementsConflicted as RequirementsConflicted
8+
from .resolvers import ResolutionError as ResolutionError
9+
from .resolvers import ResolutionImpossible as ResolutionImpossible
10+
from .resolvers import ResolutionTooDeep as ResolutionTooDeep
11+
from .resolvers import Resolver as Resolver

src/pip/_vendor/resolvelib/providers.pyi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ from typing import (
1212

1313
from .reporters import BaseReporter
1414
from .resolvers import RequirementInformation
15-
from .structs import KT, RT, CT, Matches
15+
from .structs import CT, KT, RT, Matches
1616

1717
class Preference(Protocol):
1818
def __lt__(self, __other: Any) -> bool: ...

src/pip/_vendor/resolvelib/reporters.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ def adding_requirement(self, requirement, parent):
3030
requirements passed in from ``Resolver.resolve()``.
3131
"""
3232

33+
def resolving_conflicts(self, causes):
34+
"""Called when starting to attempt requirement conflict resolution.
35+
36+
:param causes: The information on the collision that caused the backtracking.
37+
"""
38+
3339
def backtracking(self, candidate):
3440
"""Called when rejecting a candidate during backtracking."""
3541

src/pip/_vendor/resolvelib/reporters.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ class BaseReporter:
77
def ending(self, state: Any) -> Any: ...
88
def adding_requirement(self, requirement: Any, parent: Any) -> Any: ...
99
def backtracking(self, candidate: Any) -> Any: ...
10+
def resolving_conflicts(self, causes: Any) -> Any: ...
1011
def pinning(self, candidate: Any) -> Any: ...

src/pip/_vendor/resolvelib/resolvers.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from .providers import AbstractResolver
55
from .structs import DirectedGraph, IteratorMapping, build_iter_view
66

7-
87
RequirementInformation = collections.namedtuple(
98
"RequirementInformation", ["requirement", "parent"]
109
)
@@ -374,12 +373,12 @@ def resolve(self, requirements, max_rounds):
374373
failure_causes = self._attempt_to_pin_criterion(name)
375374

376375
if failure_causes:
376+
causes = [i for c in failure_causes for i in c.information]
377377
# Backtrack if pinning fails. The backtrack process puts us in
378378
# an unpinned state, so we can work on it in the next round.
379+
self._r.resolving_conflicts(causes=causes)
379380
success = self._backtrack()
380-
self.state.backtrack_causes[:] = [
381-
i for c in failure_causes for i in c.information
382-
]
381+
self.state.backtrack_causes[:] = causes
383382

384383
# Dead ends everywhere. Give up.
385384
if not success:

src/pip/_vendor/resolvelib/resolvers.pyi

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,7 @@ from typing import (
99
)
1010

1111
from .providers import AbstractProvider, AbstractResolver
12-
from .structs import (
13-
CT,
14-
KT,
15-
RT,
16-
DirectedGraph,
17-
IterableView,
18-
)
12+
from .structs import CT, KT, RT, DirectedGraph, IterableView
1913

2014
# This should be a NamedTuple, but Python 3.6 has a bug that prevents it.
2115
# https://stackoverflow.com/a/50531189/1376863

src/pip/_vendor/resolvelib/structs.pyi

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,22 @@ from typing import (
55
Generic,
66
Iterable,
77
Iterator,
8+
Mapping,
89
Tuple,
910
TypeVar,
1011
Union,
1112
)
1213

13-
KT = TypeVar("KT")
14-
RT = TypeVar("RT")
15-
CT = TypeVar("CT")
14+
KT = TypeVar("KT") # Identifier.
15+
RT = TypeVar("RT") # Requirement.
16+
CT = TypeVar("CT") # Candidate.
1617
_T = TypeVar("_T")
18+
1719
Matches = Union[Iterable[CT], Callable[[], Iterator[CT]]]
1820

21+
class IteratorMapping(Mapping[KT, _T], metaclass=ABCMeta):
22+
pass
23+
1924
class IterableView(Container[CT], Iterable[CT], metaclass=ABCMeta):
2025
pass
2126

src/pip/_vendor/vendor.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ requests==2.26.0
1414
chardet==4.0.0
1515
idna==3.2
1616
urllib3==1.26.7
17-
resolvelib==0.8.0
17+
resolvelib==0.8.1
1818
setuptools==44.0.0
1919
six==1.16.0
2020
tenacity==8.0.1

0 commit comments

Comments
 (0)