get rid of issequence and just use the isinstance builtin
authorNathan Binkert <binkertn@umich.edu>
Tue, 15 Mar 2005 18:22:47 +0000 (13:22 -0500)
committerNathan Binkert <binkertn@umich.edu>
Tue, 15 Mar 2005 18:22:47 +0000 (13:22 -0500)
--HG--
extra : convert_revision : eca99aa35ad5c5c1c86325f55cf693ff585c9826

python/m5/config.py
util/stats/display.py
util/stats/info.py
util/stats/print.py

index a9d7a2f41cf696c48b47424a9672988c3f7bb870..182acf393e82b651fbb690c6da6263392b8a012a 100644 (file)
@@ -35,9 +35,6 @@ try:
 except:
     noDot = True
 
-def issequence(value):
-    return isinstance(value, tuple) or isinstance(value, list)
-
 class Singleton(type):
     def __call__(cls, *args, **kwargs):
         if hasattr(cls, '_instance'):
@@ -181,7 +178,7 @@ def isSimObject(value):
         return False
 
 def isSimObjSequence(value):
-    if not issequence(value):
+    if not isinstance(value, (list, tuple)):
         return False
 
     for val in value:
@@ -455,7 +452,7 @@ class MetaConfigNode(type):
         if isNullPointer(child) or instance.top_child_names.has_key(name):
             return
 
-        if issequence(child):
+        if isinstance(child, (list, tuple)):
             kid = []
             for i,c in enumerate(child):
                 n = '%s%d' % (name, i)
@@ -483,10 +480,10 @@ class MetaConfigNode(type):
         for key,value in cls._getvalues().iteritems():
             if isConfigNode(value):
                 cls.add_child(instance, key, value)
-            if issequence(value):
-                list = [ v for v in value if isConfigNode(v) ]
-                if len(list):
-                    cls.add_child(instance, key, list)
+            if isinstance(value, (list, tuple)):
+                vals = [ v for v in value if isConfigNode(v) ]
+                if len(vals):
+                    cls.add_child(instance, key, vals)
 
         for pname,param in cls._getparams().iteritems():
             try:
@@ -497,7 +494,7 @@ class MetaConfigNode(type):
             try:
                 if isConfigNode(value):
                     value = instance.child_objects[value]
-                elif issequence(value):
+                elif isinstance(value, (list, tuple)):
                     v = []
                     for val in value:
                         if isConfigNode(val):
@@ -699,7 +696,7 @@ class Node(object):
             pval = param.value
 
             try:
-                if issequence(pval):
+                if isinstance(pval, (list, tuple)):
                     param.value = [ self.unproxy(ptype, pv) for pv in pval ]
                 else:
                     param.value = self.unproxy(ptype, pval)
@@ -952,7 +949,7 @@ class _VectorParam(_Param):
         if value == None:
             return True
 
-        if issequence(value):
+        if isinstance(value, (list, tuple)):
             for val in value:
                 if not isinstance(val, Proxy):
                     self.ptype._convert(val)
@@ -965,7 +962,7 @@ class _VectorParam(_Param):
         if value == None:
             return []
 
-        if issequence(value):
+        if isinstance(value, (list, tuple)):
             # list: coerce each element into new list
             return [ self.ptype._convert(v) for v in value ]
         else:
@@ -973,7 +970,7 @@ class _VectorParam(_Param):
             return self.ptype._convert(value)
 
     def string(self, value):
-        if issequence(value):
+        if isinstance(value, (list, tuple)):
             return ' '.join([ self.ptype._string(v) for v in value])
         else:
             return self.ptype._string(value)
@@ -1339,8 +1336,7 @@ class SimObject(ConfigNode, ParamType):
 # __all__ defines the list of symbols that get exported when
 # 'from config import *' is invoked.  Try to keep this reasonably
 # short to avoid polluting other namespaces.
-__all__ = ['issequence',
-           'ConfigNode', 'SimObject', 'ParamContext', 'Param', 'VectorParam',
+__all__ = ['ConfigNode', 'SimObject', 'ParamContext', 'Param', 'VectorParam',
            'Super', 'Enum',
            'Int', 'Unsigned', 'Int8', 'UInt8', 'Int16', 'UInt16',
            'Int32', 'UInt32', 'Int64', 'UInt64',
index 68a26852d16cb32e2645af0147a99f24fa347cdd..4c17d44273f30b01d79cb871aedfb7d01bc58bd5 100644 (file)
@@ -68,7 +68,7 @@ class VectorDisplay:
         p.flags = self.flags
         p.precision = self.precision
 
-        if issequence(self.value):
+        if isinstance(self.value, (list, tuple)):
             if not len(self.value):
                 return
 
index 01d7bdb0f5e702dd2f5f426910d42073c69102a0..3f6a8dbc384201efc2df011a8abd2a1bbd001a63 100644 (file)
@@ -6,9 +6,6 @@ display_run = 0
 global globalTicks
 globalTicks = None
 
-def issequence(t):
-    return isinstance(t, types.TupleType) or isinstance(t, types.ListType)
-
 def total(f):
     if isinstance(f, FormulaStat):
         v = f.value
@@ -16,7 +13,7 @@ def total(f):
         v = f
 
     f = FormulaStat()
-    if issequence(v):
+    if isinstance(v, (list, tuple)):
         f.value = reduce(operator.add, v)
     else:
         f.value = v
@@ -29,7 +26,7 @@ def unaryop(op, f):
     else:
         v = f
 
-    if issequence(v):
+    if isinstance(v, (list, tuple)):
         return map(op, v)
     else:
         return op(v)
@@ -109,19 +106,19 @@ def binaryop(op, lf, rf):
     return result
 
 def sums(x, y):
-    if issequence(x):
+    if isinstance(x, (list, tuple)):
         return map(lambda x, y: x + y, x, y)
     else:
         return x + y
 
-def alltrue(list):
-    return reduce(lambda x, y: x and y, list)
+def alltrue(seq):
+    return reduce(lambda x, y: x and y, seq)
 
-def allfalse(list):
-    return not reduce(lambda x, y: x or y, list)
+def allfalse(seq):
+    return not reduce(lambda x, y: x or y, seq)
 
-def enumerate(list):
-    return map(None, range(len(list)), list)
+def enumerate(seq):
+    return map(None, range(len(seq)), seq)
 
 def cmp(a, b):
     if a < b:
@@ -323,10 +320,11 @@ class Vector(Statistic,FormulaStat):
                len(self.value) == len(other.value)
 
     def __eq__(self, other):
-        if issequence(self.value) != issequence(other.value):
+        if isinstance(self.value, (list, tuple)) != \
+               isinstance(other.value, (list, tuple)):
             return False
 
-        if issequence(self.value):
+        if isinstance(self.value, (list, tuple)):
             if len(self.value) != len(other.value):
                 return False
             else:
@@ -348,7 +346,7 @@ class Vector(Statistic,FormulaStat):
     def __itruediv__(self, other):
         if not other:
             return self
-        if issequence(self.value):
+        if isinstance(self.value, (list, tuple)):
             for i in xrange(len(self.value)):
                 self.value[i] /= other
         else:
@@ -642,7 +640,8 @@ class VectorDist(Statistic):
         return alltrue(map(lambda x, y : x == y, self.dist, other.dist))
 
     def __isub__(self, other):
-        if issequence(self.dist) and issequence(other.dist):
+        if isinstance(self.dist, (list, tuple)) and \
+               isinstance(other.dist, (list, tuple)):
             for sd,od in zip(self.dist, other.dist):
                 sd -= od
         else:
@@ -650,7 +649,8 @@ class VectorDist(Statistic):
         return self
 
     def __iadd__(self, other):
-        if issequence(self.dist) and issequence(other.dist):
+        if isinstance(self.dist, (list, tuple)) and \
+               isinstance(other.dist, (list, tuple)):
             for sd,od in zip(self.dist, other.dist):
                 sd += od
         else:
@@ -660,7 +660,7 @@ class VectorDist(Statistic):
     def __itruediv__(self, other):
         if not other:
             return self
-        if issequence(self.dist):
+        if isinstance(self.dist, (list, tuple)):
             for dist in self.dist:
                 dist /= other
         else:
index f4492cd2babf314d48c313c8dac796ac73645615..1ed50eef0adad1702c93f6f7170234883c18940a 100644 (file)
@@ -71,7 +71,7 @@ class VectorDisplay:
         p.flags = self.flags
         p.precision = self.precision
 
-        if issequence(self.value):
+        if isinstance(self.value, (list, tuple)):
             if not len(self.value):
                 return