Author: reinhard
Date: 2007-03-27 13:09:57 -0500 (Tue, 27 Mar 2007)
New Revision: 9448
Modified:
trunk/gnue-common/src/utils/datatypes.py
Log:
Added new object type to handle temporary invalid values.
Modified: trunk/gnue-common/src/utils/datatypes.py
===================================================================
--- trunk/gnue-common/src/utils/datatypes.py 2007-03-24 10:55:19 UTC (rev
9447)
+++ trunk/gnue-common/src/utils/datatypes.py 2007-03-27 18:09:57 UTC (rev
9448)
@@ -24,7 +24,7 @@
Helper functions for datatype conversion.
"""
-__all__ = ['convert', 'ConversionError']
+__all__ = ['convert', 'InvalidValueType', 'ConversionError']
import datetime
import mx.DateTime
@@ -58,6 +58,9 @@
# "None" is always valid, independent of data type
result = None
+ elif isinstance(value, InvalidValueType):
+ result = value
+
elif datatype == "raw":
result = value
@@ -156,6 +159,29 @@
# =============================================================================
+# Singleton to represent an invalid value
+# =============================================================================
+
+class InvalidValueType(object):
+ """
+ An invalid value, connected with an exception that defines why it is
+ invalid.
+
+ An instance of this class represents an invalid value. Like None, it is
+ passed unchanged through type conversion.
+ """
+ def __init__(self, exception):
+ #: The exception that explains why this value is invalid.
+ self.exception = exception
+ def __str__(self):
+ return "InvalidValue (%s)" % type(self.exception)
+ def __unicode__(self):
+ return u"InvalidValue (%s)" % type(self.exception)
+ def __repr__(self):
+ return "InvalidValue (%s)" % type(self.exception)
+
+
+# =============================================================================
# Exceptions
# =============================================================================
_______________________________________________
commit-gnue mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/commit-gnue