objectstate.reified_generics
Reified Generics Prototype - Runtime-preserved type parameters.
This module provides a proof-of-concept implementation of reified generics, where List[int] and List[str] are distinct types at runtime.
Core concepts: - ReifiedMeta: Metaclass with custom __instancecheck__ and __subclasscheck__ - Type caching: Same parameterization returns same type object - Covariance: issubclass(List[int], List[object]) works correctly
- Usage:
from objectstate.reified_generics import List, Dict
x = List[int]([1, 2, 3]) isinstance(x, List[int]) # True isinstance(x, List[str]) # False type(x).__args__ # (int,)
Functions
Clear the reified type cache (for testing). |
|
Get type arguments from a reified type. |
|
Get origin type from a reified type. |
|
|
Check if a type is a reified generic. |
|
Decorator to make a class support reified generics. |
Classes
Reified dict that preserves type parameters at runtime. |
|
|
Reified list that preserves type parameters at runtime. |
Metaclass for reified generic types. |
|
Reified set that preserves type parameters at runtime. |
|
|
Reified tuple that preserves type parameters at runtime. |
- class objectstate.reified_generics.ReifiedMeta[source]
Metaclass for reified generic types.
Provides custom isinstance/issubclass behavior that respects type parameters.
- class objectstate.reified_generics.ReifiedList(iterable=(), /)[source]
Reified list that preserves type parameters at runtime.
- Usage:
x = List[int]([1, 2, 3]) type(x) # List[int] isinstance(x, List[int]) # True
- class objectstate.reified_generics.ReifiedDict[source]
Reified dict that preserves type parameters at runtime.
- Usage:
x = Dict[str, int]({“a”: 1}) type(x) # Dict[str, int] isinstance(x, Dict[str, int]) # True
- class objectstate.reified_generics.ReifiedSet[source]
Reified set that preserves type parameters at runtime.
- class objectstate.reified_generics.ReifiedTuple(iterable=(), /)[source]
Reified tuple that preserves type parameters at runtime.
- objectstate.reified_generics.List
alias of
ReifiedList
- objectstate.reified_generics.Dict
alias of
ReifiedDict
- objectstate.reified_generics.Set
alias of
ReifiedSet
- objectstate.reified_generics.Tuple
alias of
ReifiedTuple
- objectstate.reified_generics.is_reified(t: type) bool[source]
Check if a type is a reified generic.
- objectstate.reified_generics.get_reified_args(t: type) tuple[source]
Get type arguments from a reified type.
- objectstate.reified_generics.get_reified_origin(t: type) type[source]
Get origin type from a reified type.