core.module#

Defines the Step abstract base class, which acts as a blueprint for steps in the archiving pipeline by handling user configuration, validating the steps properties, and implementing dynamic instantiation.

Module Contents#

core.module.HAS_SETUP_PATHS = False#
class core.module.ModuleFactory#
setup_paths(paths: list[str]) None#

Sets up the paths for the modules to be loaded from

This is necessary for the modules to be imported correctly

get_module(module_name: str, config: dict) Type[core.base_module.BaseModule]#

Gets and sets up a module using the provided config

This will actually load and instantiate the module, and load all its dependencies (i.e. not lazy)

get_module_lazy(module_name: str, suppress_warnings: bool = False) LazyBaseModule#

Lazily loads a module, returning a LazyBaseModule

This has all the information about the module, but does not load the module itself or its dependencies

To load an actual module, call .setup() on a lazy module

available_modules(limit_to_modules: List[str] = [], suppress_warnings: bool = False) List[LazyBaseModule]#
class core.module.LazyBaseModule(module_name, path, factory: ModuleFactory)#

A lazy module class, which only loads the manifest and does not load the module itself.

This is useful for getting information about a module without actually loading it.

name: str#
description: str#
path: str#
module_factory: ModuleFactory#
property type#
property entry_point#
property dependencies: dict#
property configs: dict#
property requires_setup: bool#
property display_name: str#
property manifest: dict#
load(config) core.base_module.BaseModule#