betty.plugin.factory module#

Plugin factories.

class betty.plugin.factory.PluginManufacturer#

Bases: 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 | NothingType = <Nothing>, /)#
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, KeyedPorter[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.

final class betty.plugin.factory.PluginManufacturerPorter#

Bases: KeyedPorter, Generic

Port betty.plugin.factory.PluginManufacturer to portable data.

__init__(cls: type[PluginManufacturerT])#
dump(data: PluginManufacturerT, /) PortableData#

Dump data to its portable form.

dump_keyed(data: PluginManufacturerT, /) tuple[str, PortableData]#

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

Raises:

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

load(data: PortableData, /) PluginManufacturerT#

Load data from its portable form.

load_keyed(key: str, data: PortableData, /) PluginManufacturerT#

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

Raises:

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