vp

validator.py

Schemas for data structures.

Showing:

Popularity

Downloads/wk

0

GitHub Stars

141

Maintenance

Last Commit

9mos ago

Contributors

13

Package

Dependencies

0

License

MIT

Categories

Readme

validator.py |Build Status| |PyPI version|

Schemas for data structures.

Documentation <http://validatorpy.readthedocs.org/en/latest/index.html>__

This README has some basic usage information, but more detailed documentation may be found at ReadTheDocs <http://validatorpy.readthedocs.org/en/latest/index.html>__.

Usage Example

First, install it from PyPI.

::

pip install validator.py

.. code:: python

from validator import Required, Not, Truthy, Blank, Range, Equals, In, validate

# let's say that my dictionary needs to meet the following rules...
rules = {
    "foo": [Required, Equals(123)],
    "bar": [Required, Truthy()],
    "baz": [In(["spam", "eggs", "bacon"])],
    "qux": [Not(Range(1, 100))] # by default, Range is inclusive
}

# then this following dict would pass:
passes = {
    "foo": 123,
    "bar": True, # or a non-empty string, or a non-zero int, etc...
    "baz": "spam",
    "qux": 101
}
print validate(rules, passes)
# (True, {})

# but this one would fail
fails = {
    "foo": 321,
    "bar": False, # or 0, or [], or an empty string, etc...
    "baz": "barf",
    "qux": 99
}
print validate(rules, fails)
# (False,
#  {
#  'foo': ["must be equal to '123'"],
#  'bar': ['must be True-equivalent value'],
#  'baz': ["must be one of ['spam', 'eggs', 'bacon']"],
#  'qux': ['must not fall between 1 and 100']
#  })

.. |Build Status| image:: https://travis-ci.org/mansam/validator.py.png?branch=master :target: https://travis-ci.org/mansam/validator.py .. |PyPI version| image:: https://badge.fury.io/py/validator.py.png :target: http://badge.fury.io/py/validator.py .. |Bitdeli Badge| image:: https://d2weczhvl823v0.cloudfront.net/mansam/validator.py/trend.png :target: https://bitdeli.com/free

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100