mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	#8964: fix platform._sys_version to handle IronPython 2.6+.
This commit is contained in:
		
							parent
							
								
									c318442571
								
							
						
					
					
						commit
						f076f53386
					
				
					 4 changed files with 33 additions and 3 deletions
				
			
		|  | @ -1248,6 +1248,14 @@ def processor(): | |||
|     '(?: \(([\d\.]+)\))?' | ||||
|     ' on (.NET [\d\.]+)', re.ASCII) | ||||
| 
 | ||||
| # IronPython covering 2.6 and 2.7 | ||||
| _ironpython26_sys_version_parser = re.compile( | ||||
|     r'([\d.]+)\s*' | ||||
|     '\(IronPython\s*' | ||||
|     '[\d.]+\s*' | ||||
|     '\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)' | ||||
| ) | ||||
| 
 | ||||
| _pypy_sys_version_parser = re.compile( | ||||
|     r'([\w.+]+)\s*' | ||||
|     '\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*' | ||||
|  | @ -1285,19 +1293,24 @@ def _sys_version(sys_version=None): | |||
|         return result | ||||
| 
 | ||||
|     # Parse it | ||||
|     if sys_version[:10] == 'IronPython': | ||||
|     if 'IronPython' in sys_version: | ||||
|         # IronPython | ||||
|         name = 'IronPython' | ||||
|         if sys_version.startswith('IronPython'): | ||||
|             match = _ironpython_sys_version_parser.match(sys_version) | ||||
|         else: | ||||
|             match = _ironpython26_sys_version_parser.match(sys_version) | ||||
| 
 | ||||
|         if match is None: | ||||
|             raise ValueError( | ||||
|                 'failed to parse IronPython sys.version: %s' % | ||||
|                 repr(sys_version)) | ||||
| 
 | ||||
|         version, alt_version, compiler = match.groups() | ||||
|         buildno = '' | ||||
|         builddate = '' | ||||
| 
 | ||||
|     elif sys.platform[:4] == 'java': | ||||
|     elif sys.platform.startswith('java'): | ||||
|         # Jython | ||||
|         name = 'Jython' | ||||
|         match = _sys_version_parser.match(sys_version) | ||||
|  |  | |||
|  | @ -91,15 +91,28 @@ def test_sys_version(self): | |||
|                 ("CPython", "2.6.1", "tags/r261", "67515", | ||||
|                  ('r261:67515', 'Dec  6 2008 15:26:00'), | ||||
|                  'GCC 4.0.1 (Apple Computer, Inc. build 5370)'), | ||||
| 
 | ||||
|             ("IronPython 2.0 (2.0.0.0) on .NET 2.0.50727.3053", None, "cli") | ||||
|             : | ||||
|                 ("IronPython", "2.0.0", "", "", ("", ""), | ||||
|                  ".NET 2.0.50727.3053"), | ||||
| 
 | ||||
|             ("2.6.1 (IronPython 2.6.1 (2.6.10920.0) on .NET 2.0.50727.1433)", None, "cli") | ||||
|             : | ||||
|                 ("IronPython", "2.6.1", "", "", ("", ""), | ||||
|                  ".NET 2.0.50727.1433"), | ||||
| 
 | ||||
|             ("2.7.4 (IronPython 2.7.4 (2.7.0.40) on Mono 4.0.30319.1 (32-bit))", None, "cli") | ||||
|             : | ||||
|                 ("IronPython", "2.7.4", "", "", ("", ""), | ||||
|                  "Mono 4.0.30319.1 (32-bit)"), | ||||
| 
 | ||||
|             ("2.5 (trunk:6107, Mar 26 2009, 13:02:18) \n[Java HotSpot(TM) Client VM (\"Apple Computer, Inc.\")]", | ||||
|             ('Jython', 'trunk', '6107'), "java1.5.0_16") | ||||
|             : | ||||
|                 ("Jython", "2.5.0", "trunk", "6107", | ||||
|                  ('trunk:6107', 'Mar 26 2009'), "java1.5.0_16"), | ||||
| 
 | ||||
|             ("2.5.2 (63378, Mar 26 2009, 18:03:29)\n[PyPy 1.0.0]", | ||||
|              ('PyPy', 'trunk', '63378'), self.save_platform) | ||||
|             : | ||||
|  |  | |||
|  | @ -791,6 +791,7 @@ Nick Mathewson | |||
| Simon Mathieu | ||||
| Laura Matson | ||||
| Graham Matthews | ||||
| Martin Matusiak | ||||
| Dieter Maurer | ||||
| Daniel May | ||||
| Madison May | ||||
|  |  | |||
|  | @ -78,6 +78,9 @@ Core and Builtins | |||
| Library | ||||
| ------- | ||||
| 
 | ||||
| - Issue #8964: fix platform._sys_version to handle IronPython 2.6+. | ||||
|   Patch by Martin Matusiak. | ||||
| 
 | ||||
| - Issue #16038: CVE-2013-1752: ftplib: Limit amount of data read by | ||||
|   limiting the call to readline().  Original patch by Michał | ||||
|   Jastrzębski and Giampaolo Rodola. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Ezio Melotti
						Ezio Melotti