Skip to content

pwwang/python-import-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Python Import System

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.

Releases

No releases published

Packages

No packages published