Cpython sys.version parser in platform.py bug and resolution?
To whom this may concern; I am contacting you in the hope that I may provide help to others by addressing a possible, very small bug (assuming I diagnosed and solved the issue correctly). No need to contact me since I consider my solution as sufficient. I ran into an exception today from a program running plaftorm.py using python version 2.7.5. Here is the code in platform.py that produced the exception (line 1454) match = _sys_version_parser.match(sys_version) if match is None: raise ValueError( 'failed to parse CPython sys.version: %s' % repr(sys_version)) This results from the following regular expression: _sys_version_parser = re.compile( r'([\w.+]+)\s*' '\|[^|]*\|\s*' # version extra '\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*' '\[([^\]]+)\]?') At least on my computer, CPython does not have "version extra". So I simply removed the second part of the regular expression and put it into a new object: _cpython_sys_version_parser = re.compile( r'([\w.+]+)\s*' '\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*' '\[([^\]]+)\]?') I then called this object for cpython, and it appears to have worked (fingers crossed). Thanks, Brandon Zerbe
participants (1)
-
Zerbe, Brandon