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

Uploaded Source

Built Distribution

ycontract-0.2.9-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ycontract-0.2.9.tar.gz
  • Upload date:
  • Size: 8.7 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.2.9.tar.gz
Algorithm Hash digest
SHA256 bbe79e51523e4a0fb9f2b4e46384fb74a7ecdd493b80b60397b277dcddf9436b
MD5 eb0b279fcee1f181cc70d27ea724778e
BLAKE2b-256 39e91bafc42f732a219d7eabc41b63f7c3485e166ae32a0122f79b53b8547aa2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ycontract-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 9.9 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.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 7f855103d5c5e4f455ef8f07b04161713627b20ec02b54e6839923ceb4b4946e
MD5 e3067c62714d3b069a2a6a8c96292d41
BLAKE2b-256 4e80b9341d85e8b9f7cd33186e840144b9f3ac419b94ad5e88d57ada1315958a

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