Source code for paramtools.contrib.fields
import numpy as np
import datetime
from marshmallow import fields as marshmallow_fields
[docs]class Float64(marshmallow_fields.Number):
"""
Implements "float" :ref:`spec:Type property` for parameter values.
Defined as
`numpy.float64 <https://docs.scipy.org/doc/numpy-1.15.0/user/basics.types.html>`__ type
"""
num_type = np_type = np.float64
[docs]class Int64(marshmallow_fields.Number):
"""
Implements "int" :ref:`spec:Type property` for parameter values.
Defined as `numpy.int64 <https://docs.scipy.org/doc/numpy-1.15.0/user/basics.types.html>`__ type
"""
num_type = np_type = np.int64
[docs]class Bool_(marshmallow_fields.Boolean):
"""
Implements "bool" :ref:`spec:Type property` for parameter values.
Defined as `numpy.bool_ <https://docs.scipy.org/doc/numpy-1.15.0/user/basics.types.html>`__ type
"""
num_type = np_type = np.bool_
def _deserialize(self, value, attr, obj, **kwargs):
return np.bool_(super()._deserialize(value, attr, obj, **kwargs))
def _serialize(self, value, attr, obj, **kwargs):
return super()._serialize(bool(value), attr, obj, **kwargs)
[docs]class MeshFieldMixin:
"""
Provides method for accessing ``contrib.validate``
validators' mesh methods
"""
def mesh(self):
if not self.validators:
return []
assert len(self.validators) == 1
return self.validators[0].mesh()
[docs]class Str(MeshFieldMixin, marshmallow_fields.Str):
"""
Implements "str" :ref:`spec:Type property`.
"""
np_type = object
[docs]class Integer(MeshFieldMixin, marshmallow_fields.Integer):
"""
Implements "int" :ref:`spec:Type property` for properties
except for parameter values.
"""
np_type = int
[docs]class Float(MeshFieldMixin, marshmallow_fields.Float):
"""
Implements "float" :ref:`spec:Type property` for properties
except for parameter values.
"""
np_type = float
[docs]class Boolean(MeshFieldMixin, marshmallow_fields.Boolean):
"""
Implements "bool" :ref:`spec:Type property` for properties
except for parameter values.
"""
np_type = bool
[docs]class Date(MeshFieldMixin, marshmallow_fields.Date):
"""
Implements "date" :ref:`spec:Type property`.
"""
np_type = datetime.date