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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ycontract-0.2.8.tar.gz
  • Upload date:
  • Size: 8.6 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.8.tar.gz
Algorithm Hash digest
SHA256 a0bd11423965f9f55af37edb066597e8005db7635483ec7ab6c0878fa41c77e3
MD5 45d5135bd5022862692740958263aef2
BLAKE2b-256 d146ce011beff6de0a4dc642e06a12ff3c04eb26292ecf7df2891f66401c3398

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ycontract-0.2.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 4b0288055edb052f8b77fecf2867745b762f71722a18907dcdf90b0d0bc4d6b1
MD5 5cc834890fa96be2a7b293bb9a271ade
BLAKE2b-256 28597e9dbe365fdf943032576b3a21558d67c9722e73265cc4f65183c77eaeba

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