diff --git a/src/poetry/core/constraints/version/parser.py b/src/poetry/core/constraints/version/parser.py index 38aa337ec..630bcb833 100644 --- a/src/poetry/core/constraints/version/parser.py +++ b/src/poetry/core/constraints/version/parser.py @@ -39,6 +39,7 @@ def parse_constraint(constraints: str) -> VersionConstraint: return _parse_constraint(constraints=constraints) +@functools.cache def parse_marker_version_constraint( constraints: str, *, pep440: bool = True ) -> VersionConstraint: diff --git a/src/poetry/core/packages/specification.py b/src/poetry/core/packages/specification.py index 995ecf153..e38b4e7f3 100644 --- a/src/poetry/core/packages/specification.py +++ b/src/poetry/core/packages/specification.py @@ -40,10 +40,11 @@ def __init__( self._source_resolved_reference = source_resolved_reference self._source_subdirectory = source_subdirectory - if not features: - features = [] - - self._features = frozenset(canonicalize_name(feature) for feature in features) + self._features = ( + frozenset(canonicalize_name(feature) for feature in features) + if features + else frozenset() + ) @staticmethod def _normalize_source_url(