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

Uploaded Source

Built Distribution

ycontract-0.3.3.2-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ycontract-0.3.3.2.tar.gz
  • Upload date:
  • Size: 10.2 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.3.2.tar.gz
Algorithm Hash digest
SHA256 dfe0859180ad94825f7e0a858c3425d698a24d4b1646b421930d0b4d3bdbb46a
MD5 6e76ca436ec91fb33b4e876c5158e412
BLAKE2b-256 a6dc3e175a2908c92187303174d6c4754b059b7261beb2e2a4a4eb2566355890

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ycontract-0.3.3.2-py3-none-any.whl
  • Upload date:
  • Size: 11.5 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.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bb9770cdc2cc4d895b5a41d49d5283369525176928fa8d770a0e582dad48985e
MD5 2337e9fa075a648d15722d4177c0e5ad
BLAKE2b-256 5688ef09a5688d219cd70a924328eda74113b530ae31fa30194f2d57a3b264b6

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