Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions src/poetry/mixology/term.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@


if TYPE_CHECKING:
from collections.abc import Callable

from poetry.core.constraints.version import VersionConstraint
from poetry.core.packages.dependency import Dependency

Expand All @@ -23,8 +25,15 @@ class Term:
def __init__(self, dependency: Dependency, is_positive: bool) -> None:
self._dependency = dependency
self._positive = is_positive
self.relation = functools.lru_cache(maxsize=None)(self._relation)
self.intersect = functools.lru_cache(maxsize=None)(self._intersect)

# The caches are created lazily because most terms never need them.
@functools.cached_property
def relation(self) -> Callable[[Term], str]:
return functools.lru_cache(maxsize=None)(self._relation)

@functools.cached_property
def intersect(self) -> Callable[[Term], Term | None]:
return functools.lru_cache(maxsize=None)(self._intersect)

@property
def inverse(self) -> Term:
Expand Down
5 changes: 3 additions & 2 deletions src/poetry/repositories/http_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ def __init__(
pool_size=pool_size,
)
self._authenticator.add_repository(name, url)
self.get_page = functools.lru_cache(maxsize=None)(self._get_page)
self.get_page = functools.cache(self._get_page)
self._find_packages = functools.cache(self._find_packages_uncached) # type: ignore[method-assign]

self._lazy_wheel = config.get("solver.lazy-wheel", True)
self._max_retries = config.get("requests.max-retries", 0)
Expand Down Expand Up @@ -178,7 +179,7 @@ def _is_version_too_recent(self, links: Iterable[Link]) -> bool:
return True
return False

def _find_packages(
def _find_packages_uncached(
self, name: NormalizedName, constraint: VersionConstraint
) -> list[Package]:
"""
Expand Down
Loading