python-import-system
python-import-system copied to clipboard
Python import system diagram
Diagram is drawn based on python's office documentation
Pseudo code
# import name, __import__(name), importlib.import_module(name), etc
if name in sys.modules:
if sys.modules[name] is None:
raise ModuleNotFoundError
else if "from import statement":
locals()[name] = module
else:
return module
else:
for finder in sys.meta_path:
spec = finder.find_spec(name, ...)
if spec is not None:
if spec.loader is None:
raise ImportError
else:
module = spec.loader.create_module(spec)
spec.loader.exec_module(module)
if "from import statement":
locals()[name] = module
else:
return module
else:
continue
else:
raise ModuleNotFoundError
Experiments
See playground.ipynb for some experiments on the diagram.