Module¶
module
¶
Base class for defining modules in the system, engine, or backend.
ModuleABC
¶
Bases: ABC
Abstract base class for modules in the system, engine, or backend.
Attributes:
| Name | Type | Description |
|---|---|---|
module |
str
|
The name of the module. |
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.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
**kwargs
|
Any
|
Additional keyword arguments passed to parent classes. |
{}
|
Raises:
| Type | Description |
|---|---|
TypeError
|
If a concrete subclass does not define a valid |
Source code in src/flepimop2/module.py
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | |
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'."
Source code in src/flepimop2/module.py
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | |