make_deprecated_module_getattr - Tinker Documentation
tinker_cookbook.utils.make_deprecated_module_getattr
tinker_cookbook.utils.make_deprecated_module_getattr( module_name, attrs)
Create a __getattr__ function for deprecating module-level attributes.
Returns a function suitable for assigning to __getattr__ at module scope.
When an old attribute name is accessed, it emits a deprecation warning and transparently returns the new object.
Parameters:
- module_name ( str) –
__name__of the module defining__getattr__. - attrs ( dict[str, tuple[str, str | None]] ) – Mapping of
{old_name: (dotted_path_to_new, removal_version)}. dotted_path_to_new is"package.module.NewName"and will be imported and returned. removal_version may beNone.
Returns: A __getattr__ function.
# In mymodule/__init__.py
__getattr__ = make_deprecated_module_getattr(
__name__,
{"OldThing": ("mymodule.new_place.NewThing", "0.20.0")},
)