Thomas Robitaille
2015-09-23 16:39:00 UTC
Hi everyone,
We have released a small experimental package called numtraits that
builds on top of the traitlets package and provides a NumericalTrait
class that can be used to validate properties such as:
* number of dimension (for arrays)
* shape (for arrays)
* domain (e.g. positive, negative, range of values)
* units (with support for astropy.units, pint, and quantities)
The idea is to be able to write a class like:
class Sphere(HasTraits):
radius = NumericalTrait(domain='strictly-positive', ndim=0)
position = NumericalTrait(shape=(3,))
and all the validation will then be done automatically when the user
sets 'radius' or 'position'.
In addition, tuples and lists can get automatically converted to
arrays, and default values can be specified. You can read more about
the package and see examples of it in use here:
https://github.com/astrofrog/numtraits
and it can be easily installed with
pip install numtraits
The package supports both Python 3.3+ and Legacy Python (2.7) :)
At this point, we would be very interested in feedback - the package
is still very young and we can still change the API if needed. Please
open issues with suggestions!
Cheers,
Tom and Francesco
We have released a small experimental package called numtraits that
builds on top of the traitlets package and provides a NumericalTrait
class that can be used to validate properties such as:
* number of dimension (for arrays)
* shape (for arrays)
* domain (e.g. positive, negative, range of values)
* units (with support for astropy.units, pint, and quantities)
The idea is to be able to write a class like:
class Sphere(HasTraits):
radius = NumericalTrait(domain='strictly-positive', ndim=0)
position = NumericalTrait(shape=(3,))
and all the validation will then be done automatically when the user
sets 'radius' or 'position'.
In addition, tuples and lists can get automatically converted to
arrays, and default values can be specified. You can read more about
the package and see examples of it in use here:
https://github.com/astrofrog/numtraits
and it can be easily installed with
pip install numtraits
The package supports both Python 3.3+ and Legacy Python (2.7) :)
At this point, we would be very interested in feedback - the package
is still very young and we can still change the API if needed. Please
open issues with suggestions!
Cheers,
Tom and Francesco