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 contract, out_contract

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


@contract(returns=lambda res: res > 0)
def sub(a, b):
    return a - b

And more complex example about in_contract is

@contract(
    lambda a0: a0 > 0,
    lambda a1, b: a1 > 0 and b > 0,
    {
        "a2": lambda x: x > 0,
        "a3": [
            lambda x: x >= 0,
            lambda x: x < 4,
        ],
        ("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.3.3.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

ycontract-0.3.3-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ycontract-0.3.3.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.9.0b5 Darwin/19.3.0

File hashes

Hashes for ycontract-0.3.3.tar.gz
Algorithm Hash digest
SHA256 e0c4b7efdeebe32851c04605673bee159bcb559a2c076386876ae16ce54c3091
MD5 bcfa0649700548a847b9cf8da17bc6fa
BLAKE2b-256 5ea2812c775d1d960d9fe163a605da9047bfd6212cb83ad8159b8aa85839647d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ycontract-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.9.0b5 Darwin/19.3.0

File hashes

Hashes for ycontract-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3d95d025771ade996a517920ceb19ddf66e50a61d2f05b182d4e46bd38a41793
MD5 9957410dd33e27742091a705512fbb1b
BLAKE2b-256 ec308988ab6ba68b8e78c3df71ce066569436a87318950e160fe50a297a37a3a

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