code: def shadow_normal_module(cls, mod_name=None):
          
          if mod_name is None:
              frame = inspect.currentframe()
              try:
                  mod_name = frame.f_back.f_locals['__name__']
              finally:
                  del frame
          orig_mod = sys.modules[mod_name]
          lazy_mod = cls(orig_mod.__name__, orig_mod.__doc__, orig_mod)
          for attr in dir(orig_mod):
              setattr(lazy_mod, attr, getattr(orig_mod, attr))
          sys.modules[mod_name] = lazy_mod
          return lazy_mod
docs: Shadow a module with an instance of LazyModule
  
          :param mod_name:
              Name of the module to shadow. By default this is the module that is
              making the call into this method. This is not hard-coded as that
              module might be called '__main__' if it is executed via 'python -m'
          :returns:
              A fresh instance of :class:`LazyModule`.