Package: python3-pytoolconfig
Version: 1.3.1-5
Severity: minor
Tags: upstream
`utils.min_py_version()` and `utils.max_py_version()` probe the versions
from 3.4 to the running interpreter's minor version. When none of them
matches the specifier, both fall back to a value that the specifier does
not allow.
test.py:
from pytoolconfig.utils import max_py_version, min_py_version
print(min_py_version(">=3.15"), max_py_version(">=3.15"))
Actual:
Python 3.13: (3, 13) (3, 4)
Python 3.14: (3, 14) (3, 4)
- the minimum is the interpreter version, which `>=3.15` excludes;
- the maximum is 3.4, lower than the minimum and also excluded;
- the result depends on the interpreter running the tool.
Expected: `(3, 15)` as minimum. For the maximum, a value allowed by the
specifier, or `None` when it cannot be determined, rather than `(3, 4)`.
The `min_py_version` / `max_py_version` values of `UniversalConfig` are
computed with these functions, so tools reading them get the wrong
values too.
Reproduced with python3-pytoolconfig 1.3.1-5 (code unchanged in 1.3.1-6)
on Python 3.13 and 3.14, and with upstream main (bee6db4).
This is an upstream bug, it will be forwarded.
-- System Information:
Debian Release: forky/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 7.2.9+deb14-amd64 (SMP w/12 CPU threads; PREEMPT)
Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8), LANGUAGE=it
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled