python3-annotated-types

Reusable constraint types to use with typing.Annotated

Description

Extension to Python's type annotation system, leveraging the capabilities of typing.Annotated to incorporate metadata and constraints directly into type hints. This package facilitates the representation of common constraints such as value bounds (e.g., greater than, less than), length restrictions on collections, and predicates for runtime checks, among others. Designed to enhance the expressiveness and utility of type annotations for both static analysis tools and runtime validation libraries.

Key features:
  - Scalar Value Constraints: Define bounds on scalar values (e.g., integers,
    floats) with Gt, Lt, Ge, Le for greater/less than (or equal to)
    comparisons.
  - Collection Size Constraints: Specify the expected size of collections
    using Len, MinLen, and MaxLen, applicable to any type supporting the len()
    function.
  - Runtime Checks: Utilize the Predicate marker to denote runtime checks,
    enabling custom validation logic within type annotations.
  - Comprehensive Documentation: Annotations can include documentation strings
    via the Doc marker, improving code readability and support for static
    analysis tools.
  - No Runtime Overhead for Checks: While enhancing type annotations with
    meaningful constraints, the package avoids introducing runtime overhead by
    not performing automatic validation checks, preserving performance.

Upload more screenshots

Please help extend the collection of screenshots. Just make a screenshot and upload it here. You don't need to register or anything.

Upload a screenshot

Hint: upload an image here from your clipboard with Ctrl-V


Homepage

https://github.com/annotated-types/annotated-types


Install this software package

If the package is available for the distribution you are currently using on your computer then install the software by clicking on…

Install python3-annotated-types