- New API: `colander.required
`. Used as the marker value when a
``missing`` argument is left unspecified.
This commit is contained in:
@@ -1,6 +1,12 @@
|
|||||||
Changes
|
Changes
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
Next release
|
||||||
|
------------
|
||||||
|
|
||||||
|
- New API: ``colander.required``. Used as the marker value when a
|
||||||
|
``missing`` argument is left unspecified.
|
||||||
|
|
||||||
0.9.1 (2010-12-02)
|
0.9.1 (2010-12-02)
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
@@ -8,7 +8,8 @@ import translationstring
|
|||||||
|
|
||||||
_ = translationstring.TranslationStringFactory('colander')
|
_ = translationstring.TranslationStringFactory('colander')
|
||||||
|
|
||||||
_marker = object()
|
required = object()
|
||||||
|
_marker = required # bw compat
|
||||||
|
|
||||||
class _null(object):
|
class _null(object):
|
||||||
""" Represents a null value in colander-related operations. """
|
""" Represents a null value in colander-related operations. """
|
||||||
@@ -1201,11 +1202,11 @@ class SchemaNode(object):
|
|||||||
- ``default``: The default serialization value for this node.
|
- ``default``: The default serialization value for this node.
|
||||||
Default: :attr:`colander.null`.
|
Default: :attr:`colander.null`.
|
||||||
|
|
||||||
- ``missing``: The default deserialization value for this node.
|
- ``missing``: The default deserialization value for this node. If it is
|
||||||
If it is not provided, the missing value of this node will be a
|
not provided, the missing value of this node will be the special marker
|
||||||
special marker value, indicating that it is considered
|
value :attr:`colander.required`, indicating that it is considered
|
||||||
'required' (the ``required`` computed attribute will be
|
'required'. When ``missing`` is :attr:`colander.required`, the
|
||||||
``True``).
|
``required`` computed attribute will be ``True``.
|
||||||
|
|
||||||
- ``validator``: Optional validator for this node. It should be
|
- ``validator``: Optional validator for this node. It should be
|
||||||
an object that implements the
|
an object that implements the
|
||||||
@@ -1253,7 +1254,7 @@ class SchemaNode(object):
|
|||||||
self.typ = typ
|
self.typ = typ
|
||||||
self.validator = kw.pop('validator', None)
|
self.validator = kw.pop('validator', None)
|
||||||
self.default = kw.pop('default', null)
|
self.default = kw.pop('default', null)
|
||||||
self.missing = kw.pop('missing', _marker)
|
self.missing = kw.pop('missing', required)
|
||||||
self.name = kw.pop('name', '')
|
self.name = kw.pop('name', '')
|
||||||
self.title = kw.pop('title', self.name.replace('_', ' ').title())
|
self.title = kw.pop('title', self.name.replace('_', ' ').title())
|
||||||
self.description = kw.pop('description', '')
|
self.description = kw.pop('description', '')
|
||||||
@@ -1267,12 +1268,13 @@ class SchemaNode(object):
|
|||||||
""" A property which returns ``True`` if the ``missing`` value
|
""" A property which returns ``True`` if the ``missing`` value
|
||||||
related to this node was not specified.
|
related to this node was not specified.
|
||||||
|
|
||||||
A return value of ``True`` implies that a ``missing`` value
|
A return value of ``True`` implies that a ``missing`` value wasn't
|
||||||
wasn't specified for this node. A return value of ``False``
|
specified for this node or that the ``missing`` value of this node is
|
||||||
implies that a ``missing`` value was specified for this node."""
|
:attr:`colander.required`. A return value of ``False`` implies that
|
||||||
|
a 'real' ``missing`` value was specified for this node."""
|
||||||
if isinstance(self.missing, deferred): # unbound schema with deferreds
|
if isinstance(self.missing, deferred): # unbound schema with deferreds
|
||||||
return True
|
return True
|
||||||
return self.missing is _marker
|
return self.missing is required
|
||||||
|
|
||||||
def serialize(self, appstruct=null):
|
def serialize(self, appstruct=null):
|
||||||
""" Serialize the :term:`appstruct` to a :term:`cstruct` based
|
""" Serialize the :term:`appstruct` to a :term:`cstruct` based
|
||||||
@@ -1328,7 +1330,7 @@ class SchemaNode(object):
|
|||||||
"""
|
"""
|
||||||
if cstruct is null:
|
if cstruct is null:
|
||||||
appstruct = self.missing
|
appstruct = self.missing
|
||||||
if appstruct is _marker:
|
if appstruct is required:
|
||||||
raise Invalid(self, _('Required'))
|
raise Invalid(self, _('Required'))
|
||||||
if isinstance(appstruct, deferred): # unbound schema with deferreds
|
if isinstance(appstruct, deferred): # unbound schema with deferreds
|
||||||
raise Invalid(self, _('Required'))
|
raise Invalid(self, _('Required'))
|
||||||
|
@@ -124,4 +124,6 @@ Schema-Related
|
|||||||
|
|
||||||
Represents a null value in colander-related operations.
|
Represents a null value in colander-related operations.
|
||||||
|
|
||||||
|
.. attribute:: required
|
||||||
|
|
||||||
|
Represents a required value in colander-related operations.
|
||||||
|
Reference in New Issue
Block a user