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 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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfe0859180ad94825f7e0a858c3425d698a24d4b1646b421930d0b4d3bdbb46a
|
|
| MD5 |
6e76ca436ec91fb33b4e876c5158e412
|
|
| BLAKE2b-256 |
a6dc3e175a2908c92187303174d6c4754b059b7261beb2e2a4a4eb2566355890
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb9770cdc2cc4d895b5a41d49d5283369525176928fa8d770a0e582dad48985e
|
|
| MD5 |
2337e9fa075a648d15722d4177c0e5ad
|
|
| BLAKE2b-256 |
5688ef09a5688d219cd70a924328eda74113b530ae31fa30194f2d57a3b264b6
|