powermon.outputs.abstractoutput module

outputs / abstractoutput.py

class powermon.outputs.abstractoutput.AbstractOutput(name=None)

Bases: ABC

base class for all output modules

property formatter

the formatter for this output

abstract process(command=None, result: Result = None, mqtt_broker=None, device_info=None)

entry point of any output class

to_dto() AbstractOutputDTO

convert output object to a data transfer object

class powermon.outputs.abstractoutput.AbstractOutputDTO(*, output_type: str, topic: None | str, formatter: AbstractFormatDTO)

Bases: BaseModel

data transfer model for AbstractOutput class

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'formatter': FieldInfo(annotation=AbstractFormatDTO, required=True), 'output_type': FieldInfo(annotation=str, required=True), 'topic': FieldInfo(annotation=Union[NoneType, str], required=True)}

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.