-
Notifications
You must be signed in to change notification settings - Fork 144
Open
Description
My question seems somewhat similar to other None related problems, e.g. #140, #186, #204.
It seems to me that deserializing a None string should yield the same, instead of colander.Invalid: {'name': 'Required'} which is misleading because name does indeed exist:
>>> class Person(colander.MappingSchema):
... name = colander.SchemaNode(colander.String(allow_empty=True))
>>> Person().deserialize({'name': 'foo'})
{'name': 'foo'}
>>> Person().deserialize({'name': ''})
{'name': ''}
>>> Person().deserialize({'name': None})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/.../python3.4/site-packages/colander/__init__.py", line 2058, in deserialize
appstruct = self.typ.deserialize(self, cstruct)
File "/.../python3.4/site-packages/colander/__init__.py", line 719, in deserialize
return self._impl(node, cstruct, callback)
File "/.../python3.4/site-packages/colander/__init__.py", line 699, in _impl
raise error
colander.Invalid: {'name': 'Required'}
A proposed solution can be found on Stackoverflow but it seems more like a workaround for this issue than a proper solution.
Metadata
Metadata
Assignees
Labels
No labels