class documentation

class _ModuleRegistry:

View In Hierarchy

Registry of modules to load in a package init file.

To avoid potential thread safety issues for imports that are deferred in a function, like https://bugs.python.org/issue38884, these modules are added to the system module cache by importing them after the packages has finished initialization.

A global instance is provided under the name .preloaded. Use the function .preload_module to register modules to load and .import_prefix to load all the modules that start with the given path.

While the modules are loaded in the global module cache, it's advisable to access them using .preloaded to ensure that it was actually registered. Each registered module is added to the instance __dict__ in the form <package>_, omitting sqlalchemy from the package name. Example: sqlalchemy.sql.util becomes preloaded.sql_util.

Method __init__ Undocumented
Method import​_prefix Resolve all the modules in the registry that start with the specified path.
Method preload​_module Adds the specified modules to the list to load.
Instance Variable module​_registry Undocumented
Instance Variable prefix Undocumented
def __init__(self, prefix='sqlalchemy.'):

Undocumented

def import_prefix(self, path):
Resolve all the modules in the registry that start with the specified path.
def preload_module(self, *deps):

Adds the specified modules to the list to load.

This method can be used both as a normal function and as a decorator. No change is performed to the decorated object.

module_registry: set =

Undocumented

prefix =

Undocumented