arelle.PluginManager#

See COPYRIGHT.md for copyright information.

based on pull request 4

Module Contents#

Functions#

init

reset

orderedPluginConfig

save

close

logPluginTrace

If plugin trace file logging is configured, logs message to it. Only logs to controller logger if log is an error.

modulesWithNewerFileDates

freshenModuleInfos

moduleModuleInfo

moduleInfo

_get_name_dir_prefix

Get the name, directory and prefix of a module.

_get_location

Get the file name of a plugin.

_find_and_load_module

Load a module based on name and directory.

loadModule

pluginClassMethods

addPluginModule

Discover plugin entry points with given name.

reloadPluginModule

removePluginModule

addPluginModuleInfo

Given a dictionary containing module information, loads plugin info into pluginConfig

entryPointToModuleInfo

Given an EntryPoint instance, evaluates the plugin to retrieve a module information dictionary.

discoverPluginEntryPoints

Retrieve entry point information. Optionally provide name to retrieve a specific entry point.

Data#

API#

arelle.PluginManager.PLUGIN_TRACE_FILE#

None

arelle.PluginManager.PLUGIN_TRACE_LEVEL#

None

arelle.PluginManager.pluginJsonFile#

None

arelle.PluginManager.pluginConfig: dict | None#

None

arelle.PluginManager.pluginConfigChanged#

False

arelle.PluginManager.pluginTraceFileLogger#

None

arelle.PluginManager.modulePluginInfos#

None

arelle.PluginManager.pluginMethodsForClasses#

None

arelle.PluginManager._cntlr#

None

arelle.PluginManager._pluginBase#

None

arelle.PluginManager.EMPTYLIST#

[]

arelle.PluginManager._ERROR_MESSAGE_IMPORT_TEMPLATE#

‘Unable to load module {}’

arelle.PluginManager.init(cntlr: arelle.Cntlr.Cntlr, loadPluginConfig: bool = True) None#
arelle.PluginManager.reset()#
arelle.PluginManager.orderedPluginConfig()#
arelle.PluginManager.save(cntlr: arelle.Cntlr.Cntlr) None#
arelle.PluginManager.close()#
arelle.PluginManager.logPluginTrace(message: str, level: Number) None#

If plugin trace file logging is configured, logs message to it. Only logs to controller logger if log is an error.

Parameters:
  • message – Message to be logged

  • level – Log level of message (e.g. logging.INFO)

arelle.PluginManager.modulesWithNewerFileDates()#
arelle.PluginManager.freshenModuleInfos()#
arelle.PluginManager.moduleModuleInfo(moduleURL, reload=False, parentImportsSubtree=False)#
arelle.PluginManager.moduleInfo(pluginInfo)#
arelle.PluginManager._get_name_dir_prefix(controller: arelle.Cntlr.Cntlr, pluginBase: str, moduleURL: str, packagePrefix: str = '') tuple[str, str, str] | tuple[None, None, None]#

Get the name, directory and prefix of a module.

arelle.PluginManager._get_location(moduleDir: str, moduleName: str) str#

Get the file name of a plugin.

arelle.PluginManager._find_and_load_module(moduleDir: str, moduleName: str) types.ModuleType | None#

Load a module based on name and directory.

arelle.PluginManager.loadModule(moduleInfo: dict[str, Any], packagePrefix: str = '') None#
arelle.PluginManager.pluginClassMethods(className: str) Iterator[collections.abc.Callable[..., Any]]#
arelle.PluginManager.addPluginModule(name: str) dict[str, Any] | None#

Discover plugin entry points with given name.

Parameters:

name – The name to search for

Returns:

The module information dictionary, if added. Otherwise, None.

arelle.PluginManager.reloadPluginModule(name)#
arelle.PluginManager.removePluginModule(name)#
arelle.PluginManager.addPluginModuleInfo(plugin_module_info: dict[str, Any]) dict[str, Any] | None#

Given a dictionary containing module information, loads plugin info into pluginConfig

Parameters:

plugin_module_info – Dictionary of module info fields. See comment block in PluginManager.py for structure.

Returns:

The module information dictionary, if added. Otherwise, None.

arelle.PluginManager.entryPointToModuleInfo(entryPoint: importlib.metadata.EntryPoint) dict#

Given an EntryPoint instance, evaluates the plugin to retrieve a module information dictionary.

Parameters:

entryPoint – EntryPoint instance

Returns:

Module information dictionary

arelle.PluginManager.discoverPluginEntryPoints(name: str | None = None) list[importlib.metadata.EntryPoint]#

Retrieve entry point information. Optionally provide name to retrieve a specific entry point.

Parameters:

name – Only retrieve entry points with the given name. May return multiple items.

Returns:

List of EntryPoints