From de487b421d4f30a32582106e49be915884d03c72 Mon Sep 17 00:00:00 2001 From: "maciej.skoski@gmail.com" Date: Sun, 2 Jan 2022 17:50:33 +0000 Subject: [PATCH 1/2] fix populate python constraints from markers --- src/poetry/core/factory.py | 5 +++++ tests/test_factory.py | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/src/poetry/core/factory.py b/src/poetry/core/factory.py index 67012287c..3ba819b4f 100644 --- a/src/poetry/core/factory.py +++ b/src/poetry/core/factory.py @@ -247,6 +247,7 @@ def create_dependency( from poetry.core.semver.helpers import parse_constraint from poetry.core.version.markers import AnyMarker from poetry.core.version.markers import parse_marker + from poetry.core.packages.utils.utils import get_python_constraint_from_marker if groups is None: groups = ["default"] @@ -366,6 +367,10 @@ def create_dependency( ) else: marker = parse_marker(markers) + # possibility that python constraint appears in markers, not keywords + if not python_versions and markers: + python_versions_marker = get_python_constraint_from_marker(marker) + python_versions = python_versions_marker if not marker.is_any(): dependency.marker = marker diff --git a/tests/test_factory.py b/tests/test_factory.py index 3a9d80d39..efecc0c66 100644 --- a/tests/test_factory.py +++ b/tests/test_factory.py @@ -231,3 +231,10 @@ def test_create_poetry_fails_with_invalid_dev_dependencies_iff_with_dev_is_true( Factory().create_poetry( fixtures_dir / "project_with_invalid_dev_deps", with_groups=False ) + +def test_create_dependency_python_constraint_populated_from_markers(): + constraint = {'version':'1.2.3.','markers':'python_version=="3.8" and sys_platform=="linux"'} + dependency = Factory().create_dependency('a',constraint) + + assert str(dependency._python_constraint) == '>=3.8,<3.9' + From 0388f3e59088da8f985472dfee3e61c494a33aab Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 2 Jan 2022 17:52:23 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- src/poetry/core/factory.py | 2 +- tests/test_factory.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/poetry/core/factory.py b/src/poetry/core/factory.py index 3ba819b4f..e263333b8 100644 --- a/src/poetry/core/factory.py +++ b/src/poetry/core/factory.py @@ -243,11 +243,11 @@ def create_dependency( from poetry.core.packages.file_dependency import FileDependency from poetry.core.packages.url_dependency import URLDependency from poetry.core.packages.utils.utils import create_nested_marker + from poetry.core.packages.utils.utils import get_python_constraint_from_marker from poetry.core.packages.vcs_dependency import VCSDependency from poetry.core.semver.helpers import parse_constraint from poetry.core.version.markers import AnyMarker from poetry.core.version.markers import parse_marker - from poetry.core.packages.utils.utils import get_python_constraint_from_marker if groups is None: groups = ["default"] diff --git a/tests/test_factory.py b/tests/test_factory.py index efecc0c66..073c255ff 100644 --- a/tests/test_factory.py +++ b/tests/test_factory.py @@ -232,9 +232,12 @@ def test_create_poetry_fails_with_invalid_dev_dependencies_iff_with_dev_is_true( fixtures_dir / "project_with_invalid_dev_deps", with_groups=False ) + def test_create_dependency_python_constraint_populated_from_markers(): - constraint = {'version':'1.2.3.','markers':'python_version=="3.8" and sys_platform=="linux"'} - dependency = Factory().create_dependency('a',constraint) - - assert str(dependency._python_constraint) == '>=3.8,<3.9' + constraint = { + "version": "1.2.3.", + "markers": 'python_version=="3.8" and sys_platform=="linux"', + } + dependency = Factory().create_dependency("a", constraint) + assert str(dependency._python_constraint) == ">=3.8,<3.9"