Skip to main content

Validate and generate data from templates

Project description

PyCont

Travis codecov Documentation Status

Validate and genereate pythpon objects from templates. Library is powered by Trafaret and helps to validate and genereate data from template.

Documentation

https://pycont.readthedocs.io/en/latest/index.html

Usage

pip install pycont

Simple data template

>>> from pycont import Template, Contract
>>> import trafaret as t
>>> contract = Contract(Template(t.Int()))
>>> print(contract(42))
42
>>> print(contract('test'))
Traceback (most recent call last):
  ...
ValueError: Invalid value: value can't be converted to int

Simple list template

>>> from pycont import Template, Contract
>>> import trafaret as t
>>> contract = Contract([
...  Template(t.Int())
...])
>>> print(contract([42]))
[42]
>>> print(contract([1, 2, 3, 4, 5]))
[1, 2, 3, 4, 5]
>>> print(contract([1, 2, 3, 'error']))
Traceback (most recent call last):
  ...
ValueError: Invalid value: value can't be converted to int

Static list template

>>> from pycont import Template, Contract
>>> import trafaret as t
>>> contract = Contract([
...  Template(t.Int()),
...  Template(t.String()),
...  Template(t.Float()),
...])
>>> print(contract([42, 'test', 12.5]))
[42, 'test', 12.5]

Dict template

>>> from pycont import Template, Contract
>>> import trafaret as t

>>> contract = Contract(Template(t.Int(), default=42))
>>> print(contract('error'))
42

>>> contract = Contract({
...  'id': Template(t.Int()),
...  'value': Template(t.String()),
...})
# Key 'key' not contains in template
>>> print(contract({'id': 1, 'value': 'test', 'key': None}))
{'id': 1, 'value': 'test'}

Deafult value

pycont.Template contains an optional argument default (the default type must be valid to Tremplate checker). If the argument is set, then if the check fails, this value will be returned.

>>> from pycont import Template, Contract
>>> import trafaret as t

>>> contract = Contract({
...  'id': Template(t.Int()),
...  'value': Template(t.String(), default='None'),  # 'None' is a string
...})
>>> print(contract({'id': 1, 'key': None}))  # key 'value' is not set
{'id': 1, 'value': 'None'}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycont-0.0.3.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

pycont-0.0.3-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file pycont-0.0.3.tar.gz.

File metadata

  • Download URL: pycont-0.0.3.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.0

File hashes

Hashes for pycont-0.0.3.tar.gz
Algorithm Hash digest
SHA256 ade0c71e0d8cbd4c9f232c12c0e4aa89a0c63c9c9fe8e856e439076b1582dc45
MD5 c9628616fb3a340292c97aa76b36845a
BLAKE2b-256 e1336603921a698aaed9e160b235a0d8ca73a77bdcbddc6d8f0b687af8ab754e

See more details on using hashes here.

File details

Details for the file pycont-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: pycont-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.0

File hashes

Hashes for pycont-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d53b27654d73dc252142c18f13329ad09edaed8fdae4240ef8bc380df18fdfaf
MD5 1021966eecc2d99eaaf702ee33ccb2aa
BLAKE2b-256 56bf0bcad92b31edbe3635f242588a9d3c65184ddfc7a2c51d9123bb4385f757

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page