@@ -1153,17 +1153,16 @@ def _sys_version(sys_version=None):
11531153 if result is not None :
11541154 return result
11551155
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-
11631156 if sys .platform .startswith ('java' ):
11641157 # 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]"
11651164 name = 'Jython'
1166- match = sys_version_parser .match (sys_version )
1165+ match = jython_sys_version_parser .match (sys_version )
11671166 if match is None :
11681167 raise ValueError (
11691168 'failed to parse Jython sys.version: %s' %
@@ -1190,7 +1189,14 @@ def _sys_version(sys_version=None):
11901189
11911190 else :
11921191 # 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 )
11941200 if match is None :
11951201 raise ValueError (
11961202 'failed to parse CPython sys.version: %s' %
0 commit comments