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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ycontract-0.2.10.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.10.tar.gz
Algorithm Hash digest
SHA256 700d43a98ca4fe12a3c2084c2fce8014c7fe3ec686de7fd25dd83b0d05b316d3
MD5 f999c95c49ee5149ddf198b8603a05a3
BLAKE2b-256 95cbb33a13af6abcf14087491e06e7ccfa909bd480190b4455a5c4e04f9a8f85

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ycontract-0.2.10-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.10-py3-none-any.whl
Algorithm Hash digest
SHA256 c71f94f6749bf20d3d214e677c8e960c863fa006d632a9890d16550df1022fbe
MD5 1e51b7f824aa2ff590cd70d952276c88
BLAKE2b-256 a07a78cbaf7b5a2bfda381b2a2bb8973cab77b5443578569c45b161116ae8441

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