betty.plugin.factory module

Plugin factories.

class betty.plugin.factory.PluginManufacturer

Bases: PortableRecord[Attr], Samplable, Data[PluginManufacturerDefinition], HasProps, ABC, Generic[_PluginManufacturerPluginDefinitionT, _PluginManufacturerPluginT]

Configure a single plugin instance.

final __init__(plugin: ResolvablePluginId[~betty.plugin.factory._PluginManufacturerPluginDefinitionT], data: ~betty.data.Data | PortableData | VoidType = <class 'betty.typing.Void'>, /)
final dump() PortableData

Dump the instance to portable data.

Raises:

betty.portable.error.NotPortable – Raised if any part of the data is not portable.

final dump_key(key: Attr, /) tuple[str, PortableData]

Dump the instance to portable data and a portable primary key.

Raises:

betty.portable.error.NotPortable – Raised if any part of the data is not portable.

final classmethod load(portable: PortableData, /) Self

Create a new instance from portable data.

Raises:

betty.exception.HumanFacingException – Raised if the portable data is invalid.

final classmethod load_key(portable: PortableData, key: Attr, portable_key: str, /) Self

Create a new instance from portable data and a portable primary key.

Raises:

betty.exception.HumanFacingException – Raised if the portable data is invalid.

plugin_data

Get the plugin’s own data.

plugin_id

The plugin ID.

final classmethod resolve(manufacturer: ResolvablePluginManufacturer[_PluginManufacturerPluginDefinitionT, _PluginManufacturerPluginT]) PluginManufacturer[_PluginManufacturerPluginDefinitionT, _PluginManufacturerPluginT]

Resolve a value to a plugin manufacturer.

final classmethod resolve_sequence(manufacturers: ResolvablePluginManufacturerSequence[_PluginManufacturerPluginDefinitionT, _PluginManufacturerPluginT]) MutableSequence[PluginManufacturer[_PluginManufacturerPluginDefinitionT, _PluginManufacturerPluginT]]

Resolve a value to a sequence of plugin manufacturers.

final classmethod samples() Samples[Self]

Get the samples.

final class betty.plugin.factory.PluginManufacturerDefinition

Bases: ObjectDefinition[PluginManufacturer], Generic

Define a plugin manufacturer.

__init__(plugin_type: type[Intersection[PluginDefinitionT, PluginClsDefinition[PluginT]]], /)
exception betty.plugin.factory.PluginManufacturerError

Bases: HumanFacingException, FactoryError

Raised when a plugin manufacturer could not create a new plugin instance.