Skip to content

Commit 8e1e87c

Browse files
radoeringneersighted
authored andcommitted
env: add support for untagged CPython builds where platform.python_version() ends with a "+"
works around python/cpython#99968
1 parent 2a2abce commit 8e1e87c

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

src/poetry/utils/env/script_strings.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def _version_nodot(version):
8282
"platform_release": platform.release(),
8383
"platform_system": platform.system(),
8484
"platform_version": platform.version(),
85-
"python_full_version": platform.python_version(),
85+
"python_full_version": platform.python_version().rstrip("+"),
8686
"platform_python_implementation": platform.python_implementation(),
8787
"python_version": ".".join(platform.python_version_tuple()[:2]),
8888
"sys_platform": sys.platform,

src/poetry/utils/env/system_env.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ def get_marker_env(self) -> dict[str, Any]:
7171
"platform_release": platform.release(),
7272
"platform_system": platform.system(),
7373
"platform_version": platform.version(),
74-
"python_full_version": platform.python_version(),
74+
# Workaround for https://github.com/python/cpython/issues/99968
75+
"python_full_version": platform.python_version().rstrip("+"),
7576
"platform_python_implementation": platform.python_implementation(),
7677
"python_version": ".".join(platform.python_version().split(".")[:2]),
7778
"sys_platform": sys.platform,

tests/utils/env/test_system_env.py

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from __future__ import annotations
2+
3+
import sys
4+
5+
from pathlib import Path
6+
from typing import TYPE_CHECKING
7+
8+
from poetry.utils.env import SystemEnv
9+
10+
11+
if TYPE_CHECKING:
12+
from pytest_mock import MockerFixture
13+
14+
15+
def test_get_marker_env_untagged_cpython(mocker: MockerFixture) -> None:
16+
mocker.patch("platform.python_version", return_value="3.11.9+")
17+
env = SystemEnv(Path(sys.prefix))
18+
marker_env = env.get_marker_env()
19+
assert marker_env["python_full_version"] == "3.11.9"

0 commit comments

Comments
 (0)