UpdateClass
Generate class modifications at runtime
Modify or extend existing classes dynamically.
Quick Example
import typemap_extensions as tm
from typing import Literal, Callable, Self
type InitFn[T] = tm.Member[
Literal["__init__"],
Callable[[tm.Param[Literal["self"], Self], *params], None],
]
class Model:
def __init_subclass__(cls) -> tm.UpdateClass[InitFn[cls]]:
super().__init_subclass__()Signature
class UpdateClass[*Ms]:
"""Update an existing class with new members."""What It Does
UpdateClass is used with __init_subclass__ to dynamically add or modify members when a class is subclassed.
Usage
Add Methods Dynamically
class MyBase:
def __init_subclass__(cls, **kwargs) -> tm.UpdateClass[...]:
# Add a method to each subclass
cls.describe = lambda self: f"I'm a {cls.__name__}"
super().__init_subclass__()
class User(MyBase):
pass
User().describe() # "I'm a User"Use Cases
- Dataclass-like behavior - Auto-generate
__init__,__repr__, etc. - ORM models - Add query methods to models
- Plugin systems - Extend classes dynamically
Note: This is an advanced feature. Most users won't need to use UpdateClass directly.