Module¶
module
¶
Base class for defining flepimop2 modules.
ModuleABC
¶
Bases: ABC
Abstract base class for flepimop2 modules.
Attributes:
| Name | Type | Description |
|---|---|---|
module |
str
|
The fully-qualified module name. Concrete subclasses may define
this explicitly or provide a namespaced class keyword argument such as
|
module_namespace |
str | None
|
The flepimop2 namespace used to resolve short module
names such as |
options |
dict[str, Any] | None
|
Optional dictionary of additional options the module exposes for
|
__init_subclass__(**kwargs)
¶
Ensure concrete subclasses define a valid module name.
This validation works for both plain Python and Pydantic-based subclasses.
If module_namespace="..." or module="..." are supplied in the class
definition, they are normalized before validation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
Any
|
Additional keyword arguments passed to parent classes. |
{}
|
Source code in src/flepimop2/module.py
option(name, default=RaiseOnMissing)
¶
Retrieve an option value by name, with an optional default.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The name of the option to retrieve. |
required |
default
|
Any
|
The default value to return if the option is not found. If
not provided, defaults to |
RaiseOnMissing
|
Returns:
| Type | Description |
|---|---|
Any
|
The value of the option if found, otherwise the default value. |
Raises:
| Type | Description |
|---|---|
KeyError
|
If the option is missing and |
Examples:
>>> from flepimop2.module import ModuleABC
>>> class MyModule(ModuleABC):
... module = "my_module"
... options = {"option1": 42}
>>> mod = MyModule()
>>> mod.option("option1")
42
>>> mod.option("option2", default="default_value")
'default_value'
>>> mod.option("option2")
Traceback (most recent call last):
...
KeyError: "Option 'option2' not found in module 'my_module'."
>>> class MyModuleWithMissingOption(ModuleABC):
... module = "missing_opts"
>>> mod = MyModuleWithMissingOption()
>>> mod.option("option1", default="default_value")
'default_value'
>>> mod.option("option1")
Traceback (most recent call last):
...
KeyError: "Option 'option1' not found in module 'missing_opts'."