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

Uploaded Source

Built Distribution

ycontract-0.3.2-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ycontract-0.3.2.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.2.tar.gz
Algorithm Hash digest
SHA256 3ee01f706fd041dada39a4276c4ef0d6818af1c30f744501f3b4caa9cc1986df
MD5 73d19d7c2879dea3267c8bae7874b46b
BLAKE2b-256 fc825177a5085fd13e92ae67b692c78ddf9401d9aad8159cf8bbf96e5174f6d5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ycontract-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 11.3 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 24ffeca58c98db652fffd12e03798568cf1c47232e26ea6d7cd49523264d857c
MD5 baaec659fb7451c63d2a8711faa18e65
BLAKE2b-256 0efcd44d3392ccb55f6fe5f87d751fe37f233ca86d1a8fd02717d4552b55dc77

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