# tinker_cookbook.utils.make_deprecated_module_getattr ### [**tinker_cookbook.utils.make_deprecated_module_getattr**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/utils/deprecation.py#L198)(*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**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/utils/deprecation.py#L199) (*str*) – `__name__` of the module defining `__getattr__`. - [**attrs**](https://github.com/thinking-machines-lab/tinker-cookbook/blob/main/tinker_cookbook/utils/deprecation.py#L200) (*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 be `None`. **Returns:** A `__getattr__` function. ```python # In mymodule/__init__.py __getattr__ = make_deprecated_module_getattr( __name__, {"OldThing": ("mymodule.new_place.NewThing", "0.20.0")}, ) ```