|
2 | 2 | from logging import getLogger |
3 | 3 | import os |
4 | 4 | import sys |
| 5 | +import sysconfig |
5 | 6 | from typing import Any, Dict, Iterable, List |
6 | 7 |
|
7 | 8 | from tox.config.cli.parser import Parsed |
@@ -163,25 +164,27 @@ def get_python_version_keys() -> List[str]: |
163 | 164 |
|
164 | 165 | Examples: |
165 | 166 | - CPython 3.8.z => [3.8, 3] |
| 167 | + - CPython 3.14.z free-threading build => [3.14t, 3t] |
166 | 168 | - PyPy 3.6 (v7.3.z) => [pypy-3.6, pypy-3, pypy3] |
167 | 169 | - Pyston based on Python CPython 3.8.8 (v2.2) => [pyston-3.8, pyston-3] |
168 | 170 |
|
169 | 171 | """ |
170 | 172 | major_version = str(sys.version_info[0]) |
171 | 173 | major_minor_version = ".".join([str(i) for i in sys.version_info[:2]]) |
| 174 | + suffix = "t" if sysconfig.get_config_var("Py_GIL_DISABLED") == 1 else "" |
172 | 175 | if "PyPy" in sys.version: |
173 | 176 | return [ |
174 | | - "pypy-" + major_minor_version, |
175 | | - "pypy-" + major_version, |
| 177 | + "pypy-" + major_minor_version + suffix, |
| 178 | + "pypy-" + major_version + suffix, |
176 | 179 | ] |
177 | 180 | elif hasattr(sys, "pyston_version_info"): # Pyston |
178 | 181 | return [ |
179 | | - "pyston-" + major_minor_version, |
180 | | - "pyston-" + major_version, |
| 182 | + "pyston-" + major_minor_version + suffix, |
| 183 | + "pyston-" + major_version + suffix, |
181 | 184 | ] |
182 | 185 | else: |
183 | 186 | # Assume this is running on CPython |
184 | | - return [major_minor_version, major_version] |
| 187 | + return [major_minor_version + suffix, major_version + suffix] |
185 | 188 |
|
186 | 189 |
|
187 | 190 | def is_running_on_actions() -> bool: |
|
0 commit comments