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 about 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,
        ("a3-2",): lambda x: x <= 0,
        ("a4", "a5"): lambda x, y: x > 0 and y > 0,
    },
    b=lambda x: x > 0,
    contract_tag="tagtag",
)
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.6.1.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

ycontract-0.2.6.1-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ycontract-0.2.6.1.tar.gz
  • Upload date:
  • Size: 7.7 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.6.1.tar.gz
Algorithm Hash digest
SHA256 acaf0ccdbd9d9100764085f1fd12fb18789d8461809588fa57ba662fe3b5ff4c
MD5 cc4fe7ef4a655e56a52cbacd4518f7a1
BLAKE2b-256 d102c82ed925e0f7f7b5f0bb4fbe280582ca33e6c7a75ff0381e1766e58fd5c5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ycontract-0.2.6.1-py3-none-any.whl
  • Upload date:
  • Size: 7.7 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.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 65209e89083cecca4d5a2715f6035ad766d97d74263f2b009389c94799c76d96
MD5 ec1d13bb6382b5903bdb80e1dfb21067
BLAKE2b-256 62e2a535fc12a1b4d1da614612a0447c6adbdc0c55c2d4319ebd8623f4f6164d

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