PyContracts is a Python package that allows to declare constraints on function parameters and return values. Contracts can be specified using Python3 annotations, or inside a docstring. PyContracts supports a basic type system, variables binding, arithmetic constraints, and has several specialized contracts and an extension API.
☆416Dec 2, 2025Updated 3 months ago
Alternatives and similar repositories for contracts
Users that are interested in contracts are comparing it to the libraries listed below
Sorting:
- Design-by-contract in Python3 with informative violation messages and inheritance☆396Jan 29, 2026Updated last month
- An implementation of contracts for Python.☆350Aug 30, 2019Updated 6 years ago
- The property-based testing library for Python☆8,504Updated this week
- Persistent/Immutable/Functional data structures for Python☆2,174Jan 31, 2026Updated last month
- Python 3.5+ runtime type checking for integration testing and data validation☆548Jun 2, 2024Updated last year
- Build languages on Python.☆12May 2, 2021Updated 4 years ago
- Typing-toolbox for Python 3 _and_ 2.7 w.r.t. PEP 484.☆202Apr 29, 2023Updated 2 years ago
- Natural language hashing library.☆10Nov 24, 2014Updated 11 years ago
- Easy going emails with Python for easy going people, who email☆14Jan 13, 2025Updated last year
- A functional standard library for Python.☆5,128Jan 1, 2026Updated 2 months ago
- For Python3, e.g. @typecheck add_count(count: int, when: any(datetime, timedelta) = datetime.now)☆168Sep 1, 2021Updated 4 years ago
- Run-time type checker for Python☆1,747Feb 19, 2026Updated last month
- QuickCheck specification-based testing for Julia☆17Jan 24, 2021Updated 5 years ago
- Cython implementation of Toolz: High performance functional utilities☆1,102Dec 1, 2025Updated 3 months ago
- Good Curio!☆4,134Dec 21, 2025Updated 2 months ago
- 🔩 Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library.…☆6,855Mar 6, 2026Updated 2 weeks ago
- Canonical JSON☆32Mar 16, 2023Updated 3 years ago
- A Python library that generates static type annotations by collecting runtime types☆4,995Feb 11, 2026Updated last month
- small wiki engine based on static reST files and git for versionning☆25Oct 26, 2015Updated 10 years ago
- 🤝 Design by contract for Python. Write bug-free code. Add a few decorators, get static analysis and tests for free.☆877Nov 30, 2025Updated 3 months ago
- Simple, elegant, Pythonic functional programming.☆4,313Feb 16, 2026Updated last month
- A python lens library for manipulating deeply nested immutable structures☆333Nov 15, 2023Updated 2 years ago
- asyncio (PEP 3156) nsq (message queue) client.☆16Aug 10, 2018Updated 7 years ago
- A pythonic wrapper over `atd` to schedule deletion of files/directories.☆53Aug 6, 2017Updated 8 years ago
- Functional-style recursive pattern matching in Python. Crazy stuff.☆29May 23, 2016Updated 9 years ago
- Pick a license, any license.☆13Feb 7, 2016Updated 10 years ago
- pattern matching for python☆25May 12, 2009Updated 16 years ago
- A lightweight library for converting complex objects to and from simple Python datatypes.☆7,228Mar 13, 2026Updated last week
- Proxies and wrappers for ordinary Python objects☆21Jul 24, 2015Updated 10 years ago
- Python Classes Without Boilerplate☆5,746Updated this week
- Bottom-up approach to refactoring in python☆724Jan 29, 2022Updated 4 years ago
- Functional programming in Python: implementation of missing features to enjoy FP☆3,381Aug 30, 2022Updated 3 years ago
- Multiple dispatch☆843Dec 5, 2024Updated last year
- Auto-generate PEP-484 annotations☆1,449Jul 3, 2022Updated 3 years ago
- pdfcli is a CLI tool for manipulating PDFS from the command line.☆13Dec 8, 2022Updated 3 years ago
- Easy anonymous functions by partial application of operators☆104Dec 14, 2023Updated 2 years ago
- A fancy and practical functional tools☆3,501Mar 9, 2026Updated last week
- Collection of library stubs for Python, with static types☆5,023Updated this week
- Schema validation just got Pythonic☆2,943Mar 4, 2026Updated 2 weeks ago