Python library for contracts testing
Project description
ycontract
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 in_contract, out_contract
@in_contract(lambda a, b: a * b > 0)
def add(a, b, c):
return a + b
@out_contract(lambda res: res > 0)
def sub(a, b):
return a - b
And more complex example about in_contract is
@in_contract(
lambda a0: a0 > 0,
lambda a1, b: a1 > 0 and b > 0,
{"a2": lambda x: x > 0},
{
("a3",): lambda x: x >= 0,
("a3-2",): lambda x: x <= 0,
("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
Project details
Release history Release notifications | RSS feed
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.6.1.tar.gz
(7.7 kB
view hashes)
Built Distribution
Close
Hashes for ycontract-0.2.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65209e89083cecca4d5a2715f6035ad766d97d74263f2b009389c94799c76d96 |
|
MD5 | ec1d13bb6382b5903bdb80e1dfb21067 |
|
BLAKE2b-256 | 62e2a535fc12a1b4d1da614612a0447c6adbdc0c55c2d4319ebd8623f4f6164d |