Provide design-by-contract with informative violation messages.
Project description
icontract
icontract provides design-by-contract to Python3 with informative violation messages and inheritance.
It also gives a base for a flourishing of a wider ecosystem:
A linter pyicontract-lint,
A sphinx plug-in sphinx-icontract,
A tool icontract-hypothesis for automated testing and ghostwriting test files which infers Hypothesis strategies based on the contracts,
together with IDE integrations such as icontract-hypothesis-vim, icontract-hypothesis-pycharm, and icontract-hypothesis-vscode,
Directly integrated into CrossHair, a tool for automatic verification of Python programs,
together with IDE integrations such as crosshair-pycharm and crosshair-vscode, and
An integration with FastAPI through fastapi-icontract to enforce contracts on your HTTP API and display them in OpenAPI 3 schema and Swagger UI, and
An extensive corpus, Python-by-contract corpus, of Python programs annotated with contracts for educational, testing and research purposes.
Installation
Install icontract with pip:
pip3 install icontract
Versioning
We follow Semantic Versioning. The version X.Y.Z indicates:
X is the major version (backward-incompatible),
Y is the minor version (backward-compatible), and
Z is the patch version (backward-compatible bug fix).
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
Hashes for icontract-2.6.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17cafeddda48637677e854aae51f29177b916c9c4cb94d66d73fc1f8541a8fc0 |
|
MD5 | 4c2c5126ccb19fcbbe47c1a92551c42b |
|
BLAKE2b-256 | ab11f55bf95fa952c492b5cac0e3c47a542e2b4b91791b0f1d64807e1018078c |