class_docstr: Proxy for module that may not yet have been imported
  
  Parameters
  ----------
  module_name : str
      Full module name e.g. ``nibabel.minc``
  
  Examples
  --------
  
  ::
      arr = np.arange(24).reshape((2, 3, 4))
      nifti1 = ModuleProxy('nibabel.nifti1')
      nifti1_image = nifti1.Nifti1Image(arr, np.eye(4))
  
  So, the ``nifti1`` object is a proxy that will import the required module
  when you do attribute access and return the attributes of the imported
  module.
code: def __init__(self, module_name: str) -> None:
      self._module_name = module_name
  
file_path: nibabel/nibabel/deprecated.py
imports: from __future__ import annotations
  import typing
  import warnings
  from .deprecator import Deprecator
  from .pkg_info import cmp_pkg_version
label_desc: Use image node_id 1 to create a new ModuleProxy object  with example: obj = ModuleProxy(module_name)