Skip to main content

Python library for contracts testing

Project description

ycontract

PyPI PyPI - Python Version pipeline status coverage report PyPI - License

Python library for contracts testing.

This library provides functions for checking argument(in_contract) and return value(out_contract) of a function.

How to install

$ pip install ycontract

Example

Example files are here(test file)

Main example is

from ycontract import in_contract, out_contract

@in_contract(lambda a, b: a * b > 0)
def add(a, b, c):
    return a + b


@out_contract(lambda res: res > 0)
def sub(a, b):
    return a - b

And more complex example for in_contract is

@in_contract(
    lambda a0: a0 > 0,
    lambda a1, b: a1 > 0 and b > 0,
    {"a2": lambda x: x > 0},
    {("a3",): lambda x: x > 0},
    {("a4", "a5"): lambda x, y: x > 0 and y > 0},
    b=lambda x: x > 0,
)
def add_for_complex(a0, a1, a2, a3, a4, a5, b=1):
    return a0 + a1 + a2 + a3 + a4 + a5 + b

Furthermore if you want to be disable, call

ycontract.disable_contract()

LICENSES

Apache 2.0

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

ycontract-0.2.2.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

ycontract-0.2.2-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file ycontract-0.2.2.tar.gz.

File metadata

  • Download URL: ycontract-0.2.2.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.7.0 Darwin/19.3.0

File hashes

Hashes for ycontract-0.2.2.tar.gz
Algorithm Hash digest
SHA256 fdf518a7ab3ebe3089288174adfbcd0da42c11405a5daad1c76b9ccc6b35e1e5
MD5 bc8d1204bff673520ef69aaba17947b0
BLAKE2b-256 22c875dfc49c5873b9af6e2fd432cc465c68186ce1ef1c92c8daea7fb141689c

See more details on using hashes here.

File details

Details for the file ycontract-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: ycontract-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.7.0 Darwin/19.3.0

File hashes

Hashes for ycontract-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2be9281791f9e282b2c48711cefa5d074632c96070d362b4f1d9d6a3c6632129
MD5 47a7ad63b2d503c29587b3f68c3fb240
BLAKE2b-256 3094de049ce24d6ea2d17d7203787e25773cf21947d202bead8c2a085c19ec29

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