Skip to content

Commit cc8c659

Browse files
dimblebyneersighted
authored andcommitted
normalize python_versions on packages
1 parent f6e8b58 commit cc8c659

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

src/poetry/core/packages/package.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from poetry.core.packages.dependency_group import MAIN_GROUP
1616
from poetry.core.packages.specification import PackageSpecification
1717
from poetry.core.packages.utils.utils import create_nested_marker
18+
from poetry.core.packages.utils.utils import get_python_constraint_from_marker
1819
from poetry.core.semver.helpers import parse_constraint
1920
from poetry.core.version.markers import parse_marker
2021

@@ -255,10 +256,11 @@ def python_versions(self) -> str:
255256
@python_versions.setter
256257
def python_versions(self, value: str) -> None:
257258
self._python_versions = value
258-
self._python_constraint = parse_constraint(value)
259+
constraint = parse_constraint(value)
259260
self._python_marker = parse_marker(
260-
create_nested_marker("python_version", self._python_constraint)
261+
create_nested_marker("python_version", constraint)
261262
)
263+
self._python_constraint = get_python_constraint_from_marker(self._python_marker)
262264

263265
@property
264266
def python_constraint(self) -> VersionConstraint:

tests/packages/test_package.py

+11
Original file line numberDiff line numberDiff line change
@@ -527,3 +527,14 @@ def test_package_pep592_yanked(
527527

528528
assert package.yanked == expected_yanked
529529
assert package.yanked_reason == expected_yanked_reason
530+
531+
532+
def test_python_versions_are_normalized() -> None:
533+
package = Package("foo", "1.2.3")
534+
package.python_versions = ">3.6,<=3.10"
535+
536+
assert (
537+
str(package.python_marker)
538+
== 'python_version > "3.6" and python_version <= "3.10"'
539+
)
540+
assert str(package.python_constraint) == ">=3.7,<3.11"

0 commit comments

Comments
 (0)