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

Uploaded Source

Built Distribution

ycontract-0.2.11-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ycontract-0.2.11.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.11.tar.gz
Algorithm Hash digest
SHA256 aab86a8c67da47472713f0c8219c9ad16b3a95bde05a181d04a7ca533f007005
MD5 0bf6271d6c533fc5d951d281081341b3
BLAKE2b-256 92d0678f49b37ff86df439a77d62b7b2fec1ae046326d1c0475a6ee2455b2589

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ycontract-0.2.11-py3-none-any.whl
  • Upload date:
  • Size: 10.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.2.11-py3-none-any.whl
Algorithm Hash digest
SHA256 d4273dbb3bb8bb51fd9810896af6535bbee696a54873d3af422f16428ffe6865
MD5 53854fbe782d64749cf150fd3f81c968
BLAKE2b-256 beb6d99636bfa74e91e85c73c514a6fad17a3cc8ef1b6df5815f073eb77b7e4d

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