Usage¶
Example: Validating the Shape of a Numpy Array¶
We pass a validation function to the valid method of the Array trait type.
In this example, the validation function is returned by the shape closure which stores
the tuple in its closure.
from traitlets import HasTraits, TraitError
from traittypes import Array
def shape(*dimensions):
def validator(trait, value):
if value.shape != dimensions:
raise TraitError('Expected an of shape %s and got and array with shape %s' % (dimensions, value.shape))
else:
return value
return validator
class Foo(HasTraits):
bar = Array(np.identity(2)).valid(shape(2, 2))
foo = Foo()
foo.bar = [1, 2] # Should raise a TraitError