Buckets:
| from __future__ import annotations | |
| from typing import TYPE_CHECKING, Collection, Generic | |
| from ..structs import CT, RT, RequirementInformation | |
| if TYPE_CHECKING: | |
| from .criterion import Criterion | |
| class ResolverException(Exception): | |
| """A base class for all exceptions raised by this module. | |
| Exceptions derived by this class should all be handled in this module. Any | |
| bubbling pass the resolver should be treated as a bug. | |
| """ | |
| class RequirementsConflicted(ResolverException, Generic[RT, CT]): | |
| def __init__(self, criterion: Criterion[RT, CT]) -> None: | |
| super().__init__(criterion) | |
| self.criterion = criterion | |
| def __str__(self) -> str: | |
| return "Requirements conflict: {}".format( | |
| ", ".join(repr(r) for r in self.criterion.iter_requirement()), | |
| ) | |
| class InconsistentCandidate(ResolverException, Generic[RT, CT]): | |
| def __init__(self, candidate: CT, criterion: Criterion[RT, CT]): | |
| super().__init__(candidate, criterion) | |
| self.candidate = candidate | |
| self.criterion = criterion | |
| def __str__(self) -> str: | |
| return "Provided candidate {!r} does not satisfy {}".format( | |
| self.candidate, | |
| ", ".join(repr(r) for r in self.criterion.iter_requirement()), | |
| ) | |
| class ResolutionError(ResolverException): | |
| pass | |
| class ResolutionImpossible(ResolutionError, Generic[RT, CT]): | |
| def __init__(self, causes: Collection[RequirementInformation[RT, CT]]): | |
| super().__init__(causes) | |
| # causes is a list of RequirementInformation objects | |
| self.causes = causes | |
| class ResolutionTooDeep(ResolutionError): | |
| def __init__(self, round_count: int) -> None: | |
| super().__init__(round_count) | |
| self.round_count = round_count | |
Xet Storage Details
- Size:
- 1.77 kB
- Xet hash:
- a9e0dd8daa04cf3595c31248a9ea03b59e9fc6b766b3df0c9bb8c215273aafa3
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.