/opt/imh-python/lib/python3.9/site-packages/IPython/utils
NameSizeModeActions
tests/-0755rm
__pycache__/-0755rm
capture.py51610644editdlrm
colorable.py7860644editdlrm
coloransi.py69720644editdlrm
contexts.py16190644editdlrm
daemonize.py2000644editdlrm
data.py10150644editdlrm
decorators.py26800644editdlrm
dir2.py22320644editdlrm
docs.py860644editdlrm
encoding.py28430644editdlrm
eventful.py1380644editdlrm
frame.py30480644editdlrm
generics.py7060644editdlrm
importstring.py10500644editdlrm
io.py46310644editdlrm
ipstruct.py118560644editdlrm
jsonutil.py1480644editdlrm
localinterfaces.py1690644editdlrm
log.py1230644editdlrm
module_paths.py23270644editdlrm
openpy.py34170644editdlrm
path.py119370644editdlrm
process.py18780644editdlrm
py3compat.py16020644editdlrm
PyColorize.py108750644editdlrm
sentinel.py4210644editdlrm
shimmodule.py26690644editdlrm
signatures.py4740644editdlrm
strdispatch.py18380644editdlrm
sysinfo.py43650644editdlrm
syspathcontext.py19520644editdlrm
tempdir.py18670644editdlrm
terminal.py32060644editdlrm
text.py244280644editdlrm
timing.py42750644editdlrm
tokenutil.py50830644editdlrm
traitlets.py1430644editdlrm
tz.py13800644editdlrm
ulinecache.py6840644editdlrm
version.py12230644editdlrm
wildcard.py46120644editdlrm
_process_cli.py20200644editdlrm
_process_common.py70030644editdlrm
_process_posix.py86660644editdlrm
_process_win32.py61320644editdlrm
_process_win32_controller.py213290644editdlrm
_sysinfo.py450644editdlrm
__init__.py00644editdlrm
Edit: /opt/imh-python/lib/python3.9/site-packages/IPython/utils/shimmodule.py (2669B)
"""A shim module for deprecated imports """ # Copyright (c) IPython Development Team. # Distributed under the terms of the Modified BSD License. import importlib.abc import importlib.util import sys import types from importlib import import_module from .importstring import import_item class ShimWarning(Warning): """A warning to show when a module has moved, and a shim is in its place.""" class ShimImporter(importlib.abc.MetaPathFinder): """Import hook for a shim. This ensures that submodule imports return the real target module, not a clone that will confuse `is` and `isinstance` checks. """ def __init__(self, src, mirror): self.src = src self.mirror = mirror def _mirror_name(self, fullname): """get the name of the mirrored module""" return self.mirror + fullname[len(self.src) :] def find_spec(self, fullname, path, target=None): if fullname.startswith(self.src + "."): mirror_name = self._mirror_name(fullname) return importlib.util.find_spec(mirror_name) class ShimModule(types.ModuleType): def __init__(self, *args, **kwargs): self._mirror = kwargs.pop("mirror") src = kwargs.pop("src", None) if src: kwargs['name'] = src.rsplit('.', 1)[-1] super(ShimModule, self).__init__(*args, **kwargs) # add import hook for descendent modules if src: sys.meta_path.append( ShimImporter(src=src, mirror=self._mirror) ) @property def __path__(self): return [] @property def __spec__(self): """Don't produce __spec__ until requested""" return import_module(self._mirror).__spec__ def __dir__(self): return dir(import_module(self._mirror)) @property def __all__(self): """Ensure __all__ is always defined""" mod = import_module(self._mirror) try: return mod.__all__ except AttributeError: return [name for name in dir(mod) if not name.startswith('_')] def __getattr__(self, key): # Use the equivalent of import_item(name), see below name = "%s.%s" % (self._mirror, key) try: return import_item(name) except ImportError as e: raise AttributeError(key) from e def __repr__(self): # repr on a module can be called during error handling; make sure # it does not fail, even if the import fails try: return self.__getattr__("__repr__")() except AttributeError: return f""