Registry#

fetchez.registry#

A unified, dynamic registry system for discovering and loading Fetchez Modules, Hooks, Schemas, and other plugins.

copyright:
  1. 2010-2026 Regents of the University of Colorado

license:

MIT, see LICENSE for more details.

class fetchez.registry.PluginRegistry[source]#

Bases: object

Base class for dynamically discovering and registering plugins.

base_class: Type | None = None#
builtin_pkg: str = ''#
entry_point_group: str = ''#
user_folder: str = ''#
classmethod get_registry()[source]#

Initialization of the class-level registry dictionary.

Return type:

Dict[str, Any]

classmethod load_builtins()[source]#

Recursively scan and load all built-in plugins.

classmethod load_user_plugins()[source]#

Securely scan local directories for user-provided plugins.

classmethod load_installed_plugins()[source]#

Load external pip-installed extensions via entry_points.

classmethod load_all()[source]#

Load all plugins: builtins, user plugins, and pip extensions.

classmethod get_info(mod_key)[source]#
Parameters:

mod_key (str)

Return type:

Dict[str, Any]

classmethod get_class(mod_key)[source]#
Parameters:

mod_key (str)

classmethod load_module(mod_key)#
Parameters:

mod_key (str)

classmethod list_all()[source]#
Return type:

Dict[str, Any]

classmethod search_modules(term)[source]#

Search modules by name, description, agency, or tags.

Parameters:

term (str)

class fetchez.registry.ModuleRegistry[source]#

Bases: PluginRegistry

base_class#

alias of FetchModule

builtin_pkg: str = 'fetchez.modules'#
entry_point_group: str = 'fetchez.modules'#
user_folder: str = 'modules'#
class fetchez.registry.HookRegistry[source]#

Bases: PluginRegistry

base_class#

alias of FetchHook

builtin_pkg: str = 'fetchez.hooks'#
entry_point_group: str = 'fetchez.hooks'#
user_folder: str = 'hooks'#
class fetchez.registry.SchemaRegistry[source]#

Bases: PluginRegistry

base_class#

alias of BaseSchema

builtin_pkg: str = 'fetchez.schemas'#
entry_point_group: str = 'fetchez.schemas'#
user_folder: str = 'schemas'#
classmethod apply_schema(config)[source]#

Looks for a schema in the config and applies its rules.

class fetchez.registry.RecipeRegistry[source]#

Bases: object

A registry for discovering and loading YAML recipes.

entry_point_group = 'fetchez.recipes'#
user_folder = 'recipes'#
classmethod get_registry()[source]#

Initialization of the class-level registry dictionary.

Return type:

Dict[str, Any]

classmethod load_all()[source]#
classmethod get_recipe(name)[source]#
Parameters:

name (str)

Return type:

Dict[str, Any] | None