[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9806 - trunk/gnue-common/src/apps
From: |
johannes |
Subject: |
[gnue] r9806 - trunk/gnue-common/src/apps |
Date: |
Wed, 14 Nov 2007 09:18:40 -0600 (CST) |
Author: johannes
Date: 2007-11-14 09:18:39 -0600 (Wed, 14 Nov 2007)
New Revision: 9806
Modified:
trunk/gnue-common/src/apps/checktype.py
Log:
PEP8-ification of checktype
Modified: trunk/gnue-common/src/apps/checktype.py
===================================================================
--- trunk/gnue-common/src/apps/checktype.py 2007-11-14 14:53:15 UTC (rev
9805)
+++ trunk/gnue-common/src/apps/checktype.py 2007-11-14 15:18:39 UTC (rev
9806)
@@ -25,97 +25,100 @@
Support for checking the type of variables.
"""
-from types import *
-
-import string
import sys
+import types
-from gnue.common.apps import errors, i18n
+from gnue.common.base import errors, i18n
-# -----------------------------------------------------------------------------
+# =============================================================================
# Exception definition
-# -----------------------------------------------------------------------------
+# =============================================================================
-class TypeError (errors.SystemError):
- """
- Raised when L{checktype} detects a wrong type.
+class TypeError(errors.SystemError):
+ """
+ Raised when L{checktype} detects a wrong type.
- Do not raise this exception manually.
- """
+ Do not raise this exception manually.
+ """
+ def __init__(self, variable, expected):
-# -----------------------------------------------------------------------------
+ self.varname = '<?>'
+ for (k, v) in (sys._getframe(2)).f_locals.items():
+ if variable is v:
+ self.varname = k
- def __stringify (self, atype):
- if isinstance (atype, ListType):
- return string.join ([self.__stringify (t) for t in atype], ' / ')
- elif isinstance (atype, TypeType):
- return str (atype)
- elif isinstance (atype, ClassType):
- return '<class %s>' % str (atype)
- else:
- return '<type %s>' % str (atype)
+ self.expected = expected # Expected type of variable
-# -----------------------------------------------------------------------------
+ if isinstance(variable, types.InstanceType):
+ self.actual = variable.__class__
+ else:
+ self.actual = type(variable) # Actual type of variable
- def __init__ (self, variable, expected):
+ self.value = variable # Value of variable
- self.varname = '<?>'
- for (k, v) in (sys._getframe (2)).f_locals.items ():
- if variable is v:
- self.varname = k
+ message = u_('"%(varname)s" is expected to be of %(expected)s but is '
+ 'of %(actual)s and has value %(value)s') \
+ % {'varname' : self.varname,
+ 'expected': self.__stringify(self.expected),
+ 'actual' : self.__stringify(self.actual),
+ 'value' : repr(self.value)}
+ errors.SystemError.__init__(self, message)
- self.expected = expected # Expected type of variable
- if isinstance (variable, InstanceType):
- self.actual = variable.__class__
- else:
- self.actual = type (variable) # Actual type of variable
+ # -------------------------------------------------------------------------
+ # Get a nice string for a given type
+ # -------------------------------------------------------------------------
- self.value = variable # Value of variable
+ def __stringify(self, atype):
- message = u_('"%(varname)s" is expected to be of %(expected)s but is of '
- '%(actual)s and has value %(value)s') \
- % {'varname' : self.varname,
- 'expected': self.__stringify (self.expected),
- 'actual' : self.__stringify (self.actual),
- 'value' : repr (self.value)}
- errors.SystemError.__init__ (self, message)
+ if isinstance(atype, list):
+ return ' / '.join([self.__stringify(t) for t in atype])
+ elif isinstance(atype, type):
+ return str(atype)
+ elif isinstance(atype, types.ClassType):
+ return '<class %s>' % str(atype)
+
+ else:
+ return '<type %s>' % str(atype)
+
+
# -----------------------------------------------------------------------------
# Check type of a variable
# -----------------------------------------------------------------------------
-def checktype (variable, validtype):
- """
- Check a varaible (for example a parameter to a function) for a correct type.
+def checktype(variable, validtype):
+ """
+ Check a varaible (for example a parameter to a function) for a correct
type.
+ This function is available as builtin function.
- This function is available as builtin function.
+ @param variable: Variable to check.
+ @param validtype: Type, class, or a list of types and classes that are
+ valid.
+ @raise TypeError: The variable has a type not listed in the valid types.
+ """
+ if isinstance(validtype, list):
+ for t in validtype:
+ if t is None:
+ if variable is None:
+ return
+ else:
+ if isinstance(variable, t):
+ return
+ else:
+ if isinstance(variable, validtype):
+ return
- @param variable: Variable to check.
- @param validtype: Type, class, or a list of types and classes that are valid.
- @raise TypeError: The variable has a type not listed in the valid types.
- """
- if isinstance (validtype, ListType):
- for t in validtype:
- if t is None:
- if variable is None:
- return
- else:
- if isinstance (variable, t):
- return
- else:
- if isinstance (variable, validtype):
- return
- raise TypeError, (variable, validtype)
+ raise TypeError, (variable, validtype)
# -----------------------------------------------------------------------------
# Module initialization
# -----------------------------------------------------------------------------
-import __builtin__
+import __builtin__
__builtin__.__dict__['checktype'] = checktype
@@ -125,55 +128,56 @@
if __name__ == '__main__':
- import sys
+ import sys
- def mustfail (testvar, validtype):
- try:
- checktype (testvar, validtype)
- except TypeError, message:
- print message
- return
- raise Error ("checking %s as %s hasn't failed!" % (repr (variable),
- repr (validtype)))
+ def mustfail(testvar, validtype):
+ try:
+ checktype(testvar, validtype)
- n = None
- s = 'this is a string'
- u = u'this is a unicode string'
- i = 100
- f = 17.85
- class p:
- pass
- class c (p):
- pass
- o = c ()
+ except TypeError, message:
+ print message
+ return
+ raise Error("checking %s as %s hasn't failed!" % (repr(variable),
+ repr(validtype)))
- print 'Single type, success ...'
- checktype (n, NoneType)
- checktype (s, StringType)
- checktype (u, UnicodeType)
- checktype (i, IntType)
- checktype (f, FloatType)
- checktype (c, ClassType)
- checktype (o, InstanceType)
- checktype (o, c)
- checktype (o, p)
+ n = None
+ s = 'this is a string'
+ u = u'this is a unicode string'
+ i = 100
+ f = 17.85
+ class p:
+ pass
+ class c(p):
+ pass
+ o = c()
- print 'Multiple types, success ...'
- checktype (n, [StringType, NoneType])
- checktype (s, [StringType, UnicodeType])
- checktype (u, [StringType, UnicodeType])
- checktype (o, [NoneType, c])
+ print 'Single type, success ...'
+ checktype(n, types.NoneType)
+ checktype(s, str)
+ checktype(u, unicode)
+ checktype(i, int)
+ checktype(f, float)
+ checktype(c, types.ClassType)
+ checktype(o, types.InstanceType)
+ checktype(o, c)
+ checktype(o, p)
- print 'Single type, failure ...'
- mustfail (n, StringType)
- mustfail (s, UnicodeType)
- mustfail (u, StringType)
- mustfail (i, FloatType)
- mustfail (o, IntType)
- mustfail (c, c)
+ print 'Multiple types, success ...'
+ checktype(n, [str, types.NoneType])
+ checktype(s, [str, unicode])
+ checktype(u, [str, unicode])
+ checktype(o, [types.NoneType, c])
- print 'Multiple types, failure ...'
- mustfail (n, [StringType, UnicodeType])
- mustfail (s, [IntType, FloatType])
+ print 'Single type, failure ...'
+ mustfail(n, str)
+ mustfail(s, unicode)
+ mustfail(u, str)
+ mustfail(i, float)
+ mustfail(o, int)
+ mustfail(c, c)
- print 'All test passed.'
+ print 'Multiple types, failure ...'
+ mustfail(n, [str, unicode])
+ mustfail(s, [int, float])
+
+ print 'All test passed.'
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9806 - trunk/gnue-common/src/apps,
johannes <=