cerberus

Lightweight, extensible data validation library for Python

https://github.com/pyeve/cerberus

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 65 committers (3.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

data-validation python

Keywords from Contributors

tensor units docs distribution datetime jinja pallets werkzeug wsgi
Last synced: 6 months ago · JSON representation

Repository

Lightweight, extensible data validation library for Python

Basic Info
  • Host: GitHub
  • Owner: pyeve
  • License: isc
  • Language: Python
  • Default Branch: 1.3.x
  • Homepage: http://python-cerberus.org
  • Size: 2.63 MB
Statistics
  • Stars: 3,237
  • Watchers: 49
  • Forks: 241
  • Open Issues: 14
  • Releases: 0
Topics
data-validation python
Created over 13 years ago · Last pushed 7 months ago
Metadata Files
Readme Changelog License Authors

README.rst

Cerberus |latest-version|
=========================
|python-support| |black|

Cerberus is a lightweight and extensible data validation library for Python.

.. code-block:: python

    >>> v = Validator({'name': {'type': 'string'}})
    >>> v.validate({'name': 'john doe'})
    True


Features
--------

Cerberus provides type checking and other base functionality out of the box and
is designed to be non-blocking and easily and widely extensible, allowing for
custom validation. It has no dependencies, but has the potential to become
yours.


Versioning & Interpreter support
--------------------------------

Starting with Cerberus 1.2, it is maintained according to
`semantic versioning`_. So, a major release sheds off the old and defines a
space for the new, minor releases ship further new features and improvements
(you know the drill, new bugs are inevitable too), and micro releases polish a
definite amount of features to glory.

We intend to test Cerberus against all CPython interpreters at least until half
a year after their `end of life`_ and against the most recent PyPy interpreter
as a requirement for a release. If you still need to use it with a potential
security hole in your setup, it should most probably work with the latest
minor version branch from the time when the interpreter was still tested.
Subsequent minor versions have good chances as well. In any case, you are
advised to run the contributed test suite on your target system.


Documentation
-------------

Complete documentation is available at http://docs.python-cerberus.org


Installation
------------

Cerberus is on PyPI_, so all you need to do is:

.. code-block:: console

    $ pip install cerberus


Testing
-------

Just run:

.. code-block:: console

    $ python setup.py test

Or you can use tox to run the tests under all supported Python versions. Make
sure the required python versions are installed and run:

.. code-block:: console

    $ pip install tox  # first time only
    $ tox


Contributing
------------

Please see the `Contribution Guidelines`_.


Copyright
---------

Cerberus is an open source project by `Nicola Iarocci`_. See the license_ file
for more information.


.. _Contribution Guidelines: https://github.com/pyeve/cerberus/blob/1.3.x/CONTRIBUTING.rst
.. _end of life: https://devguide.python.org/#status-of-python-branches
.. _license: https://github.com/pyeve/cerberus/blob/1.3.x/LICENSE
.. _Nicola Iarocci: https://nicolaiarocci.com/
.. _PyPI: https://pypi.python.org/
.. _semantic versioning: https://semver.org/

.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
   :alt: Black code style
   :target: https://black.readthedocs.io/
.. |latest-version| image:: https://img.shields.io/pypi/v/cerberus.svg
   :alt: Latest version on PyPI
   :target: https://pypi.org/project/cerberus
.. |license| image:: https://img.shields.io/pypi/l/cerberus.svg
   :alt: Software license
   :target: https://github.com/pyeve/cerberus/blob/1.3.x/LICENSE
.. |python-support| image:: https://img.shields.io/pypi/pyversions/cerberus.svg
   :target: https://pypi.python.org/pypi/cerberus
   :alt: Python versions

Owner

  • Name: eve
  • Login: pyeve
  • Kind: organization

REST API framework designed for human beings

GitHub Events

Total
  • Issues event: 8
  • Watch event: 85
  • Issue comment event: 13
  • Push event: 4
  • Pull request event: 2
  • Fork event: 8
  • Create event: 3
Last Year
  • Issues event: 8
  • Watch event: 85
  • Issue comment event: 13
  • Push event: 4
  • Pull request event: 2
  • Fork event: 8
  • Create event: 3

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 949
  • Total Committers: 65
  • Avg Commits per committer: 14.6
  • Development Distribution Score (DDS): 0.589
Past Year
  • Commits: 9
  • Committers: 1
  • Avg Commits per committer: 9.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Frank Sachsenheim f****e@r****t 390
Nicola Iarocci n****a@n****m 382
calve c****4@g****m 14
Dominik Kellner d****r@d****e 12
Scott Crunkleton c****1@g****m 10
Paul Weaver p****e@c****m 9
Martijn Vermaat m****n@v****e 9
Davis Kirkendall d****l@r****e 7
Harro van der Klauw h****w@g****m 6
Jaroslav Semančík j****k@y****m 6
Petr p****n@n****v 5
C.D. Clark III c****k@g****m 5
Damián Nohales d****s@g****m 4
Trong Hieu HA t****u@1****m 4
Brandon Aubie b****n@a****a 4
Damián Nohales d****s@g****m 4
Kuzma r****h@g****m 4
Florian Rathgeber f****r@g****m 3
Josh Villbrandt j****h@j****m 3
Michael Klich m****l@m****m 3
Gilb's g****t@g****m 3
eelkeh e****s@g****m 3
otibsa o****a@g****m 3
Connor Zapfel F****a 3
Misja Hoebe m****a@c****m 3
Bruno Oliveira n****s@g****m 2
Evgeny Odegov e****v@g****m 2
Matthew Ellison m****t@a****m 2
Nikita Melentev N****v@k****u 2
Kornelijus Survila k****s@d****m 2
and 35 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 99
  • Total pull requests: 38
  • Average time to close issues: over 1 year
  • Average time to close pull requests: 6 months
  • Total issue authors: 82
  • Total pull request authors: 21
  • Average comments per issue: 3.85
  • Average comments per pull request: 2.26
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 3
  • Pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • funkyfuture (10)
  • socketpair (3)
  • erictwalker18 (2)
  • thiagocrepaldi (2)
  • weshouman (2)
  • dkbarn (2)
  • nicolaiarocci (2)
  • dhanythirstie (1)
  • dhuckins (1)
  • boulderwebdev (1)
  • kuza (1)
  • rendorHaevyn (1)
  • sujanadiga (1)
  • irmo322 (1)
  • solinas3000 (1)
Pull Request Authors
  • funkyfuture (15)
  • jsnjack (2)
  • AtharvaPawar456 (2)
  • stroykova (2)
  • weshouman (2)
  • ssbarnea (2)
  • akayunov (1)
  • biscuit314 (1)
  • audricschiltknecht (1)
  • linupi (1)
  • braeutigamj (1)
  • sayeghr (1)
  • abp1994 (1)
  • pykler (1)
  • msotnikov (1)
Top Labels
Issue Labels
bug (7) documentation (6) enhancement (4) feature request (3) design (3) wontfix (1) backport-required (1) question (1)
Pull Request Labels
bug (5) backport-required (4) documentation (2) enhancement (2)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 4,147,375 last-month
  • Total docker downloads: 10,294,748
  • Total dependent packages: 141
    (may contain duplicates)
  • Total dependent repositories: 2,036
    (may contain duplicates)
  • Total versions: 31
  • Total maintainers: 2
pypi.org: cerberus

Lightweight, extensible schema and data validation tool for Pythondictionaries.

  • Documentation: http://docs.python-cerberus.org
  • License: ISC License Copyright (c) 2012-2016 Nicola Iarocci. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  • Latest release: 1.3.7
    published about 1 year ago
  • Versions: 29
  • Dependent Packages: 140
  • Dependent Repositories: 2,028
  • Downloads: 4,147,375 Last month
  • Docker Downloads: 10,294,748
Rankings
Dependent packages count: 0.1%
Downloads: 0.1%
Dependent repos count: 0.2%
Docker downloads count: 0.6%
Average: 1.0%
Stargazers count: 1.4%
Forks count: 3.4%
Maintainers (2)
Last synced: 6 months ago
anaconda.org: cerberus

Cerberus provides type checking and other base functionality out of the boxand is designed to be non-blocking and easily and widely extensible, allowing for custom validation. It has no dependencies, but has the potential to become yours.

  • Versions: 2
  • Dependent Packages: 1
  • Dependent Repositories: 8
Rankings
Dependent packages count: 30.6%
Average: 35.0%
Dependent repos count: 39.5%
Last synced: 6 months ago

Dependencies

docs/requirements.txt pypi
  • Sphinx <2.0
  • sphinxcontrib-issuetracker *
.github/workflows/publish.yml actions
  • actions/checkout v3 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/regular-checks.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
  • importlib-metadata python_version < '3.8'