Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

conformity

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

conformity

Cacheable schema description and validation

  • 1.28.2
  • PyPI
  • Socket score

Maintainers
2

Conformity - Declarative Schema for Python

.. image:: https://readthedocs.org/projects/conformity/badge/ :target: https://conformity.readthedocs.io

.. image:: https://pepy.tech/badge/conformity :target: https://pepy.tech/project/conformity

.. image:: https://img.shields.io/pypi/l/conformity.svg :target: https://pypi.python.org/pypi/conformity

.. image:: https://api.travis-ci.org/eventbrite/conformity.svg :target: https://travis-ci.org/eventbrite/conformity

.. image:: https://img.shields.io/pypi/v/conformity.svg :target: https://pypi.python.org/pypi/conformity

.. image:: https://img.shields.io/pypi/wheel/conformity.svg :target: https://pypi.python.org/pypi/conformity

.. image:: https://img.shields.io/pypi/pyversions/conformity.svg :target: https://pypi.python.org/pypi/conformity

Conformity is a declarative schema validation library designed for use in libraries, services, application settings, and more.


Declare a schema:

.. code-block:: python

from conformity.fields import Dictionary, Float, Integer, List, UnicodeString

person = Dictionary({
    "name": UnicodeString(),
    "height": Float(gte=0),
    "event_ids": List(Integer(gt=0)),
})

Check to see if data is valid:

.. code-block:: python

data = {"name": "Andrew", "height": 180.3, "event_ids": [1, "3"]}
errors = person.errors(data)

# Key event_ids: Index 1: Not an integer

And wrap functions to validate on the way in and out:

.. code-block:: python

kwargs = Dictionary({
    "name": UnicodeString(),
    "score": Integer(),
}, optional_keys=["score"])

@validate_call(kwargs, UnicodeString())
def greet(name, score=0):
    if score > 10:
        return "So nice to meet you, {}!".format(name)
    else:
        return "Hello, {}.".format(name)

There's support for basic string, numeric, geographic, temporal, networking, and other field types, with everything easily extensible (optionally via subclassing). Conformity also boasts support for full-blown application settings schema definition and validation complete with definable defaults, and includes Sphinx autodoc extensions to help you generate meaningful documentation for your code using Conformity.

License

Conformity is licensed under the Apache License, version 2.0 <LICENSE>_.

Installation

Conformity is available in PyPi and can be installing directly via Pip or listed in setup.py, requirements.txt, or Pipfile:

.. code-block:: bash

pip install 'conformity~=1.26'

.. code-block:: python

install_requires=[
    ...
    'conformity~=1.26',
    ...
]

.. code-block:: text

conformity~=1.26

.. code-block:: text

conformity = {version="~=1.26"}

Documentation

The complete Conformity documentation is available on Read the Docs <https://conformity.readthedocs.io>_!

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc