Made it possible to have multiple preparers.

This commit is contained in:
Joe Dallago
2012-09-18 07:50:06 +00:00
parent 83c3eba0bd
commit 916dd4c9e8

View File

@@ -1667,7 +1667,13 @@ class SchemaNode(object):
appstruct = self.typ.deserialize(self, cstruct)
if self.preparer is not None:
# if the preparer is a function, call a single preparer
if hasattr(self.preparer, '__call__'):
appstruct = self.preparer(appstruct)
# if the preparer is a list, call each separate preparer
elif type(self.preparer) is list:
for preparer in self.preparer:
appstruct = preparer(appstruct)
if appstruct is null:
appstruct = self.missing