strongtyping-pyoverload provides a powerful overload decorator that brings true runtime method overloading to Python, similar to C++.
- Native Pydantic Integration: Automatically validate and dispatch based on Pydantic models.
- Deep Inheritance & Mixin Support: Respects Method Resolution Order (MRO) for complex class hierarchies.
- AI-Ready Metadata: Sets
__signature__and__annotations__for better IDE and AI assistant support. - High Performance: Optimized lookup logic with caching for minimal overhead.
- Modern Python: Full support for
typing.Annotated, keyword-only parameters, and Python 3.13+.
from strongtyping_pyoverload import overload
class DataProcessor:
@overload
def process(self, data: str):
return data.upper()
@overload
def process(self, data: list):
return [item * 2 for item in data]Full documentation can be found at readthedocs.