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.1.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

ycontract-0.3.1-py3-none-any.whl (11.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ycontract-0.3.1.tar.gz
  • Upload date:
  • Size: 9.9 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.1.tar.gz
Algorithm Hash digest
SHA256 ed6c67e5f7ac7b38035b5db5f8dd39974a3861ea439f1bb033481cb913fa4577
MD5 275ee753cc41d9a0fe4aed80e2cc68e7
BLAKE2b-256 48703fcc3ed1fa90de2623b0af6b74fa7570021cf92166ccb063b022b6c317a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ycontract-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 11.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5550161f0f2c11e017b8531a292471d0d9973bbd016376fd0b2a99b9d3fe64dc
MD5 80616c0386fe94ff9dee820d63346eee
BLAKE2b-256 8d92dc250ae9b47215e660cc8266c27c63cad3176e623c58a64aef35e9446998

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