Prerequisite functions to help and assert inputs and outputs condition and type
Project Links
Meta
Author: SamuelNLP
Requires Python: >=3.14
Classifiers
prerequisites
Small runtime validation helpers for preconditions and type checks.
Install
pip install prerequisites
What it provides
- Value checks:
require,require_one_in_all,require_all_in_all - Type checks:
require_type,require_one_of_types,require_all_of_type,require_all_same_type,require_type_or_none - Decorator checks:
@validate_typesfor argument validation using type hints
Quick examples
Value checks
from prerequisites import require, require_all_in_all, require_one_in_all
require(2 > 1)
require_one_in_all([False, True, False])
require_all_in_all([True, 2 + 2 == 4])
Type checks
from prerequisites import (
require_all_of_type,
require_all_same_type,
require_one_of_types,
require_type,
require_type_or_none,
)
require_type(10, int)
require_one_of_types(3.14, (int, float))
require_all_of_type([1, 2, 3], int)
require_all_same_type(["a", "b", "c"], (str,))
require_type_or_none(None, str)
Decorator validation
from prerequisites import validate_types
@validate_types
def add(a: int, b: int) -> int:
return a + b
add(1, 2) # ok
add("1", 2) # raises TypeError
Shallow container behavior
@validate_types validates only outer container types for parameterized hints.
from prerequisites import validate_types
@validate_types
def count(values: list[int]) -> int:
return len(values)
count([1, 2, 3])
count([1, "x"]) # valid in current shallow mode (still a list)
Notes
@validate_typesvalidates function arguments only.- Return annotations are not enforced.
- Errors raise
TypeErrororValueErrordepending on the helper.
1.0.5
Mar 15, 2026
1.0.4
Nov 14, 2025
1.0.3
Dec 05, 2023
1.0.2
Oct 24, 2023
1.0.1
Oct 24, 2023
1.0.0
Oct 24, 2023