From 409a95adf44f577a204114469ff414bebefca293 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 1 Jul 2011 11:32:07 -0400 Subject: - Fixed bug in the mutable extension whereby if None or a non-corresponding type were set, an error would be raised. None is now accepted which assigns None to all attributes, illegal values raise ValueError. --- lib/sqlalchemy/ext/mutable.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'lib/sqlalchemy/ext/mutable.py') diff --git a/lib/sqlalchemy/ext/mutable.py b/lib/sqlalchemy/ext/mutable.py index b31710ca8..ece7e3ad4 100644 --- a/lib/sqlalchemy/ext/mutable.py +++ b/lib/sqlalchemy/ext/mutable.py @@ -346,6 +346,16 @@ class MutableBase(object): return weakref.WeakKeyDictionary() + @classmethod + def coerce(cls, key, value): + """Given a value, coerce it into this type. + + By default raises ValueError. + """ + if value is None: + return None + raise ValueError("Attribute '%s' does not accept objects of type %s" % (key, type(value))) + @classmethod def _listen_on_attribute(cls, attribute, coerce, parent_cls): """Establish this type as a mutation listener for the given @@ -423,16 +433,6 @@ class Mutable(MutableBase): for parent, key in self._parents.items(): flag_modified(parent, key) - @classmethod - def coerce(cls, key, value): - """Given a value, coerce it into this type. - - By default raises ValueError. - """ - if value is None: - return None - raise ValueError("Attribute '%s' does not accept objects of type %s" % (key, type(value))) - @classmethod def associate_with_attribute(cls, attribute): """Establish this type as a mutation listener for the given -- cgit v1.2.1