]> granicus.if.org Git - python/commitdiff
Fix last patch to be backwards-compatible with Python 1.5.2 .
authorBrett Cannon <bcannon@gmail.com>
Thu, 25 Mar 2004 18:32:11 +0000 (18:32 +0000)
committerBrett Cannon <bcannon@gmail.com>
Thu, 25 Mar 2004 18:32:11 +0000 (18:32 +0000)
Bumped version micro number.

Lib/platform.py

index 7015044db3b154a374fa965db171025cc9e697fd..3dc9106fe9fde3db0d545d9fed1ea88345a10b36 100755 (executable)
@@ -31,6 +31,7 @@
 #      Colin Kong, Trent Mick
 #
 #    History:
+#    1.0.2 - fix a bug with caching of value for platform()
 #    1.0.1 - reformatted to make doc.py happy
 #    1.0.0 - reformatted a bit and checked into Python CVS
 #    0.8.0 - added sys.version parser and various new access
@@ -102,7 +103,7 @@ __copyright__ = """
 
 """
 
-__version__ = '1.0.1'
+__version__ = '1.0.2'
 
 import sys,string,os,re
 
@@ -1135,8 +1136,10 @@ def python_compiler():
 
 ### The Opus Magnum of platform strings :-)
 
-_platform_cache = {True:None, False:None}
-_platform_aliased_cache = {True:None, False:None}
+_platform_cache_terse = None
+_platform_cache_not_terse = None
+_platform_aliased_cache_terse = None
+_platform_aliased_cache_not_terse = None
 
 def platform(aliased=0, terse=0):
 
@@ -1157,12 +1160,17 @@ def platform(aliased=0, terse=0):
         absolute minimum information needed to identify the platform.
 
     """
-    global _platform_cache,_platform_aliased_cache
-
-    if not aliased and (_platform_cache[bool(terse)] is not None):
-        return _platform_cache[bool(terse)]
-    elif _platform_aliased_cache[bool(terse)] is not None:
-        return _platform_aliased_cache[bool(terse)]
+    global _platform_cache_terse, _platform_cache_not_terse
+    global _platform_aliased_cache_terse, _platform_aliased_cache_not_terse
+
+    if not aliased and terse and (_platform_cache_terse is not None):
+        return _platform_cache_terse
+    elif not aliased and not terse and (_platform_cache_not_terse is not None):
+        return _platform_cache_not_terse
+    elif terse and _platform_aliased_cache_terse is not None:
+        return _platform_aliased_cache_terse
+    elif not terse and _platform_aliased_cache_not_terse is not None:
+        return _platform_aliased_cache_not_terse
 
     # Get uname information and then apply platform specific cosmetics
     # to it...
@@ -1218,12 +1226,17 @@ def platform(aliased=0, terse=0):
             bits,linkage = architecture(sys.executable)
             platform = _platform(system,release,machine,processor,bits,linkage)
 
-    if aliased:
-        _platform_aliased_cache[bool(terse)] = platform
+    if aliased and terse:
+        _platform_aliased_cache_terse = platform
+    elif aliased and not terse:
+        _platform_aliased_cache_not_terse = platform
     elif terse:
         pass
     else:
-        _platform_cache[bool(terse)] = platform
+        if terse:
+            _platform_cache_terse = platform
+        else:
+            _platform_cache_not_terse = platform
     return platform
 
 ### Command line interface