mirror of https://github.com/python/cpython
[3.13] gh-119132: Update sys.version to identify free-threaded or not. (gh-119134) (#119153)
gh-119132: Update sys.version to identify free-threaded or not. (gh-119134)
(cherry picked from commit c141d43937
)
Co-authored-by: Donghee Na <donghee.na@python.org>
This commit is contained in:
parent
641e59db59
commit
ec88e9f686
|
@ -1153,17 +1153,16 @@ def _sys_version(sys_version=None):
|
|||
if result is not None:
|
||||
return result
|
||||
|
||||
sys_version_parser = re.compile(
|
||||
r'([\w.+]+)\s*' # "version<space>"
|
||||
r'\(#?([^,]+)' # "(#buildno"
|
||||
r'(?:,\s*([\w ]*)' # ", builddate"
|
||||
r'(?:,\s*([\w :]*))?)?\)\s*' # ", buildtime)<space>"
|
||||
r'\[([^\]]+)\]?', re.ASCII) # "[compiler]"
|
||||
|
||||
if sys.platform.startswith('java'):
|
||||
# Jython
|
||||
jython_sys_version_parser = re.compile(
|
||||
r'([\w.+]+)\s*' # "version<space>"
|
||||
r'\(#?([^,]+)' # "(#buildno"
|
||||
r'(?:,\s*([\w ]*)' # ", builddate"
|
||||
r'(?:,\s*([\w :]*))?)?\)\s*' # ", buildtime)<space>"
|
||||
r'\[([^\]]+)\]?', re.ASCII) # "[compiler]"
|
||||
name = 'Jython'
|
||||
match = sys_version_parser.match(sys_version)
|
||||
match = jython_sys_version_parser.match(sys_version)
|
||||
if match is None:
|
||||
raise ValueError(
|
||||
'failed to parse Jython sys.version: %s' %
|
||||
|
@ -1190,7 +1189,14 @@ def _sys_version(sys_version=None):
|
|||
|
||||
else:
|
||||
# CPython
|
||||
match = sys_version_parser.match(sys_version)
|
||||
cpython_sys_version_parser = re.compile(
|
||||
r'([\w.+]+)\s*' # "version<space>"
|
||||
r'(?:experimental free-threading build\s+)?' # "free-threading-build<space>"
|
||||
r'\(#?([^,]+)' # "(#buildno"
|
||||
r'(?:,\s*([\w ]*)' # ", builddate"
|
||||
r'(?:,\s*([\w :]*))?)?\)\s*' # ", buildtime)<space>"
|
||||
r'\[([^\]]+)\]?', re.ASCII) # "[compiler]"
|
||||
match = cpython_sys_version_parser.match(sys_version)
|
||||
if match is None:
|
||||
raise ValueError(
|
||||
'failed to parse CPython sys.version: %s' %
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
Update :data:`sys.version` to identify whether the build is default build or
|
||||
free-threading build. Patch By Donghee Na.
|
|
@ -6,7 +6,7 @@
|
|||
#include "patchlevel.h"
|
||||
|
||||
static int initialized = 0;
|
||||
static char version[250];
|
||||
static char version[300];
|
||||
|
||||
void _Py_InitVersion(void)
|
||||
{
|
||||
|
@ -14,7 +14,12 @@ void _Py_InitVersion(void)
|
|||
return;
|
||||
}
|
||||
initialized = 1;
|
||||
PyOS_snprintf(version, sizeof(version), "%.80s (%.80s) %.80s",
|
||||
#ifdef Py_GIL_DISABLED
|
||||
const char *buildinfo_format = "%.80s experimental free-threading build (%.80s) %.80s";
|
||||
#else
|
||||
const char *buildinfo_format = "%.80s (%.80s) %.80s";
|
||||
#endif
|
||||
PyOS_snprintf(version, sizeof(version), buildinfo_format,
|
||||
PY_VERSION, Py_GetBuildInfo(), Py_GetCompiler());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue