Certifiers for everyone!
Project description
===========
Certifiable
===========
TODO: DISABLE WITH ENVVAR.
.. image:: https://img.shields.io/badge/Author:%20francis%20horsman-Available-brightgreen.svg?style=plastic
:target: https://www.linkedin.com/in/francishorsman
.. image:: https://img.shields.io/pypi/v/certifiable.svg
:target: https://pypi.python.org/pypi/certifiable
:alt: PyPi version
.. image:: https://img.shields.io/travis/sys-git/certifiable.svg
:target: https://travis-ci.org/sys-git/certifiable
:alt: CI Status
.. image:: https://coveralls.io/repos/github/sys-git/certifiable/badge.svg
:target: https://coveralls.io/github/sys-git/certifiable
:alt: Coverage Status
.. image:: https://badge.fury.io/py/certifiable.svg
:target: https://badge.fury.io/py/certifiable
.. image:: https://img.shields.io/pypi/l/certifiable.svg
:target: https://img.shields.io/pypi/l/certifiable.svg
.. image:: https://img.shields.io/pypi/wheel/certifiable.svg
:target: https://img.shields.io/pypi/wheel/certifiable.svg
.. image:: https://img.shields.io/pypi/pyversions/certifiable.svg
:target: https://img.shields.io/pypi/pyversions/certifiable.svg
.. image:: https://img.shields.io/pypi/status/certifiable.svg
:target: https://img.shields.io/pypi/status/certifiable.svg
.. image:: https://readthedocs.org/projects/certifiable/badge/?version=latest
:target: https://certifiable.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pyup.io/repos/github/sys-git/certifiable/shield.svg
:target: https://pyup.io/repos/github/sys-git/certifiable/
:alt: Updates
Certifiable is a powerful runtime parameter validation library for python.
Features
--------
--------
Examples of all features can be found here: :ref:`usage`.
Core types
----------
It can validate the following *core* types
* Text
* Unicode
* String
* Bytes
* Bool
* Int
* Long
* Number
* Decimal
* Float
* Enum
* Enum value
* Timestamp
* Date
* Time
* Object
Complex types
-------------
There are more `complex` or compound types into which you can pass `other` certifiers:
* List
* Tuple
* Set
* Iterable
* Dict
* Json
* Html
* Email
Operators
---------
There are logical operators to combine certifiers:
* ANY (certify_only_one)
* AND (certify_all)
* ALL (certify_all)
* NAND (certify_none)
* XOR (certify_only_one)
Custom Certifier
----------------
Use the `make_certifier` decorator and (optionally) bake-in some args and kwargs (any return value
from a certifier is ignored) to create your own certifier (first arg must be the value to certify):
>>> @make_certifier
... def my_certifier(value, *baked_args, **baked_kwargs):
... print value
... print baked_args
... print baked_kwargs
... baked_kwargs['data'].append('green')
... if len(baked_kwargs['data'])==2:
... raise MyError('damn!')
>>> args_to_bake = ('eggs', 'ham')
>>> kwargs_to_bake = dict(spam='lots', data=[])
>>> certifier = my_certifier(*args_to_bake, **kwargs_to_bake)
certifier can now be used as an argument to other certifiers.
>>> certify_list(
... [1,'a'],
... certifier=certifiers,
... min_len=2,
... max_len=5,
... required=True,
... )
1
('eggs', 'ham')
{'spam': 'lots', data: []}
'a'
('eggs', 'ham')
{'spam': 'lots', data: ['green']}
Traceback (most recent call last):
...
...
...
MyError: damn!
Status
------
* Free software: MIT license
* Documentation: https://certifiable.readthedocs.io.
=======
History
=======
Certifiable
===========
TODO: DISABLE WITH ENVVAR.
.. image:: https://img.shields.io/badge/Author:%20francis%20horsman-Available-brightgreen.svg?style=plastic
:target: https://www.linkedin.com/in/francishorsman
.. image:: https://img.shields.io/pypi/v/certifiable.svg
:target: https://pypi.python.org/pypi/certifiable
:alt: PyPi version
.. image:: https://img.shields.io/travis/sys-git/certifiable.svg
:target: https://travis-ci.org/sys-git/certifiable
:alt: CI Status
.. image:: https://coveralls.io/repos/github/sys-git/certifiable/badge.svg
:target: https://coveralls.io/github/sys-git/certifiable
:alt: Coverage Status
.. image:: https://badge.fury.io/py/certifiable.svg
:target: https://badge.fury.io/py/certifiable
.. image:: https://img.shields.io/pypi/l/certifiable.svg
:target: https://img.shields.io/pypi/l/certifiable.svg
.. image:: https://img.shields.io/pypi/wheel/certifiable.svg
:target: https://img.shields.io/pypi/wheel/certifiable.svg
.. image:: https://img.shields.io/pypi/pyversions/certifiable.svg
:target: https://img.shields.io/pypi/pyversions/certifiable.svg
.. image:: https://img.shields.io/pypi/status/certifiable.svg
:target: https://img.shields.io/pypi/status/certifiable.svg
.. image:: https://readthedocs.org/projects/certifiable/badge/?version=latest
:target: https://certifiable.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pyup.io/repos/github/sys-git/certifiable/shield.svg
:target: https://pyup.io/repos/github/sys-git/certifiable/
:alt: Updates
Certifiable is a powerful runtime parameter validation library for python.
Features
--------
--------
Examples of all features can be found here: :ref:`usage`.
Core types
----------
It can validate the following *core* types
* Text
* Unicode
* String
* Bytes
* Bool
* Int
* Long
* Number
* Decimal
* Float
* Enum
* Enum value
* Timestamp
* Date
* Time
* Object
Complex types
-------------
There are more `complex` or compound types into which you can pass `other` certifiers:
* List
* Tuple
* Set
* Iterable
* Dict
* Json
* Html
Operators
---------
There are logical operators to combine certifiers:
* ANY (certify_only_one)
* AND (certify_all)
* ALL (certify_all)
* NAND (certify_none)
* XOR (certify_only_one)
Custom Certifier
----------------
Use the `make_certifier` decorator and (optionally) bake-in some args and kwargs (any return value
from a certifier is ignored) to create your own certifier (first arg must be the value to certify):
>>> @make_certifier
... def my_certifier(value, *baked_args, **baked_kwargs):
... print value
... print baked_args
... print baked_kwargs
... baked_kwargs['data'].append('green')
... if len(baked_kwargs['data'])==2:
... raise MyError('damn!')
>>> args_to_bake = ('eggs', 'ham')
>>> kwargs_to_bake = dict(spam='lots', data=[])
>>> certifier = my_certifier(*args_to_bake, **kwargs_to_bake)
certifier can now be used as an argument to other certifiers.
>>> certify_list(
... [1,'a'],
... certifier=certifiers,
... min_len=2,
... max_len=5,
... required=True,
... )
1
('eggs', 'ham')
{'spam': 'lots', data: []}
'a'
('eggs', 'ham')
{'spam': 'lots', data: ['green']}
Traceback (most recent call last):
...
...
...
MyError: damn!
Status
------
* Free software: MIT license
* Documentation: https://certifiable.readthedocs.io.
=======
History
=======
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
certifiable-0.1.tar.gz
(236.9 kB
view details)
Built Distribution
File details
Details for the file certifiable-0.1.tar.gz
.
File metadata
- Download URL: certifiable-0.1.tar.gz
- Upload date:
- Size: 236.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 733b4bbbfb451696c42a26acbc5f3b3f1751c6d638b924d407e286fb89b191e9 |
|
MD5 | d6209cd891a452b8bf1807594dc22656 |
|
BLAKE2b-256 | 03d962068809e20a5b07a9ee38f06d729128619df72c295d05f3b8f1ce001625 |
File details
Details for the file certifiable-0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: certifiable-0.1-py2.py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79dbd69bf0a7c98ace29052f8f86f0fe3feec6d63b2105076bdb37f8b14e2a3d |
|
MD5 | ca8526616ac903360a062a2e77520597 |
|
BLAKE2b-256 | 3dc075f0162fdd09865d17d8fc51f42585aadd889d62d2ecfd6c3afe5fa0fb69 |