34398
|
1 |
"""
|
|
2 |
Commonly useful converters.
|
|
3 |
"""
|
|
4 |
|
|
5 |
from __future__ import absolute_import, division, print_function
|
|
6 |
|
|
7 |
|
|
8 |
def optional(converter):
|
|
9 |
"""
|
|
10 |
A converter that allows an attribute to be optional. An optional attribute
|
|
11 |
is one which can be set to ``None``.
|
|
12 |
|
|
13 |
:param callable converter: the converter that is used for non-``None``
|
|
14 |
values.
|
|
15 |
|
|
16 |
.. versionadded:: 17.1.0
|
|
17 |
"""
|
|
18 |
|
|
19 |
def optional_converter(val):
|
|
20 |
if val is None:
|
|
21 |
return None
|
|
22 |
return converter(val)
|
|
23 |
|
|
24 |
return optional_converter
|