@@ -1153,17 +1153,16 @@ def _sys_version(sys_version=None):
1153
1153
if result is not None :
1154
1154
return result
1155
1155
1156
- sys_version_parser = re .compile (
1157
- r'([\w.+]+)\s*' # "version<space>"
1158
- r'\(#?([^,]+)' # "(#buildno"
1159
- r'(?:,\s*([\w ]*)' # ", builddate"
1160
- r'(?:,\s*([\w :]*))?)?\)\s*' # ", buildtime)<space>"
1161
- r'\[([^\]]+)\]?' , re .ASCII ) # "[compiler]"
1162
-
1163
1156
if sys .platform .startswith ('java' ):
1164
1157
# Jython
1158
+ jython_sys_version_parser = re .compile (
1159
+ r'([\w.+]+)\s*' # "version<space>"
1160
+ r'\(#?([^,]+)' # "(#buildno"
1161
+ r'(?:,\s*([\w ]*)' # ", builddate"
1162
+ r'(?:,\s*([\w :]*))?)?\)\s*' # ", buildtime)<space>"
1163
+ r'\[([^\]]+)\]?' , re .ASCII ) # "[compiler]"
1165
1164
name = 'Jython'
1166
- match = sys_version_parser .match (sys_version )
1165
+ match = jython_sys_version_parser .match (sys_version )
1167
1166
if match is None :
1168
1167
raise ValueError (
1169
1168
'failed to parse Jython sys.version: %s' %
@@ -1190,7 +1189,14 @@ def _sys_version(sys_version=None):
1190
1189
1191
1190
else :
1192
1191
# CPython
1193
- match = sys_version_parser .match (sys_version )
1192
+ cpython_sys_version_parser = re .compile (
1193
+ r'([\w.+]+)\s*' # "version<space>"
1194
+ r'(?:experimental free-threading build\s+)?' # "free-threading-build<space>"
1195
+ r'\(#?([^,]+)' # "(#buildno"
1196
+ r'(?:,\s*([\w ]*)' # ", builddate"
1197
+ r'(?:,\s*([\w :]*))?)?\)\s*' # ", buildtime)<space>"
1198
+ r'\[([^\]]+)\]?' , re .ASCII ) # "[compiler]"
1199
+ match = cpython_sys_version_parser .match (sys_version )
1194
1200
if match is None :
1195
1201
raise ValueError (
1196
1202
'failed to parse CPython sys.version: %s' %
0 commit comments