bo4e.com package

Submodules

bo4e.com.adresse module

Contains Adresse class and corresponding marshmallow schema for de-/serialization

class bo4e.com.adresse.Adresse(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, postleitzahl: str | None = None, ort: str | None = None, ortsteil: str | None = None, strasse: str | None = None, hausnummer: str | None = None, postfach: str | None = None, adresszusatz: str | None = None, coErgaenzung: str | None = None, landescode: Landescode | None = Landescode.DE, **extra_data: Any)[source]

Bases: COM

Contains an address that can be used for most purposes.

adresszusatz: str | None

Zusatzhinweis zum Auffinden der Adresse, z.B. “3. Stock linke Wohnung”

co_ergaenzung: str | None

Im Falle einer c/o-Adresse steht in diesem Attribut die Anrede. Z.B. “c/o Veronica Hauptmieterin”

hausnummer: str | None

Hausnummer inkl. Zusatz; z.B. “3”, “4a”

landescode: Landescode | None

Offizieller ISO-Landescode

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'adresszusatz': FieldInfo(annotation=Union[str, NoneType], required=False, alias='adresszusatz', alias_priority=1, description='Zusatzhinweis zum Auffinden der Adresse, z.B. "3. Stock linke Wohnung"'), 'co_ergaenzung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='coErgaenzung', alias_priority=1, description='Im Falle einer c/o-Adresse steht in diesem Attribut die Anrede. Z.B. "c/o Veronica Hauptmieterin"'), 'hausnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='hausnummer', alias_priority=1, description='Hausnummer inkl. Zusatz; z.B. "3", "4a"'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'landescode': FieldInfo(annotation=Union[Landescode, NoneType], required=False, default=<Landescode.DE: 'DE'>, alias='landescode', alias_priority=1, description='Offizieller ISO-Landescode'), 'ort': FieldInfo(annotation=Union[str, NoneType], required=False, alias='ort', alias_priority=1, description='Bezeichnung der Stadt; z.B. "Hückelhoven"'), 'ortsteil': FieldInfo(annotation=Union[str, NoneType], required=False, alias='ortsteil', alias_priority=1, description='Bezeichnung des Ortsteils; z.B. "Mitte"'), 'postfach': FieldInfo(annotation=Union[str, NoneType], required=False, alias='postfach', alias_priority=1, description='Im Falle einer Postfachadresse das Postfach; Damit werden Straße und Hausnummer nicht berücksichtigt'), 'postleitzahl': FieldInfo(annotation=Union[str, NoneType], required=False, alias='postleitzahl', alias_priority=1, description='Die Postleitzahl; z.B: "41836"'), 'strasse': FieldInfo(annotation=Union[str, NoneType], required=False, alias='strasse', alias_priority=1, description='Bezeichnung der Straße; z.B. "Weserstraße"'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

ort: str | None

Bezeichnung der Stadt; z.B. “Hückelhoven”

ortsteil: str | None

Bezeichnung des Ortsteils; z.B. “Mitte”

postfach: str | None

Im Falle einer Postfachadresse das Postfach; Damit werden Straße und Hausnummer nicht berücksichtigt

postleitzahl: str | None

“41836”

Type:

Die Postleitzahl; z.B

strasse: str | None

Bezeichnung der Straße; z.B. “Weserstraße”

bo4e.com.angebotsposition module

Contains Angebotsposition class and corresponding marshmallow schema for de-/serialization

class bo4e.com.angebotsposition.Angebotsposition(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, positionsbezeichnung: str | None = None, positionspreis: Preis | None = None, positionsmenge: Menge | None = None, positionskosten: Betrag | None = None, **extra_data: Any)[source]

Bases: COM

Unterhalb von Angebotsteilen sind die Angebotspositionen eingebunden. Hier werden die angebotenen Bestandteile einzeln aufgeführt. Beispiel: Positionsmenge: 4000 kWh Positionspreis: 24,56 ct/kWh Positionskosten: 982,40 EUR

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'positionsbezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='positionsbezeichnung', alias_priority=1, description='Bezeichnung der jeweiligen Position des Angebotsteils'), 'positionskosten': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='positionskosten', alias_priority=1, description='Kosten (positionspreis * positionsmenge) für diese Angebotsposition'), 'positionsmenge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='positionsmenge', alias_priority=1, description='Menge des angebotenen Artikels (z.B. Wirkarbeit in kWh), in dieser Angebotsposition'), 'positionspreis': FieldInfo(annotation=Union[Preis, NoneType], required=False, alias='positionspreis', alias_priority=1, description='Preis pro Einheit/Stückpreis des angebotenen Artikels.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

positionsbezeichnung: str | None

Bezeichnung der jeweiligen Position des Angebotsteils

positionskosten: Betrag | None

Kosten (positionspreis * positionsmenge) für diese Angebotsposition

positionsmenge: Menge | None

Menge des angebotenen Artikels (z.B. Wirkarbeit in kWh), in dieser Angebotsposition

positionspreis: Preis | None

Preis pro Einheit/Stückpreis des angebotenen Artikels.

bo4e.com.angebotsteil module

Contains Angebotsteil class and corresponding marshmallow schema for de-/serialization

class bo4e.com.angebotsteil.Angebotsteil(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, positionen: list[Angebotsposition] | None = None, anfrageSubreferenz: str | None = None, lieferstellenangebotsteil: list[Marktlokation] | None = None, gesamtmengeangebotsteil: Menge | None = None, gesamtkostenangebotsteil: Betrag | None = None, lieferzeitraum: Zeitraum | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente wird ein Teil einer Angebotsvariante abgebildet. Hier werden alle Angebotspositionen aggregiert. Angebotsteile werden im einfachsten Fall für eine Marktlokation oder Lieferstellenadresse erzeugt. Hier werden die Mengen und Gesamtkosten aller Angebotspositionen zusammengefasst. Eine Variante besteht mindestens aus einem Angebotsteil.

anfrage_subreferenz: str | None

Identifizierung eines Subkapitels einer Anfrage, beispielsweise das Los einer Ausschreibung

gesamtkostenangebotsteil: Betrag | None

Summe der Jahresenergiekosten aller in diesem Angebotsteil enthaltenen Lieferstellen

gesamtmengeangebotsteil: Menge | None

Summe der Verbräuche aller in diesem Angebotsteil eingeschlossenen Lieferstellen

lieferstellenangebotsteil: list[Marktlokation] | None

Marktlokationen, für die dieses Angebotsteil gilt, falls vorhanden. Durch die Marktlokation ist auch die Lieferadresse festgelegt

lieferzeitraum: Zeitraum | None

Hier kann der Belieferungszeitraum angegeben werden, für den dieser Angebotsteil gilt

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'anfrage_subreferenz': FieldInfo(annotation=Union[str, NoneType], required=False, alias='anfrageSubreferenz', alias_priority=1, description='Identifizierung eines Subkapitels einer Anfrage, beispielsweise das Los einer Ausschreibung'), 'gesamtkostenangebotsteil': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='gesamtkostenangebotsteil', alias_priority=1, description='Summe der Jahresenergiekosten aller in diesem Angebotsteil enthaltenen Lieferstellen'), 'gesamtmengeangebotsteil': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='gesamtmengeangebotsteil', alias_priority=1, description='Summe der Verbräuche aller in diesem Angebotsteil eingeschlossenen Lieferstellen'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'lieferstellenangebotsteil': FieldInfo(annotation=Union[list[Marktlokation], NoneType], required=False, alias='lieferstellenangebotsteil', alias_priority=1, description='Summe der Verbräuche aller in diesem Angebotsteil eingeschlossenen Lieferstellen'), 'lieferzeitraum': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='lieferzeitraum', alias_priority=1, description='Hier kann der Belieferungszeitraum angegeben werden, für den dieser Angebotsteil gilt'), 'positionen': FieldInfo(annotation=Union[list[Angebotsposition], NoneType], required=False, alias='positionen', alias_priority=1, description='Einzelne Positionen, die zu diesem Angebotsteil gehören'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

positionen: list[Angebotsposition] | None

Einzelne Positionen, die zu diesem Angebotsteil gehören

bo4e.com.angebotsvariante module

Contains Angebotsvariante and corresponding marshmallow schema for de-/serialization

class bo4e.com.angebotsvariante.Angebotsvariante(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, angebotsstatus: Angebotsstatus | None = None, erstellungsdatum: AwareDatetime | None = None, bindefrist: AwareDatetime | None = None, teile: list[Angebotsteil] | None = None, gesamtmenge: Menge | None = None, gesamtkosten: Betrag | None = None, **extra_data: Any)[source]

Bases: COM

Führt die verschiedenen Ausprägungen der Angebotsberechnung auf

angebotsstatus: Angebotsstatus | None

Gibt den Status eines Angebotes an.

bindefrist: AwareDatetime | None

Bis zu diesem Zeitpunkt gilt die Angebotsvariante

erstellungsdatum: AwareDatetime | None

Datum der Erstellung der Angebotsvariante

gesamtkosten: Betrag | None

Aufsummierte Kosten aller Angebotsteile

gesamtmenge: Menge | None

Aufsummierte Wirkarbeitsmenge aller Angebotsteile

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'angebotsstatus': FieldInfo(annotation=Union[Angebotsstatus, NoneType], required=False, alias='angebotsstatus', alias_priority=1, description='Gibt den Status eines Angebotes an.'), 'bindefrist': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='bindefrist', alias_priority=1, description='Bis zu diesem Zeitpunkt gilt die Angebotsvariante'), 'erstellungsdatum': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='erstellungsdatum', alias_priority=1, description='Datum der Erstellung der Angebotsvariante'), 'gesamtkosten': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='gesamtkosten', alias_priority=1, description='Aufsummierte Kosten aller Angebotsteile'), 'gesamtmenge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='gesamtmenge', alias_priority=1, description='Aufsummierte Wirkarbeitsmenge aller Angebotsteile'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'teile': FieldInfo(annotation=Union[list[Angebotsteil], NoneType], required=False, alias='teile', alias_priority=1, description='Aufsummierte Wirkarbeitsmenge aller Angebotsteile'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

teile: list[Angebotsteil] | None

Angebotsteile werden im einfachsten Fall für eine Marktlokation oder Lieferstellenadresse erzeugt. Hier werden die Mengen und Gesamtkosten aller Angebotspositionen zusammengefasst. Eine Variante besteht mindestens aus einem Angebotsteil.

bo4e.com.aufabschlag module

Contains AufAbschlag class and corresponding marshmallow schema for de-/serialization

class bo4e.com.aufabschlag.AufAbschlag(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, bezeichnung: str | None = None, staffeln: list[Preisstaffel] | None = None, beschreibung: str | None = None, aufAbschlagstyp: AufAbschlagstyp | None = None, aufAbschlagsziel: AufAbschlagsziel | None = None, einheit: Waehrungseinheit | None = None, website: str | None = None, gueltigkeitszeitraum: Zeitraum | None = None, **extra_data: Any)[source]

Bases: COM

Modell für die preiserhöhenden (Aufschlag) bzw. preisvermindernden (Abschlag) Zusatzvereinbarungen, die individuell zu einem neuen oder bestehenden Liefervertrag abgeschlossen wurden.

auf_abschlagstyp: AufAbschlagstyp | None

Typ des Aufabschlages (z.B. absolut oder prozentual).

auf_abschlagsziel: AufAbschlagsziel | None

Diesem Preis oder den Kosten ist der Auf/Abschlag zugeordnet. Z.B. Arbeitspreis, Gesamtpreis etc..

beschreibung: str | None

Beschreibung zum Auf-/Abschlag

bezeichnung: str | None

Bezeichnung des Auf-/Abschlags

einheit: Waehrungseinheit | None

Gibt an in welcher Währungseinheit der Auf/Abschlag berechnet wird. Euro oder Ct.. (Nur im Falle absoluter Aufschlagstypen).

gueltigkeitszeitraum: Zeitraum | None

Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'auf_abschlagstyp': FieldInfo(annotation=Union[AufAbschlagstyp, NoneType], required=False, alias='aufAbschlagstyp', alias_priority=1, description='Typ des Aufabschlages (z.B. absolut oder prozentual).'), 'auf_abschlagsziel': FieldInfo(annotation=Union[AufAbschlagsziel, NoneType], required=False, alias='aufAbschlagsziel', alias_priority=1, description='Diesem Preis oder den Kosten ist der Auf/Abschlag zugeordnet. Z.B. Arbeitspreis, Gesamtpreis etc..'), 'beschreibung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='beschreibung', alias_priority=1, description='Beschreibung zum Auf-/Abschlag'), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1, description='Bezeichnung des Auf-/Abschlags'), 'einheit': FieldInfo(annotation=Union[Waehrungseinheit, NoneType], required=False, alias='einheit', alias_priority=1, description='Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind.'), 'gueltigkeitszeitraum': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeitszeitraum', alias_priority=1, description='Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind.'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'staffeln': FieldInfo(annotation=Union[list[Preisstaffel], NoneType], required=False, alias='staffeln', alias_priority=1, description='Werte für die gestaffelten Auf/Abschläge.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1, description='Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

staffeln: list[Preisstaffel] | None

Werte für die gestaffelten Auf/Abschläge.

website: str | None

Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind.

bo4e.com.aufabschlagproort module

Contains AufAbschlagProOrt class and corresponding marshmallow schema for de-/serialization

class bo4e.com.aufabschlagproort.AufAbschlagProOrt(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, postleitzahl: str | None = None, ort: str | None = None, netznr: str | None = None, staffeln: list[AufAbschlagstaffelProOrt] | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente können Auf- und Abschläge verschiedener Typen im Zusammenhang mit örtlichen Gültigkeiten abgebildet werden.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'netznr': FieldInfo(annotation=Union[str, NoneType], required=False, alias='netznr', alias_priority=1, description="Die ene't-Netznummer des Netzes in dem der Aufschlag gilt."), 'ort': FieldInfo(annotation=Union[str, NoneType], required=False, alias='ort', alias_priority=1, description='Der Ort für den der Aufschlag gilt.'), 'postleitzahl': FieldInfo(annotation=Union[str, NoneType], required=False, alias='postleitzahl', alias_priority=1, description='Die Postleitzahl des Ortes für den der Aufschlag gilt.'), 'staffeln': FieldInfo(annotation=Union[list[AufAbschlagstaffelProOrt], NoneType], required=False, alias='staffeln', alias_priority=1, description='Werte für die gestaffelten Auf/Abschläge mit regionaler Eingrenzung.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

netznr: str | None

Die ene’t-Netznummer des Netzes in dem der Aufschlag gilt.

ort: str | None

Der Ort für den der Aufschlag gilt.

postleitzahl: str | None

Die Postleitzahl des Ortes für den der Aufschlag gilt.

staffeln: list[AufAbschlagstaffelProOrt] | None

Werte für die gestaffelten Auf/Abschläge mit regionaler Eingrenzung.

bo4e.com.aufabschlagregional module

Contains AufAbschlagRegional and corresponding marshmallow schema for de-/serialization

class bo4e.com.aufabschlagregional.AufAbschlagRegional(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, bezeichnung: str | None = None, betraege: list[AufAbschlagProOrt] | None = None, beschreibung: str | None = None, aufAbschlagstyp: AufAbschlagstyp | None = None, aufAbschlagsziel: AufAbschlagsziel | None = None, einheit: Waehrungseinheit | None = None, website: str | None = None, zusatzprodukte: list[str] | None = None, voraussetzungen: list[str] | None = None, tarifnamensaenderungen: str | None = None, gueltigkeitszeitraum: Zeitraum | None = None, energiemixaenderung: Energiemix | None = None, vertagskonditionsaenderung: Vertragskonditionen | None = None, garantieaenderung: Preisgarantie | None = None, einschraenkungsaenderung: Tarifeinschraenkung | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente können Auf- und Abschläge verschiedener Typen im Zusammenhang mit regionalen Gültigkeiten abgebildet werden. Hier sind auch die Auswirkungen auf verschiedene Tarifparameter modelliert, die sich durch die Auswahl eines Auf- oder Abschlags ergeben.

auf_abschlagstyp: AufAbschlagstyp | None

Typ des Aufabschlages (z.B. absolut oder prozentual)

auf_abschlagsziel: AufAbschlagsziel | None

Diesem Preis oder den Kosten ist der Auf/Abschlag zugeordnet. Z.B. Arbeitspreis, Gesamtpreis etc.

beschreibung: str | None

Beschreibung zum Auf-/Abschlag

betraege: list[AufAbschlagProOrt] | None

Werte für die gestaffelten Auf/Abschläge mit regionaler Eingrenzung

bezeichnung: str | None

Bezeichnung des Auf-/Abschlags

einheit: Waehrungseinheit | None

Gibt an in welcher Währungseinheit der Auf/Abschlag berechnet wird. Euro oder Ct.

einschraenkungsaenderung: Tarifeinschraenkung | None

Änderungen in den Einschränkungen zum Tarif. Falls in dieser Komponenten angegeben, werden die Tarifparameter hiermit überschrieben.

energiemixaenderung: Energiemix | None

Der Energiemix kann sich durch einen AufAbschlag ändern (z.B. zwei Cent Aufschlag für Ökostrom: Sollte dies der Fall sein, wird hier die neue Zusammensetzung des Energiemix angegeben.

garantieaenderung: Preisgarantie | None

Änderungen in den Garantievereinbarungen. Falls in dieser Komponenten angegeben, werden die Tarifparameter hiermit überschrieben.

gueltigkeitszeitraum: Zeitraum | None

Zeitraum, in dem der Abschlag zur Anwendung kommen kann

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'auf_abschlagstyp': FieldInfo(annotation=Union[AufAbschlagstyp, NoneType], required=False, alias='aufAbschlagstyp', alias_priority=1, description='Typ des Aufabschlages (z.B. absolut oder prozentual)'), 'auf_abschlagsziel': FieldInfo(annotation=Union[AufAbschlagsziel, NoneType], required=False, alias='aufAbschlagsziel', alias_priority=1, description='Diesem Preis oder den Kosten ist der Auf/Abschlag zugeordnet. Z.B. Arbeitspreis, Gesamtpreis etc.'), 'beschreibung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='beschreibung', alias_priority=1, description='Beschreibung zum Auf-/Abschlag'), 'betraege': FieldInfo(annotation=Union[list[AufAbschlagProOrt], NoneType], required=False, alias='betraege', alias_priority=1, description='Werte für die gestaffelten Auf/Abschläge mit regionaler Eingrenzung'), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1, description='Bezeichnung des Auf-/Abschlags'), 'einheit': FieldInfo(annotation=Union[Waehrungseinheit, NoneType], required=False, alias='einheit', alias_priority=1, description='Gibt an in welcher Währungseinheit der Auf/Abschlag berechnet wird. Euro oder Ct.'), 'einschraenkungsaenderung': FieldInfo(annotation=Union[Tarifeinschraenkung, NoneType], required=False, alias='einschraenkungsaenderung', alias_priority=1, description='Änderungen in den Einschränkungen zum Tarif. Falls in dieser Komponenten angegeben,\nwerden die Tarifparameter hiermit überschrieben.'), 'energiemixaenderung': FieldInfo(annotation=Union[Energiemix, NoneType], required=False, alias='energiemixaenderung', alias_priority=1, description='Der Energiemix kann sich durch einen AufAbschlag ändern (z.B. zwei Cent Aufschlag für Ökostrom:\nSollte dies der Fall sein, wird hier die neue Zusammensetzung des Energiemix angegeben.'), 'garantieaenderung': FieldInfo(annotation=Union[Preisgarantie, NoneType], required=False, alias='garantieaenderung', alias_priority=1, description='Änderungen in den Garantievereinbarungen. Falls in dieser Komponenten angegeben,\nwerden die Tarifparameter hiermit überschrieben.'), 'gueltigkeitszeitraum': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeitszeitraum', alias_priority=1, description='Zeitraum, in dem der Abschlag zur Anwendung kommen kann'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'tarifnamensaenderungen': FieldInfo(annotation=Union[str, NoneType], required=False, alias='tarifnamensaenderungen', alias_priority=1, description='Durch die Anwendung des Auf/Abschlags kann eine Änderung des Tarifnamens auftreten.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'vertagskonditionsaenderung': FieldInfo(annotation=Union[Vertragskonditionen, NoneType], required=False, alias='vertagskonditionsaenderung', alias_priority=1, description='Änderungen in den Vertragskonditionen. Falls in dieser Komponenten angegeben,\nwerden die Tarifparameter hiermit überschrieben.'), 'voraussetzungen': FieldInfo(annotation=Union[list[str], NoneType], required=False, alias='voraussetzungen', alias_priority=1, description='Voraussetzungen, die erfüllt sein müssen, damit dieser AufAbschlag zur Anwendung kommen kann'), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1, description='Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1), 'zusatzprodukte': FieldInfo(annotation=Union[list[str], NoneType], required=False, alias='zusatzprodukte', alias_priority=1, description='Zusatzprodukte, die nur in Kombination mit diesem AufAbschlag erhältlich sind')}

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

This replaces Model.__fields__ from Pydantic V1.

tarifnamensaenderungen: str | None

Durch die Anwendung des Auf/Abschlags kann eine Änderung des Tarifnamens auftreten.

vertagskonditionsaenderung: Vertragskonditionen | None

Änderungen in den Vertragskonditionen. Falls in dieser Komponenten angegeben, werden die Tarifparameter hiermit überschrieben.

voraussetzungen: list[str] | None

Voraussetzungen, die erfüllt sein müssen, damit dieser AufAbschlag zur Anwendung kommen kann

website: str | None

Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind

zusatzprodukte: list[str] | None

Zusatzprodukte, die nur in Kombination mit diesem AufAbschlag erhältlich sind

bo4e.com.aufabschlagstaffelproort module

Contains AufAbschlagstaffelProOrt class and corresponding marshmallow schema for de-/serialization

class bo4e.com.aufabschlagstaffelproort.AufAbschlagstaffelProOrt(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, wert: Decimal | None = None, staffelgrenzeVon: Decimal | None = None, staffelgrenzeBis: Decimal | None = None, **extra_data: Any)[source]

Bases: COM

Gibt den Wert eines Auf- oder Abschlags und dessen Staffelgrenzen an

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'staffelgrenze_bis': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='staffelgrenzeBis', alias_priority=1, description='Oberer Wert, bis zu dem die Staffel gilt.'), 'staffelgrenze_von': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='staffelgrenzeVon', alias_priority=1, description='Unterer Wert, ab dem die Staffel gilt.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'wert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='wert', alias_priority=1, description='Der Wert für den Auf- oder Abschlag.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

staffelgrenze_bis: Decimal | None

Oberer Wert, bis zu dem die Staffel gilt.

staffelgrenze_von: Decimal | None

Unterer Wert, ab dem die Staffel gilt.

wert: Decimal | None

Der Wert für den Auf- oder Abschlag.

bo4e.com.ausschreibungsdetail module

Contains class Ausschreibungsdetail and corresponding marshmallow schema for de-/serialization

class bo4e.com.ausschreibungsdetail.Ausschreibungsdetail(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, marktlokationsId: str | None = None, netzebeneLieferung: str | None = None, netzebeneMessung: str | None = None, marktlokationsadresse: Adresse | None = None, lieferzeitraum: Zeitraum | None = None, netzbetreiber: str | None = None, kunde: str | None = None, zaehlernummer: str | None = None, marktlokationsbezeichnung: str | None = None, zaehlertechnik: Zaehlertyp | None = None, istLastgangVorhanden: bool | None = None, prognoseJahresarbeit: Menge | None = None, prognoseArbeitLieferzeitraum: Menge | None = None, prognoseLeistung: Menge | None = None, rechnungsadresse: Adresse | None = None, **extra_data: Any)[source]

Bases: COM

Die Komponente Ausschreibungsdetail wird verwendet um die Informationen zu einer Abnahmestelle innerhalb eines Ausschreibungsloses abzubilden.

ist_lastgang_vorhanden: bool | None

Zeigt an, ob es zu der Marktlokation einen Lastgang gibt. Falls ja, kann dieser abgerufen werden und daraus die Verbrauchswerte ermittelt werden

kunde: str | None

Bezeichnung des Kunden, der die Marktlokation nutzt

lieferzeitraum: Zeitraum | None

Angefragter Zeitraum für die ausgeschriebene Belieferung

marktlokations_id: str | None

Identifikation einer ausgeschriebenen Marktlokation

marktlokationsadresse: Adresse | None

Die Adresse an der die Marktlokation sich befindet

marktlokationsbezeichnung: str | None

Bezeichnung für die Lokation, z.B. ‘Zentraler Einkauf, Hamburg’

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'ist_lastgang_vorhanden': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istLastgangVorhanden', alias_priority=1, description='Prognosewert für die Jahresarbeit der ausgeschriebenen Lokation'), 'kunde': FieldInfo(annotation=Union[str, NoneType], required=False, alias='kunde', alias_priority=1, description='Bezeichnung des Kunden, der die Marktlokation nutzt'), 'lieferzeitraum': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='lieferzeitraum', alias_priority=1, description='Angefragter Zeitraum für die ausgeschriebene Belieferung'), 'marktlokations_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='marktlokationsId', alias_priority=1, description='Identifikation einer ausgeschriebenen Marktlokation'), 'marktlokationsadresse': FieldInfo(annotation=Union[Adresse, NoneType], required=False, alias='marktlokationsadresse', alias_priority=1, description='Die Adresse an der die Marktlokation sich befindet'), 'marktlokationsbezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='marktlokationsbezeichnung', alias_priority=1, description="Bezeichnung für die Lokation, z.B. 'Zentraler Einkauf, Hamburg'"), 'netzbetreiber': FieldInfo(annotation=Union[str, NoneType], required=False, alias='netzbetreiber', alias_priority=1, description="Bezeichnung des zuständigen Netzbetreibers, z.B. 'Stromnetz Hamburg GmbH'"), 'netzebene_lieferung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='netzebeneLieferung', alias_priority=1, description='In der angegebenen Netzebene wird die Marktlokation versorgt, z.B. MSP für Mittelspannung'), 'netzebene_messung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='netzebeneMessung', alias_priority=1, description='In der angegebenen Netzebene wird die Lokation gemessen, z.B. NSP für Niederspannung'), 'prognose_arbeit_lieferzeitraum': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='prognoseArbeitLieferzeitraum', alias_priority=1, description='Ein Prognosewert für die Arbeit innerhalb des angefragten Lieferzeitraums der ausgeschriebenen Lokation'), 'prognose_jahresarbeit': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='prognoseJahresarbeit', alias_priority=1, description='Prognosewert für die Jahresarbeit der ausgeschriebenen Lokation'), 'prognose_leistung': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='prognoseLeistung', alias_priority=1, description='Prognosewert für die abgenommene maximale Leistung der ausgeschriebenen Lokation'), 'rechnungsadresse': FieldInfo(annotation=Union[Adresse, NoneType], required=False, alias='rechnungsadresse', alias_priority=1, description='Die (evtl. abweichende) Rechnungsadresse'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zaehlernummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='zaehlernummer', alias_priority=1, description='Die Bezeichnung des Zählers an der Marktlokation'), 'zaehlertechnik': FieldInfo(annotation=Union[Zaehlertyp, NoneType], required=False, alias='zaehlertechnik', alias_priority=1, description='Spezifikation, um welche Zählertechnik es sich im vorliegenden Fall handelt, z.B. Leistungsmessung'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

netzbetreiber: str | None

Bezeichnung des zuständigen Netzbetreibers, z.B. ‘Stromnetz Hamburg GmbH’

netzebene_lieferung: str | None

In der angegebenen Netzebene wird die Marktlokation versorgt, z.B. MSP für Mittelspannung

netzebene_messung: str | None

In der angegebenen Netzebene wird die Lokation gemessen, z.B. NSP für Niederspannung

prognose_arbeit_lieferzeitraum: Menge | None

Ein Prognosewert für die Arbeit innerhalb des angefragten Lieferzeitraums der ausgeschriebenen Lokation

prognose_jahresarbeit: Menge | None

Prognosewert für die Jahresarbeit der ausgeschriebenen Lokation

prognose_leistung: Menge | None

Prognosewert für die abgenommene maximale Leistung der ausgeschriebenen Lokation

rechnungsadresse: Adresse | None

Die (evtl. abweichende) Rechnungsadresse

zaehlernummer: str | None

Die Bezeichnung des Zählers an der Marktlokation

zaehlertechnik: Zaehlertyp | None

Spezifikation, um welche Zählertechnik es sich im vorliegenden Fall handelt, z.B. Leistungsmessung

bo4e.com.ausschreibungslos module

Contains Ausschreibungslos class and corresponding marshmallow schema for de-/serialization

class bo4e.com.ausschreibungslos.Ausschreibungslos(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, losnummer: str | None = None, bezeichnung: str | None = None, preismodell: Preismodell | None = None, energieart: Sparte | None = None, wunschRechnungslegung: Rechnungslegung | None = None, wunschVertragsform: Vertragsform | None = None, betreutDurch: str | None = None, anzahlLieferstellen: int | None = None, lieferstellen: list[Ausschreibungsdetail] | None = None, lieferzeitraum: Zeitraum | None = None, bemerkung: str | None = None, gesamtMenge: Menge | None = None, wunschMindestmenge: Menge | None = None, wunschMaximalmenge: Menge | None = None, wiederholungsintervall: Zeitraum | None = None, wunschKuendingungsfrist: Zeitraum | None = None, wunschZahlungsziel: Zeitraum | None = None, **extra_data: Any)[source]

Bases: COM

Eine Komponente zur Abbildung einzelner Lose einer Ausschreibung

anzahl_lieferstellen: int | None

Anzahl der Lieferstellen in dieser Ausschreibung

bemerkung: str | None

Bemerkung des Kunden zum Los

betreut_durch: str | None

Name des Lizenzpartners

bezeichnung: str | None

Bezeichnung der Ausschreibung

energieart: Sparte | None

Unterscheidungsmöglichkeiten für die Sparte

gesamt_menge: Menge | None

Gibt den Gesamtjahresverbrauch (z.B. in kWh) aller in diesem Los enthaltenen Lieferstellen an

lieferstellen: list[Ausschreibungsdetail] | None

Die ausgeschriebenen Lieferstellen

lieferzeitraum: Zeitraum | None

Zeitraum, für den die in diesem Los enthaltenen Lieferstellen beliefert werden sollen

losnummer: str | None

Laufende Nummer des Loses

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'anzahl_lieferstellen': FieldInfo(annotation=Union[int, NoneType], required=False, alias='anzahlLieferstellen', alias_priority=1, description='Anzahl der Lieferstellen in dieser Ausschreibung'), 'bemerkung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bemerkung', alias_priority=1, description='Bemerkung des Kunden zum Los'), 'betreut_durch': FieldInfo(annotation=Union[str, NoneType], required=False, alias='betreutDurch', alias_priority=1, description='Name des Lizenzpartners'), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1, description='Bezeichnung der Ausschreibung'), 'energieart': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='energieart', alias_priority=1, description='Unterscheidungsmöglichkeiten für die Sparte'), 'gesamt_menge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='gesamtMenge', alias_priority=1, description='Gibt den Gesamtjahresverbrauch (z.B. in kWh) aller in diesem Los enthaltenen Lieferstellen an'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'lieferstellen': FieldInfo(annotation=Union[list[Ausschreibungsdetail], NoneType], required=False, alias='lieferstellen', alias_priority=1, description='Die ausgeschriebenen Lieferstellen'), 'lieferzeitraum': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='lieferzeitraum', alias_priority=1, description='Zeitraum, für den die in diesem Los enthaltenen Lieferstellen beliefert werden sollen'), 'losnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='losnummer', alias_priority=1, description='Laufende Nummer des Loses'), 'preismodell': FieldInfo(annotation=Union[Preismodell, NoneType], required=False, alias='preismodell', alias_priority=1, description='Bezeichnung der Preismodelle in Ausschreibungen für die Energielieferung'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'wiederholungsintervall': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='wiederholungsintervall', alias_priority=1, description='Kundenwunsch zur Kündigungsfrist in der Ausschreibung'), 'wunsch_kuendingungsfrist': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='wunschKuendingungsfrist', alias_priority=1, description='Kundenwunsch zur Kündigungsfrist in der Ausschreibung'), 'wunsch_maximalmenge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='wunschMaximalmenge', alias_priority=1, description='Maximalmenge Toleranzband (kWh, %)'), 'wunsch_mindestmenge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='wunschMindestmenge', alias_priority=1, description='Mindesmenge Toleranzband (kWh, %)'), 'wunsch_rechnungslegung': FieldInfo(annotation=Union[Rechnungslegung, NoneType], required=False, alias='wunschRechnungslegung', alias_priority=1, description='Aufzählung der Möglichkeiten zur Rechnungslegung in Ausschreibungen'), 'wunsch_vertragsform': FieldInfo(annotation=Union[Vertragsform, NoneType], required=False, alias='wunschVertragsform', alias_priority=1, description='Aufzählung der Möglichkeiten zu Vertragsformen in Ausschreibungen'), 'wunsch_zahlungsziel': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='wunschZahlungsziel', alias_priority=1, description='Kundenwunsch zum Zahlungsziel in der Ausschreibung'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

preismodell: Preismodell | None

Bezeichnung der Preismodelle in Ausschreibungen für die Energielieferung

wiederholungsintervall: Zeitraum | None

In welchem Intervall die Angebotsabgabe wiederholt werden darf. Angabe nur gesetzt für die 2. Phase bei öffentlich-rechtlichen Ausschreibungen

wunsch_kuendingungsfrist: Zeitraum | None

Kundenwunsch zur Kündigungsfrist in der Ausschreibung

wunsch_maximalmenge: Menge | None

Maximalmenge Toleranzband (kWh, %)

wunsch_mindestmenge: Menge | None

Mindesmenge Toleranzband (kWh, %)

wunsch_rechnungslegung: Rechnungslegung | None

Aufzählung der Möglichkeiten zur Rechnungslegung in Ausschreibungen

wunsch_vertragsform: Vertragsform | None

Aufzählung der Möglichkeiten zu Vertragsformen in Ausschreibungen

wunsch_zahlungsziel: Zeitraum | None

Kundenwunsch zum Zahlungsziel in der Ausschreibung

bo4e.com.betrag module

Contains Betrag class and corresponding marshmallow schema for de-/serialization

class bo4e.com.betrag.Betrag(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, wert: Decimal | None = None, waehrung: Waehrungscode | None = None, **extra_data: Any)[source]

Bases: COM

Die Komponente wird dazu verwendet, Summenbeträge (beispielsweise in Angeboten und Rechnungen) als Geldbeträge abzubilden. Die Einheit ist dabei immer die Hauptwährung also Euro, Dollar etc…

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'waehrung': FieldInfo(annotation=Union[Waehrungscode, NoneType], required=False, alias='waehrung', alias_priority=1, description='Gibt den Betrag des Preises an.'), 'wert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='wert', alias_priority=1, description='Gibt den Betrag des Preises an.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

waehrung: Waehrungscode | None

Die entsprechende Waehrung

wert: Decimal | None

Gibt den Betrag des Preises an.

bo4e.com.com module

Contains base class for all components

class bo4e.com.com.COM(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, **extra_data: Any)[source]

Bases: BaseModel

base class for all components

id: str | None

Eine generische ID, die für eigene Zwecke genutzt werden kann. Z.B. könnten hier UUIDs aus einer Datenbank stehen oder URLs zu einem Backend-System.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

version: str | None
zusatz_attribute: list[ZusatzAttribut] | None
class bo4e.com.com.TCom

Any type derived from COM including those that do not directly inherit from COM

alias of TypeVar(‘TCom’, bound=Type[COM])

bo4e.com.dienstleistung module

Contains Dienstleistung class and corresponding marshmallow schema for de-/serialization

class bo4e.com.dienstleistung.Dienstleistung(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, dienstleistungstyp: Dienstleistungstyp | None = None, bezeichnung: str | None = None, **extra_data: Any)[source]

Bases: COM

Abbildung einer abrechenbaren Dienstleistung.

bezeichnung: str | None

Bezeichnung der Dienstleistung

dienstleistungstyp: Dienstleistungstyp | None

Kennzeichnung der Dienstleistung

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1, description='Bezeichnung der Dienstleistung'), 'dienstleistungstyp': FieldInfo(annotation=Union[Dienstleistungstyp, NoneType], required=False, alias='dienstleistungstyp', alias_priority=1, description='Kennzeichnung der Dienstleistung'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.energieherkunft module

Contains Energieherkunft class and corresponding marshmallow schema for de-/serialization

class bo4e.com.energieherkunft.Energieherkunft(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, erzeugungsart: Erzeugungsart | None = None, anteilProzent: Decimal | None = None, **extra_data: Any)[source]

Bases: COM

Abbildung einer Energieherkunft

anteil_prozent: Decimal | None

Prozentualer Anteil der jeweiligen Erzeugungsart.

erzeugungsart: Erzeugungsart | None

Art der Erzeugung der Energie.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'anteil_prozent': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='anteilProzent', alias_priority=1, description='Prozentualer Anteil der jeweiligen Erzeugungsart.'), 'erzeugungsart': FieldInfo(annotation=Union[Erzeugungsart, NoneType], required=False, alias='erzeugungsart', alias_priority=1, description='Art der Erzeugung der Energie.'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.energiemix module

Contains Energiemix class and corresponding marshmallow schema for de-/serialization

class bo4e.com.energiemix.Energiemix(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, energiemixnummer: int | None = None, energieart: Sparte | None = None, bezeichnung: str | None = None, gueltigkeitsjahr: int | None = None, anteil: list[Energieherkunft] | None = None, bemerkung: str | None = None, co2Emission: Decimal | None = None, atommuell: Decimal | None = None, oekozertifikate: list[Oekozertifikat] | None = None, oekolabel: list[Oekolabel] | None = None, istInOekoTopTen: bool | None = None, website: str | None = None, **extra_data: Any)[source]

Bases: COM

Zusammensetzung der gelieferten Energie aus den verschiedenen Primärenergieformen.

anteil: list[Energieherkunft] | None

Anteile der jeweiligen Erzeugungsart

atommuell: Decimal | None

Höhe des erzeugten Atommülls in g/kWh

bemerkung: str | None

Bemerkung zum Energiemix

bezeichnung: str | None

Bezeichnung des Energiemix

co2_emission: Decimal | None

Höhe des erzeugten CO2-Ausstosses in g/kWh

energieart: Sparte | None

Strom oder Gas etc.

energiemixnummer: int | None

Eindeutige Nummer zur Identifizierung des Energiemixes

gueltigkeitsjahr: int | None

Jahr, für das der Energiemix gilt

ist_in_oeko_top_ten: bool | None

Kennzeichen, ob der Versorger zu den Öko Top Ten gehört

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'anteil': FieldInfo(annotation=Union[list[Energieherkunft], NoneType], required=False, alias='anteil', alias_priority=1, description='Anteile der jeweiligen Erzeugungsart'), 'atommuell': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='atommuell', alias_priority=1, description='Höhe des erzeugten Atommülls in g/kWh'), 'bemerkung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bemerkung', alias_priority=1, description='Bemerkung zum Energiemix'), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1, description='Bezeichnung des Energiemix'), 'co2_emission': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='co2Emission', alias_priority=1, description='Höhe des erzeugten CO2-Ausstosses in g/kWh'), 'energieart': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='energieart', alias_priority=1, description='Strom oder Gas etc.'), 'energiemixnummer': FieldInfo(annotation=Union[int, NoneType], required=False, alias='energiemixnummer', alias_priority=1, description='Eindeutige Nummer zur Identifizierung des Energiemixes'), 'gueltigkeitsjahr': FieldInfo(annotation=Union[int, NoneType], required=False, alias='gueltigkeitsjahr', alias_priority=1, description='Jahr, für das der Energiemix gilt'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'ist_in_oeko_top_ten': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istInOekoTopTen', alias_priority=1, description='Kennzeichen, ob der Versorger zu den Öko Top Ten gehört'), 'oekolabel': FieldInfo(annotation=Union[list[Oekolabel], NoneType], required=False, alias='oekolabel', alias_priority=1, description='Ökolabel für den Energiemix'), 'oekozertifikate': FieldInfo(annotation=Union[list[Oekozertifikat], NoneType], required=False, alias='oekozertifikate', alias_priority=1, description='Zertifikate für den Energiemix'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1, description='Internetseite, auf der die Strommixdaten veröffentlicht sind'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

oekolabel: list[Oekolabel] | None

Ökolabel für den Energiemix

oekozertifikate: list[Oekozertifikat] | None

Zertifikate für den Energiemix

website: str | None

Internetseite, auf der die Strommixdaten veröffentlicht sind

bo4e.com.fremdkostenblock module

Contains Fremdkostenblock class and corresponding marshmallow schema for de-/serialization

class bo4e.com.fremdkostenblock.Fremdkostenblock(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, kostenblockbezeichnung: str | None = None, kostenpositionen: list[Fremdkostenposition] | None = None, summeKostenblock: Betrag | None = None, **extra_data: Any)[source]

Bases: COM

Komponente zur Abbildung eines Kostenblocks in den Fremdkosten

kostenblockbezeichnung: str | None

Bezeichnung für einen Kostenblock. Z.B. Netzkosten, Messkosten, Umlagen, etc.

kostenpositionen: list[Fremdkostenposition] | None

Hier sind die Details zu einer Kostenposition aufgeführt. Z.B.: Alliander Netz Heinsberg GmbH, 2018-02-01, 2019-01-01, Arbeitspreis HT, 3.660 kWh, 5,8200 ct/kWh, 213,01 €

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'kostenblockbezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='kostenblockbezeichnung', alias_priority=1, description='Bezeichnung für einen Kostenblock. Z.B. Netzkosten, Messkosten, Umlagen, etc.'), 'kostenpositionen': FieldInfo(annotation=Union[list[Fremdkostenposition], NoneType], required=False, alias='kostenpositionen', alias_priority=1, description='Hier sind die Details zu einer Kostenposition aufgeführt. Z.B.:\nAlliander Netz Heinsberg GmbH, 2018-02-01, 2019-01-01, Arbeitspreis HT, 3.660 kWh,\n5,8200 ct/kWh, 213,01 €'), 'summe_kostenblock': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='summeKostenblock', alias_priority=1, description='Die Summe aller Kostenpositionen dieses Blocks'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

summe_kostenblock: Betrag | None

Die Summe aller Kostenpositionen dieses Blocks

bo4e.com.fremdkostenposition module

Contains Fremdkostenposition and corresponding marshmallow schema for de-/serialization

class bo4e.com.fremdkostenposition.Fremdkostenposition(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, positionstitel: str | None = None, betragKostenposition: Betrag | None = None, artikelbezeichnung: str | None = None, einzelpreis: Preis | None = None, von: AwareDatetime | None = None, bis: AwareDatetime | None = None, menge: Menge | None = None, zeitmenge: Menge | None = None, artikeldetail: str | None = None, marktpartnername: str | None = None, marktpartnercode: str | None = None, gebietcodeEic: str | None = None, linkPreisblatt: str | None = None, **extra_data: Any)[source]

Bases: Kostenposition

Eine Kostenposition im Bereich der Fremdkosten

gebietcode_eic: str | None

EIC-Code des Regel- oder Marktgebietes eingetragen. Z.B. ‘10YDE-EON——1’ für die Regelzone TenneT

Link zum veröffentlichten Preisblatt

marktpartnercode: str | None

Die Codenummer (z.B. BDEW-Codenummer) des Marktpartners, der die Preise festlegt / die Kosten in Rechnung stellt

marktpartnername: str | None

Der Name des Marktpartners, der die Preise festlegt, bzw. die Kosten in Rechnung stellt

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'artikelbezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='artikelbezeichnung', alias_priority=1, description='Bezeichnung für den Artikel für den die Kosten ermittelt wurden. Beispiel: Arbeitspreis HT'), 'artikeldetail': FieldInfo(annotation=Union[str, NoneType], required=False, alias='artikeldetail', alias_priority=1, description="Detaillierung des Artikels (optional). Beispiel: 'Drehstromzähler'"), 'betrag_kostenposition': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='betragKostenposition', alias_priority=1, description='Der errechnete Gesamtbetrag der Position als Ergebnis der Berechnung <Menge * Einzelpreis> oder\n<Einzelpreis / (Anzahl Tage Jahr) * zeitmenge>'), 'bis': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='bis', alias_priority=1, description='exklusiver bis-Zeitpunkt der Kostenzeitscheibe'), 'einzelpreis': FieldInfo(annotation=Union[Preis, NoneType], required=False, alias='einzelpreis', alias_priority=1, description='Der Preis für eine Einheit. Beispiele: 5,8200 ct/kWh oder 55 €/Jahr.'), 'gebietcode_eic': FieldInfo(annotation=Union[str, NoneType], required=False, alias='gebietcodeEic', alias_priority=1, description="EIC-Code des Regel- oder Marktgebietes eingetragen. Z.B. '10YDE-EON------1' für die Regelzone TenneT"), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'link_preisblatt': FieldInfo(annotation=Union[str, NoneType], required=False, alias='linkPreisblatt', alias_priority=1, description='Link zum veröffentlichten Preisblatt'), 'marktpartnercode': FieldInfo(annotation=Union[str, NoneType], required=False, alias='marktpartnercode', alias_priority=1, description='Die Codenummer (z.B. BDEW-Codenummer) des Marktpartners, der die Preise festlegt / die Kosten in Rechnung stellt'), 'marktpartnername': FieldInfo(annotation=Union[str, NoneType], required=False, alias='marktpartnername', alias_priority=1, description='Der Name des Marktpartners, der die Preise festlegt, bzw. die Kosten in Rechnung stellt'), 'menge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='menge', alias_priority=1, description='Die Menge, die in die Kostenberechnung eingeflossen ist. Beispiel: 3.660 kWh'), 'positionstitel': FieldInfo(annotation=Union[str, NoneType], required=False, alias='positionstitel', alias_priority=1, description='Ein Titel für die Zeile. Hier kann z.B. der Netzbetreiber eingetragen werden, wenn es sich um Netzkosten handelt.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'von': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='von', alias_priority=1, description='inklusiver von-Zeitpunkt der Kostenzeitscheibe'), 'zeitmenge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='zeitmenge', alias_priority=1, description="Detaillierung des Artikels (optional). Beispiel: 'Drehstromzähler'"), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.geokoordinaten module

Contains Geokoordinaten class and corresponding marshmallow schema for de-/serialization

class bo4e.com.geokoordinaten.Geokoordinaten(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, breitengrad: Decimal | None = None, laengengrad: Decimal | None = None, **extra_data: Any)[source]

Bases: COM

This component provides the geo-coordinates for a location.

breitengrad: Decimal | None
laengengrad: Decimal | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'breitengrad': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='breitengrad', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'laengengrad': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='laengengrad', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.katasteradresse module

Contains Katasteradresse class and corresponding marshmallow schema for de-/serialization

class bo4e.com.katasteradresse.Katasteradresse(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, gemarkungFlur: str | None = None, flurstueck: str | None = None, **extra_data: Any)[source]

Bases: COM

Dient der Adressierung über die Liegenschafts-Information.

flurstueck: str | None
gemarkung_flur: str | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'flurstueck': FieldInfo(annotation=Union[str, NoneType], required=False, alias='flurstueck', alias_priority=1), 'gemarkung_flur': FieldInfo(annotation=Union[str, NoneType], required=False, alias='gemarkungFlur', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.kontaktweg module

Contains Kontaktweg class and corresponding marshmallow schema for de-/serialization

class bo4e.com.kontaktweg.Kontaktweg(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, kontaktart: Kontaktart | None = None, beschreibung: str | None = None, kontaktwert: str | None = None, istBevorzugterKontaktweg: bool | None = None, **extra_data: Any)[source]

Bases: COM

Die Komponente wird dazu verwendet, die Kontaktwege innerhalb des BOs Person darzustellen

beschreibung: str | None

Spezifikation, beispielsweise “Durchwahl”, “Sammelnummer” etc.

ist_bevorzugter_kontaktweg: bool | None

Gibt an, ob es sich um den bevorzugten Kontaktweg handelt.

kontaktart: Kontaktart | None

Gibt die Kontaktart des Kontaktes an.

kontaktwert: str | None

Die Nummer oder E-Mail-Adresse.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'beschreibung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='beschreibung', alias_priority=1, description='Spezifikation, beispielsweise "Durchwahl", "Sammelnummer" etc.'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'ist_bevorzugter_kontaktweg': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istBevorzugterKontaktweg', alias_priority=1, description='Gibt an, ob es sich um den bevorzugten Kontaktweg handelt.'), 'kontaktart': FieldInfo(annotation=Union[Kontaktart, NoneType], required=False, alias='kontaktart', alias_priority=1, description='Gibt die Kontaktart des Kontaktes an.'), 'kontaktwert': FieldInfo(annotation=Union[str, NoneType], required=False, alias='kontaktwert', alias_priority=1, description='Die Nummer oder E-Mail-Adresse.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.konzessionsabgabe module

Contains Konzessionsabgabe and corresponding marshmallow schema for de-/serialization

class bo4e.com.konzessionsabgabe.Konzessionsabgabe(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, satz: AbgabeArt | None = None, kosten: Decimal | None = None, kategorie: str | None = None, **extra_data: Any)[source]

Bases: COM

Diese Komponente wird zur Übertagung der Details zu einer Konzessionsabgabe verwendet.

kategorie: str | None

Gebührenkategorie der Konzessionsabgabe

kosten: Decimal | None

Konzessionsabgabe in E/kWh

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'kategorie': FieldInfo(annotation=Union[str, NoneType], required=False, alias='kategorie', alias_priority=1, description='Gebührenkategorie der Konzessionsabgabe'), 'kosten': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='kosten', alias_priority=1, description='Konzessionsabgabe in E/kWh'), 'satz': FieldInfo(annotation=Union[AbgabeArt, NoneType], required=False, alias='satz', alias_priority=1, description='Art der Abgabe'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

satz: AbgabeArt | None

Art der Abgabe

bo4e.com.kostenblock module

Contains Kostenblock and corresponding marshmallow schema for de-/serialization

class bo4e.com.kostenblock.Kostenblock(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, kostenblockbezeichnung: str | None = None, summeKostenblock: Betrag | None = None, kostenpositionen: list[Kostenposition] | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente werden mehrere Kostenpositionen zusammengefasst.

kostenblockbezeichnung: str | None

Bezeichnung für einen Kostenblock. Z.B. Netzkosten, Messkosten, Umlagen, etc.

kostenpositionen: list[Kostenposition] | None

Hier sind die Details zu einer Kostenposition aufgeführt. Z.B.: Alliander Netz Heinsberg GmbH, 01.02.2018, 31.12.2018, Arbeitspreis HT, 3.660 kWh, 5,8200 ct/kWh, 213,01 €

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'kostenblockbezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='kostenblockbezeichnung', alias_priority=1, description='Bezeichnung für einen Kostenblock. Z.B. Netzkosten, Messkosten, Umlagen, etc.'), 'kostenpositionen': FieldInfo(annotation=Union[list[Kostenposition], NoneType], required=False, alias='kostenpositionen', alias_priority=1, description='Hier sind die Details zu einer Kostenposition aufgeführt. Z.B.:\nAlliander Netz Heinsberg GmbH, 01.02.2018, 31.12.2018, Arbeitspreis HT, 3.660 kWh, 5,8200 ct/kWh, 213,01 €'), 'summe_kostenblock': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='summeKostenblock', alias_priority=1, description='Die Summe aller Kostenpositionen dieses Blocks'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

summe_kostenblock: Betrag | None

Die Summe aller Kostenpositionen dieses Blocks

bo4e.com.kostenposition module

Contains Kostenposition and corresponding marshmallow schema for de-/serialization

class bo4e.com.kostenposition.Kostenposition(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, positionstitel: str | None = None, betragKostenposition: Betrag | None = None, artikelbezeichnung: str | None = None, einzelpreis: Preis | None = None, von: AwareDatetime | None = None, bis: AwareDatetime | None = None, menge: Menge | None = None, zeitmenge: Menge | None = None, artikeldetail: str | None = None, **extra_data: Any)[source]

Bases: COM

Diese Komponente wird zur Übertagung der Details zu einer Kostenposition verwendet.

artikelbezeichnung: str | None

Arbeitspreis HT

Type:

Bezeichnung für den Artikel für den die Kosten ermittelt wurden. Beispiel

artikeldetail: str | None

‘Drehstromzähler’

Type:

Detaillierung des Artikels (optional). Beispiel

betrag_kostenposition: Betrag | None

Der errechnete Gesamtbetrag der Position als Ergebnis der Berechnung <Menge * Einzelpreis> oder <Einzelpreis / (Anzahl Tage Jahr) * zeitmenge>

bis: AwareDatetime | None

exklusiver bis-Zeitpunkt der Kostenzeitscheibe

einzelpreis: Preis | None

5,8200 ct/kWh oder 55 €/Jahr.

Type:

Der Preis für eine Einheit. Beispiele

menge: Menge | None

3.660 kWh

Type:

Die Menge, die in die Kostenberechnung eingeflossen ist. Beispiel

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'artikelbezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='artikelbezeichnung', alias_priority=1, description='Bezeichnung für den Artikel für den die Kosten ermittelt wurden. Beispiel: Arbeitspreis HT'), 'artikeldetail': FieldInfo(annotation=Union[str, NoneType], required=False, alias='artikeldetail', alias_priority=1, description="Detaillierung des Artikels (optional). Beispiel: 'Drehstromzähler'"), 'betrag_kostenposition': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='betragKostenposition', alias_priority=1, description='Der errechnete Gesamtbetrag der Position als Ergebnis der Berechnung <Menge * Einzelpreis> oder\n<Einzelpreis / (Anzahl Tage Jahr) * zeitmenge>'), 'bis': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='bis', alias_priority=1, description='exklusiver bis-Zeitpunkt der Kostenzeitscheibe'), 'einzelpreis': FieldInfo(annotation=Union[Preis, NoneType], required=False, alias='einzelpreis', alias_priority=1, description='Der Preis für eine Einheit. Beispiele: 5,8200 ct/kWh oder 55 €/Jahr.'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'menge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='menge', alias_priority=1, description='Die Menge, die in die Kostenberechnung eingeflossen ist. Beispiel: 3.660 kWh'), 'positionstitel': FieldInfo(annotation=Union[str, NoneType], required=False, alias='positionstitel', alias_priority=1, description='Ein Titel für die Zeile. Hier kann z.B. der Netzbetreiber eingetragen werden, wenn es sich um Netzkosten handelt.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'von': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='von', alias_priority=1, description='inklusiver von-Zeitpunkt der Kostenzeitscheibe'), 'zeitmenge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='zeitmenge', alias_priority=1, description="Detaillierung des Artikels (optional). Beispiel: 'Drehstromzähler'"), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

positionstitel: str | None

Ein Titel für die Zeile. Hier kann z.B. der Netzbetreiber eingetragen werden, wenn es sich um Netzkosten handelt.

von: AwareDatetime | None

inklusiver von-Zeitpunkt der Kostenzeitscheibe

zeitmenge: Menge | None

Wenn es einen zeitbasierten Preis gibt (z.B. €/Jahr), dann ist hier die Menge angegeben mit der die Kosten berechnet wurden. Z.B. 138 Tage.

bo4e.com.kriteriumwert module

Contains KriteriumWert class and corresponding marshmallow schema for de-/serialization

class bo4e.com.kriteriumwert.KriteriumWert(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, kriterium: Tarifregionskriterium | None = None, wert: str | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente können Kriterien und deren Werte definiert werden

kriterium: Tarifregionskriterium | None

Hier steht, für welches Kriterium der Wert gilt. Z.B. Postleitzahlen

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'kriterium': FieldInfo(annotation=Union[Tarifregionskriterium, NoneType], required=False, alias='kriterium', alias_priority=1, description='Hier steht, für welches Kriterium der Wert gilt. Z.B. Postleitzahlen'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'wert': FieldInfo(annotation=Union[str, NoneType], required=False, alias='wert', alias_priority=1, description='Ein Wert, passend zum Kriterium. Z.B. eine Postleitzahl.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

wert: str | None

Ein Wert, passend zum Kriterium. Z.B. eine Postleitzahl.

bo4e.com.marktgebietinfo module

Contains Marktgebietinfo class and corresponding marshmallow schema for de-/serialization

class bo4e.com.marktgebietinfo.MarktgebietInfo(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, marktgebiet: str | None = None, marktgebietcode: str | None = None, **extra_data: Any)[source]

Bases: COM

Informationen zum Marktgebiet im Gas.

marktgebiet: str | None

Der Name des Marktgebietes

marktgebietcode: str | None

Die standardisierte Codenummer des Marktgebietes

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'marktgebiet': FieldInfo(annotation=Union[str, NoneType], required=False, alias='marktgebiet', alias_priority=1, description='Der Name des Marktgebietes'), 'marktgebietcode': FieldInfo(annotation=Union[str, NoneType], required=False, alias='marktgebietcode', alias_priority=1, description='Der Name des Marktgebietes'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.menge module

Contains Menge class and corresponding marshmallow schema for de-/serialization

class bo4e.com.menge.Menge(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, wert: Decimal | None = None, einheit: Mengeneinheit | None = None, **extra_data: Any)[source]

Bases: COM

Abbildung einer Menge mit Wert und Einheit.

einheit: Mengeneinheit | None

Gibt die Einheit zum jeweiligen Wert an

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'einheit': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='einheit', alias_priority=1, description='Gibt die Einheit zum jeweiligen Wert an'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'wert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='wert', alias_priority=1, description='Gibt den absoluten Wert der Menge an'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

wert: Decimal | None

Gibt den absoluten Wert der Menge an

bo4e.com.messlokationszuordnung module

Contains Messlokationszuordnung class and corresponding marshmallow schema for de-/serialization

class bo4e.com.messlokationszuordnung.Messlokationszuordnung(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, messlokationsId: str | None = None, arithmetik: ArithmetischeOperation | None = None, gueltigSeit: AwareDatetime | None = None, gueltigBis: AwareDatetime | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente werden Messlokationen zu Marktlokationen zugeordnet. Dabei kann eine arithmetische Operation (Addition, Subtraktion, Multiplikation, Division) angegeben werden, mit der die Messlokation zum Verbrauch der Marktlokation beiträgt.

arithmetik: ArithmetischeOperation | None
gueltig_bis: AwareDatetime | None

exklusives Endedatum

gueltig_seit: AwareDatetime | None

inklusives Beginndatum

messlokations_id: str | None

ID der zugeordneten Messlokation

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'arithmetik': FieldInfo(annotation=Union[ArithmetischeOperation, NoneType], required=False, alias='arithmetik', alias_priority=1), 'gueltig_bis': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='gueltigBis', alias_priority=1, description='exklusives Endedatum'), 'gueltig_seit': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='gueltigSeit', alias_priority=1, description='gueltig_bis: Optional[pydantic.AwareDatetime] = None'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'messlokations_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='messlokationsId', alias_priority=1, description='arithmetik: Optional[ArithmetischeOperation] = None\n\ngueltig_seit: Optional[pydantic.AwareDatetime] = None'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.positionsaufabschlag module

Contains PositionsAufAbschlag and corresponding marshmallow schema for de-/serialization

class bo4e.com.positionsaufabschlag.PositionsAufAbschlag(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, bezeichnung: str | None = None, beschreibung: str | None = None, aufAbschlagstyp: AufAbschlagstyp | None = None, aufAbschlagswert: Decimal | None = None, aufAbschlagswaehrung: Waehrungseinheit | None = None, **extra_data: Any)[source]

Bases: COM

Differenzierung der zu betrachtenden Produkte anhand der preiserhöhenden (Aufschlag) bzw. preisvermindernden (Abschlag) Zusatzvereinbarungen, die individuell zu einem neuen oder bestehenden Liefervertrag abgeschlossen werden können. Es können mehrere Auf-/Abschläge gleichzeitig ausgewählt werden.

auf_abschlagstyp: AufAbschlagstyp | None

Typ des AufAbschlages

auf_abschlagswaehrung: Waehrungseinheit | None

Einheit, in der der Auf-/Abschlag angegeben ist (z.B. ct/kWh).

auf_abschlagswert: Decimal | None

Höhe des Auf-/Abschlages

beschreibung: str | None

Beschreibung zum Auf-/Abschlag

bezeichnung: str | None

Bezeichnung des Auf-/Abschlags

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'auf_abschlagstyp': FieldInfo(annotation=Union[AufAbschlagstyp, NoneType], required=False, alias='aufAbschlagstyp', alias_priority=1, description='Typ des AufAbschlages'), 'auf_abschlagswaehrung': FieldInfo(annotation=Union[Waehrungseinheit, NoneType], required=False, alias='aufAbschlagswaehrung', alias_priority=1, description='Einheit, in der der Auf-/Abschlag angegeben ist (z.B. ct/kWh).'), 'auf_abschlagswert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='aufAbschlagswert', alias_priority=1, description='Höhe des Auf-/Abschlages'), 'beschreibung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='beschreibung', alias_priority=1, description='Beschreibung zum Auf-/Abschlag'), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1, description='Bezeichnung des Auf-/Abschlags'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.preis module

Contains Preis class and corresponding marshmallow schema for de-/serialization

class bo4e.com.preis.Preis(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, wert: Decimal | None = None, einheit: Waehrungseinheit | None = None, bezugswert: Mengeneinheit | None = None, status: Preisstatus | None = None, **extra_data: Any)[source]

Bases: COM

Abbildung eines Preises mit Wert, Einheit, Bezugswert und Status.

bezugswert: Mengeneinheit | None

Angabe, für welche Bezugsgröße der Preis gilt. Z.B. kWh.

einheit: Waehrungseinheit | None

Währungseinheit für den Preis, z.B. Euro oder Ct.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'bezugswert': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='bezugswert', alias_priority=1, description='Angabe, für welche Bezugsgröße der Preis gilt. Z.B. kWh.'), 'einheit': FieldInfo(annotation=Union[Waehrungseinheit, NoneType], required=False, alias='einheit', alias_priority=1, description='Währungseinheit für den Preis, z.B. Euro oder Ct.'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'status': FieldInfo(annotation=Union[Preisstatus, NoneType], required=False, alias='status', alias_priority=1, description='Gibt den Status des veröffentlichten Preises an'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'wert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='wert', alias_priority=1, description='Gibt die nominale Höhe des Preises an.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

status: Preisstatus | None

Gibt den Status des veröffentlichten Preises an

wert: Decimal | None

Gibt die nominale Höhe des Preises an.

bo4e.com.preisgarantie module

Contains Preisgarantie class and corresponding marshmallow schema for de-/serialization

class bo4e.com.preisgarantie.Preisgarantie(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, preisgarantietyp: Preisgarantietyp | None = None, zeitlicheGueltigkeit: Zeitraum | None = None, beschreibung: str | None = None, **extra_data: Any)[source]

Bases: COM

Definition für eine Preisgarantie mit der Möglichkeit verschiedener Ausprägungen.

beschreibung: str | None

Freitext zur Beschreibung der Preisgarantie.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'beschreibung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='beschreibung', alias_priority=1, description='Freitext zur Beschreibung der Preisgarantie.'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'preisgarantietyp': FieldInfo(annotation=Union[Preisgarantietyp, NoneType], required=False, alias='preisgarantietyp', alias_priority=1, description='Festlegung, auf welche Preisbestandteile die Garantie gewährt wird.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zeitliche_gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='zeitlicheGueltigkeit', alias_priority=1, description='Freitext zur Beschreibung der Preisgarantie.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

preisgarantietyp: Preisgarantietyp | None

Festlegung, auf welche Preisbestandteile die Garantie gewährt wird.

zeitliche_gueltigkeit: Zeitraum | None

Zeitraum, bis zu dem die Preisgarantie gilt, z.B. bis zu einem absolutem / fixem Datum oder als Laufzeit in Monaten.

bo4e.com.preisposition module

Contains Preisposition class and corresponding marshmallow schema for de-/serialization

class bo4e.com.preisposition.Preisposition(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, berechnungsmethode: Kalkulationsmethode | None = None, leistungstyp: Leistungstyp | None = None, leistungsbezeichnung: str | None = None, preiseinheit: Waehrungseinheit | None = None, bezugsgroesse: Mengeneinheit | None = None, preisstaffeln: list[Preisstaffel] | None = None, zeitbasis: Mengeneinheit | None = None, tarifzeit: Tarifzeit | None = None, bdewArtikelnummer: BDEWArtikelnummer | None = None, zonungsgroesse: Bemessungsgroesse | None = None, freimengeBlindarbeit: Decimal | None = None, freimengeLeistungsfaktor: Decimal | None = None, gruppenartikelId: str | None = None, **extra_data: Any)[source]

Bases: COM

Preis für eine definierte Lieferung oder Leistung innerhalb eines Preisblattes

bdew_artikelnummer: BDEWArtikelnummer | None

Eine vom BDEW standardisierte Bezeichnug für die abgerechnete Leistungserbringung; Diese Artikelnummer wird auch im Rechnungsteil der INVOIC verwendet.

berechnungsmethode: Kalkulationsmethode | None

Das Modell, das der Preisbildung zugrunde liegt

bezugsgroesse: Mengeneinheit | None

Hier wird festgelegt, auf welche Bezugsgrösse sich der Preis bezieht, z.B. kWh oder Stück

freimenge_blindarbeit: Decimal | None

Der Anteil der Menge der Blindarbeit in Prozent von der Wirkarbeit, für die keine Abrechnung erfolgt

freimenge_leistungsfaktor: Decimal | None

Der cos phi (Verhältnis Wirkleistung/Scheinleistung) aus dem die Freimenge für die Blindarbeit berechnet wird als tan phi (Verhältnis Blindleistung/Wirkleistung)

gruppenartikel_id: str | None

Übergeordnete Gruppen-ID, die sich ggf. auf die Artikel-ID in der Preisstaffel bezieht

leistungsbezeichnung: str | None

Bezeichnung für die in der Position abgebildete Leistungserbringung

leistungstyp: Leistungstyp | None

Standardisierte Bezeichnung für die abgerechnete Leistungserbringung

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'bdew_artikelnummer': FieldInfo(annotation=Union[BDEWArtikelnummer, NoneType], required=False, alias='bdewArtikelnummer', alias_priority=1, description='Mit der Menge der hier angegebenen Größe wird die Staffelung/Zonung durchgeführt. Z.B. Vollbenutzungsstunden'), 'berechnungsmethode': FieldInfo(annotation=Union[Kalkulationsmethode, NoneType], required=False, alias='berechnungsmethode', alias_priority=1, description='Das Modell, das der Preisbildung zugrunde liegt'), 'bezugsgroesse': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='bezugsgroesse', alias_priority=1, description='Hier wird festgelegt, auf welche Bezugsgrösse sich der Preis bezieht, z.B. kWh oder Stück'), 'freimenge_blindarbeit': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='freimengeBlindarbeit', alias_priority=1, description='Der Anteil der Menge der Blindarbeit in Prozent von der Wirkarbeit, für die keine Abrechnung erfolgt'), 'freimenge_leistungsfaktor': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='freimengeLeistungsfaktor', alias_priority=1, description='gruppenartikel_id: Optional[str] = None'), 'gruppenartikel_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='gruppenartikelId', alias_priority=1, description='Übergeordnete Gruppen-ID, die sich ggf. auf die Artikel-ID in der Preisstaffel bezieht'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'leistungsbezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='leistungsbezeichnung', alias_priority=1, description='Bezeichnung für die in der Position abgebildete Leistungserbringung'), 'leistungstyp': FieldInfo(annotation=Union[Leistungstyp, NoneType], required=False, alias='leistungstyp', alias_priority=1, description='Standardisierte Bezeichnung für die abgerechnete Leistungserbringung'), 'preiseinheit': FieldInfo(annotation=Union[Waehrungseinheit, NoneType], required=False, alias='preiseinheit', alias_priority=1, description='Festlegung, mit welcher Preiseinheit abgerechnet wird, z.B. Ct. oder €'), 'preisstaffeln': FieldInfo(annotation=Union[list[Preisstaffel], NoneType], required=False, alias='preisstaffeln', alias_priority=1, description='Preisstaffeln, die zu dieser Preisposition gehören'), 'tarifzeit': FieldInfo(annotation=Union[Tarifzeit, NoneType], required=False, alias='tarifzeit', alias_priority=1, description='Festlegung, für welche Tarifzeit der Preis hier festgelegt ist'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zeitbasis': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='zeitbasis', alias_priority=1, description='Festlegung, für welche Tarifzeit der Preis hier festgelegt ist'), 'zonungsgroesse': FieldInfo(annotation=Union[Bemessungsgroesse, NoneType], required=False, alias='zonungsgroesse', alias_priority=1, description='Mit der Menge der hier angegebenen Größe wird die Staffelung/Zonung durchgeführt. Z.B. Vollbenutzungsstunden'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

preiseinheit: Waehrungseinheit | None

Festlegung, mit welcher Preiseinheit abgerechnet wird, z.B. Ct. oder €

preisstaffeln: list[Preisstaffel] | None

Preisstaffeln, die zu dieser Preisposition gehören

tarifzeit: Tarifzeit | None

Festlegung, für welche Tarifzeit der Preis hier festgelegt ist

zeitbasis: Mengeneinheit | None

Die Zeit(dauer) auf die sich der Preis bezieht. Z.B. ein Jahr für einen Leistungspreis der in €/kW/Jahr ausgegeben wird

zonungsgroesse: Bemessungsgroesse | None

Mit der Menge der hier angegebenen Größe wird die Staffelung/Zonung durchgeführt. Z.B. Vollbenutzungsstunden

bo4e.com.preisstaffel module

Contains Preisstaffel and corresponding marshmallow schema for de-/serialization

class bo4e.com.preisstaffel.Preisstaffel(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, einheitspreis: Decimal | None = None, staffelgrenzeVon: Decimal | None = None, staffelgrenzeBis: Decimal | None = None, sigmoidparameter: Sigmoidparameter | None = None, **extra_data: Any)[source]

Bases: COM

Gibt die Staffelgrenzen der jeweiligen Preise an

einheitspreis: Decimal | None

Preis pro abgerechneter Mengeneinheit

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'einheitspreis': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='einheitspreis', alias_priority=1, description='Preis pro abgerechneter Mengeneinheit'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'sigmoidparameter': FieldInfo(annotation=Union[Sigmoidparameter, NoneType], required=False, alias='sigmoidparameter', alias_priority=1, description='Parameter zur Berechnung des Preises anhand der Jahresmenge und weiterer netzbezogener Parameter'), 'staffelgrenze_bis': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='staffelgrenzeBis', alias_priority=1, description='Exklusiver oberer Wert, bis zu dem die Staffel gilt'), 'staffelgrenze_von': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='staffelgrenzeVon', alias_priority=1, description='Inklusiver unterer Wert, ab dem die Staffel gilt'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

sigmoidparameter: Sigmoidparameter | None

Parameter zur Berechnung des Preises anhand der Jahresmenge und weiterer netzbezogener Parameter

staffelgrenze_bis: Decimal | None

Exklusiver oberer Wert, bis zu dem die Staffel gilt

staffelgrenze_von: Decimal | None

Inklusiver unterer Wert, ab dem die Staffel gilt

bo4e.com.rechnungsposition module

Contains Rechnungsposition class and corresponding marshmallow schema for de-/serialization

class bo4e.com.rechnungsposition.Rechnungsposition(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, positionsnummer: int | None = None, lieferungVon: AwareDatetime | None = None, lieferungBis: AwareDatetime | None = None, positionstext: str | None = None, positionsMenge: Menge | None = None, einzelpreis: Preis | None = None, teilsummeNetto: Betrag | None = None, teilsummeSteuer: Steuerbetrag | None = None, zeiteinheit: Mengeneinheit | None = None, artikelnummer: BDEWArtikelnummer | None = None, lokationsId: str | None = None, zeitbezogeneMenge: Menge | None = None, teilrabattNetto: Betrag | None = None, artikelId: str | None = None, **extra_data: Any)[source]

Bases: COM

Über Rechnungspositionen werden Rechnungen strukturiert. In einem Rechnungsteil wird jeweils eine in sich geschlossene Leistung abgerechnet.

artikel_id: str | None

Standardisierte vom BDEW herausgegebene Liste, welche im Strommarkt die BDEW-Artikelnummer ablöst

artikelnummer: BDEWArtikelnummer | None

Kennzeichnung der Rechnungsposition mit der Standard-Artikelnummer des BDEW

einzelpreis: Preis | None

Der Preis für eine Einheit der energetischen Menge

lieferung_bis: AwareDatetime | None

Ende der Lieferung für die abgerechnete Leistung (exklusiv)

lieferung_von: AwareDatetime | None

Start der Lieferung für die abgerechnete Leistung (inklusiv)

lokations_id: str | None

Marktlokation, die zu dieser Position gehört

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'artikel_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='artikelId', alias_priority=1, description='Standardisierte vom BDEW herausgegebene Liste, welche im Strommarkt die BDEW-Artikelnummer ablöst'), 'artikelnummer': FieldInfo(annotation=Union[BDEWArtikelnummer, NoneType], required=False, alias='artikelnummer', alias_priority=1, description='Kennzeichnung der Rechnungsposition mit der Standard-Artikelnummer des BDEW'), 'einzelpreis': FieldInfo(annotation=Union[Preis, NoneType], required=False, alias='einzelpreis', alias_priority=1, description='Der Preis für eine Einheit der energetischen Menge'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'lieferung_bis': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='lieferungBis', alias_priority=1, description='Start der Lieferung für die abgerechnete Leistung (inklusiv)'), 'lieferung_von': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='lieferungVon', alias_priority=1, description='Start der Lieferung für die abgerechnete Leistung (inklusiv)'), 'lokations_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='lokationsId', alias_priority=1, description='Marktlokation, die zu dieser Position gehört'), 'positions_menge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='positionsMenge', alias_priority=1, description='Die abgerechnete Menge mit Einheit'), 'positionsnummer': FieldInfo(annotation=Union[int, NoneType], required=False, alias='positionsnummer', alias_priority=1, description='Fortlaufende Nummer für die Rechnungsposition'), 'positionstext': FieldInfo(annotation=Union[str, NoneType], required=False, alias='positionstext', alias_priority=1, description='Bezeichung für die abgerechnete Position'), 'teilrabatt_netto': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='teilrabattNetto', alias_priority=1, description='Nettobetrag für den Rabatt dieser Position'), 'teilsumme_netto': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='teilsummeNetto', alias_priority=1, description="# the cross check in general doesn't work because Betrag and Preis use different enums to describe the currency\n# see https://github.com/Hochfrequenz/BO4E-python/issues/126\n\n#: Auf die Position entfallende Steuer, bestehend aus Steuersatz und Betrag\nteilsumme_steuer: Optional[Steuerbetrag] = None\n\n#: Falls sich der Preis auf eine Zeit bezieht, steht hier die Einheit\nzeiteinheit: Optional[Mengeneinheit] = None\n\n#: Kennzeichnung der Rechnungsposition mit der Standard-Artikelnummer des BDEW\nartikelnummer: Optional[BDEWArtikelnummer] = None\n#: Marktlokation, die zu dieser Position gehört\nlokations_id: Optional[str] = None\n\nzeitbezogene_menge: Optional[Menge] = None"), 'teilsumme_steuer': FieldInfo(annotation=Union[Steuerbetrag, NoneType], required=False, alias='teilsummeSteuer', alias_priority=1, description='Auf die Position entfallende Steuer, bestehend aus Steuersatz und Betrag'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zeitbezogene_menge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='zeitbezogeneMenge', alias_priority=1, description='Nettobetrag für den Rabatt dieser Position'), 'zeiteinheit': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='zeiteinheit', alias_priority=1, description='Falls sich der Preis auf eine Zeit bezieht, steht hier die Einheit'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

positions_menge: Menge | None

Die abgerechnete Menge mit Einheit

positionsnummer: int | None

Fortlaufende Nummer für die Rechnungsposition

positionstext: str | None

Bezeichung für die abgerechnete Position

teilrabatt_netto: Betrag | None

Nettobetrag für den Rabatt dieser Position

teilsumme_netto: Betrag | None

Das Ergebnis der Multiplikation aus einzelpreis * positionsMenge * (Faktor aus zeitbezogeneMenge). Z.B. 12,60€ * 120 kW * 3/12 (für 3 Monate).

teilsumme_steuer: Steuerbetrag | None

Auf die Position entfallende Steuer, bestehend aus Steuersatz und Betrag

zeitbezogene_menge: Menge | None

Eine auf die Zeiteinheit bezogene Untermenge. Z.B. bei einem Jahrespreis, 3 Monate oder 146 Tage. Basierend darauf wird der Preis aufgeteilt.

zeiteinheit: Mengeneinheit | None

Falls sich der Preis auf eine Zeit bezieht, steht hier die Einheit

bo4e.com.regionalegueltigkeit module

Contains RegionaleGueltigkeit class and corresponding marshmallow schema for de-/serialization

class bo4e.com.regionalegueltigkeit.RegionaleGueltigkeit(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, gueltigkeitstyp: Gueltigkeitstyp | None = None, kriteriumsWerte: list[KriteriumWert] | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente können regionale Gültigkeiten, z.B. für Tarife, Zu- und Abschläge und Preise definiert werden.

gueltigkeitstyp: Gueltigkeitstyp | None

Unterscheidung ob Positivliste oder Negativliste übertragen wird

kriteriums_werte: list[KriteriumWert] | None

Hier stehen die Kriterien, die die regionale Gültigkeit festlegen

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'gueltigkeitstyp': FieldInfo(annotation=Union[Gueltigkeitstyp, NoneType], required=False, alias='gueltigkeitstyp', alias_priority=1, description='Unterscheidung ob Positivliste oder Negativliste übertragen wird'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'kriteriums_werte': FieldInfo(annotation=Union[list[KriteriumWert], NoneType], required=False, alias='kriteriumsWerte', alias_priority=1, description='Unterscheidung ob Positivliste oder Negativliste übertragen wird'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.regionalepreisgarantie module

Contains RegionalePreisgarantie class and corresponding marshmallow schema for de-/serialization

class bo4e.com.regionalepreisgarantie.RegionalePreisgarantie(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, preisgarantietyp: Preisgarantietyp | None = None, zeitlicheGueltigkeit: Zeitraum | None = None, beschreibung: str | None = None, regionaleGueltigkeit: RegionaleGueltigkeit | None = None, **extra_data: Any)[source]

Bases: Preisgarantie

Abbildung einer Preisgarantie mit regionaler Abgrenzung

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'beschreibung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='beschreibung', alias_priority=1, description='Freitext zur Beschreibung der Preisgarantie.'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'preisgarantietyp': FieldInfo(annotation=Union[Preisgarantietyp, NoneType], required=False, alias='preisgarantietyp', alias_priority=1, description='Festlegung, auf welche Preisbestandteile die Garantie gewährt wird.'), 'regionale_gueltigkeit': FieldInfo(annotation=Union[RegionaleGueltigkeit, NoneType], required=False, alias='regionaleGueltigkeit', alias_priority=1, description='Regionale Eingrenzung der Preisgarantie.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zeitliche_gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='zeitlicheGueltigkeit', alias_priority=1, description='Freitext zur Beschreibung der Preisgarantie.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

regionale_gueltigkeit: RegionaleGueltigkeit | None

Regionale Eingrenzung der Preisgarantie.

bo4e.com.regionalepreisstaffel module

Contains RegionalePreisstaffel class and corresponding marshmallow schema for de-/serialization

class bo4e.com.regionalepreisstaffel.RegionalePreisstaffel(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, einheitspreis: Decimal | None = None, staffelgrenzeVon: Decimal | None = None, staffelgrenzeBis: Decimal | None = None, sigmoidparameter: Sigmoidparameter | None = None, regionaleGueltigkeit: RegionaleGueltigkeit | None = None, **extra_data: Any)[source]

Bases: Preisstaffel

Abbildung einer Preisstaffel mit regionaler Abgrenzung

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'einheitspreis': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='einheitspreis', alias_priority=1, description='Preis pro abgerechneter Mengeneinheit'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'regionale_gueltigkeit': FieldInfo(annotation=Union[RegionaleGueltigkeit, NoneType], required=False, alias='regionaleGueltigkeit', alias_priority=1, description='Regionale Eingrenzung der Preisstaffel'), 'sigmoidparameter': FieldInfo(annotation=Union[Sigmoidparameter, NoneType], required=False, alias='sigmoidparameter', alias_priority=1, description='Parameter zur Berechnung des Preises anhand der Jahresmenge und weiterer netzbezogener Parameter'), 'staffelgrenze_bis': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='staffelgrenzeBis', alias_priority=1, description='Exklusiver oberer Wert, bis zu dem die Staffel gilt'), 'staffelgrenze_von': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='staffelgrenzeVon', alias_priority=1, description='Inklusiver unterer Wert, ab dem die Staffel gilt'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

regionale_gueltigkeit: RegionaleGueltigkeit | None

Regionale Eingrenzung der Preisstaffel

bo4e.com.regionaleraufabschlag module

Contains RegionalerAufAbschlag class and corresponding marshmallow schema for de-/serialization

class bo4e.com.regionaleraufabschlag.RegionalerAufAbschlag(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, bezeichnung: str | None = None, staffeln: list[RegionalePreisstaffel] | None = None, beschreibung: str | None = None, aufAbschlagstyp: AufAbschlagstyp | None = None, aufAbschlagsziel: AufAbschlagsziel | None = None, einheit: Waehrungseinheit | None = None, website: str | None = None, zusatzprodukte: list[str] | None = None, voraussetzungen: list[str] | None = None, tarifnamensaenderungen: str | None = None, gueltigkeitszeitraum: Zeitraum | None = None, energiemixaenderung: Energiemix | None = None, vertagskonditionsaenderung: Vertragskonditionen | None = None, garantieaenderung: Preisgarantie | None = None, einschraenkungsaenderung: Tarifeinschraenkung | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente können Auf- und Abschläge verschiedener Typen im Zusammenhang mit regionalen Gültigkeiten abgebildet werden. Hier sind auch die Auswirkungen auf verschiedene Tarifparameter modelliert, die sich durch die Auswahl eines Auf- oder Abschlags ergeben.

auf_abschlagstyp: AufAbschlagstyp | None

Typ des Aufabschlages (z.B. absolut oder prozentual)

auf_abschlagsziel: AufAbschlagsziel | None

Diesem Preis oder den Kosten ist der Auf/Abschlag zugeordnet. Z.B. Arbeitspreis, Gesamtpreis etc.

beschreibung: str | None

Beschreibung des Auf-/Abschlags

bezeichnung: str | None

Bezeichnung des Auf-/Abschlags

einheit: Waehrungseinheit | None

Gibt an in welcher Währungseinheit der Auf/Abschlag berechnet wird (nur im Falle absoluter Aufschlagstypen).

einschraenkungsaenderung: Tarifeinschraenkung | None

Änderungen in den Einschränkungen zum Tarif; Falls in dieser Komponenten angegeben, werden die Tarifparameter hiermit überschrieben.

energiemixaenderung: Energiemix | None

Der Energiemix kann sich durch einen AufAbschlag ändern (z.B. zwei Cent Aufschlag für Ökostrom). Sollte dies der Fall sein, wird hier die neue Zusammensetzung des Energiemix angegeben.

garantieaenderung: Preisgarantie | None

Änderungen in den Garantievereinbarungen; Falls in dieser Komponenten angegeben, werden die Tarifparameter hiermit überschrieben.

gueltigkeitszeitraum: Zeitraum | None

Zeitraum, in dem der Abschlag zur Anwendung kommen kann

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'auf_abschlagstyp': FieldInfo(annotation=Union[AufAbschlagstyp, NoneType], required=False, alias='aufAbschlagstyp', alias_priority=1, description='Typ des Aufabschlages (z.B. absolut oder prozentual)'), 'auf_abschlagsziel': FieldInfo(annotation=Union[AufAbschlagsziel, NoneType], required=False, alias='aufAbschlagsziel', alias_priority=1, description='Diesem Preis oder den Kosten ist der Auf/Abschlag zugeordnet. Z.B. Arbeitspreis, Gesamtpreis etc.'), 'beschreibung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='beschreibung', alias_priority=1, description='Beschreibung des Auf-/Abschlags'), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1, description='Bezeichnung des Auf-/Abschlags'), 'einheit': FieldInfo(annotation=Union[Waehrungseinheit, NoneType], required=False, alias='einheit', alias_priority=1, description='Gibt an in welcher Währungseinheit der Auf/Abschlag berechnet wird (nur im Falle absoluter Aufschlagstypen).'), 'einschraenkungsaenderung': FieldInfo(annotation=Union[Tarifeinschraenkung, NoneType], required=False, alias='einschraenkungsaenderung', alias_priority=1, description='Änderungen in den Einschränkungen zum Tarif;\nFalls in dieser Komponenten angegeben, werden die Tarifparameter hiermit überschrieben.'), 'energiemixaenderung': FieldInfo(annotation=Union[Energiemix, NoneType], required=False, alias='energiemixaenderung', alias_priority=1, description='vertagskonditionsaenderung: Optional[Vertragskonditionen] = None'), 'garantieaenderung': FieldInfo(annotation=Union[Preisgarantie, NoneType], required=False, alias='garantieaenderung', alias_priority=1, description='einschraenkungsaenderung: Optional[Tarifeinschraenkung] = None'), 'gueltigkeitszeitraum': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeitszeitraum', alias_priority=1, description='Zeitraum, in dem der Abschlag zur Anwendung kommen kann'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'staffeln': FieldInfo(annotation=Union[list[RegionalePreisstaffel], NoneType], required=False, alias='staffeln', alias_priority=1, description='Werte für die gestaffelten Auf/Abschläge mit regionaler Eingrenzung'), 'tarifnamensaenderungen': FieldInfo(annotation=Union[str, NoneType], required=False, alias='tarifnamensaenderungen', alias_priority=1, description='Durch die Anwendung des Auf/Abschlags kann eine Änderung des Tarifnamens auftreten'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'vertagskonditionsaenderung': FieldInfo(annotation=Union[Vertragskonditionen, NoneType], required=False, alias='vertagskonditionsaenderung', alias_priority=1, description='garantieaenderung: Optional[Preisgarantie] = None'), 'voraussetzungen': FieldInfo(annotation=Union[list[str], NoneType], required=False, alias='voraussetzungen', alias_priority=1, description='Voraussetzungen, die erfüllt sein müssen, damit dieser AufAbschlag zur Anwendung kommen kann'), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1, description='Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1), 'zusatzprodukte': FieldInfo(annotation=Union[list[str], NoneType], required=False, alias='zusatzprodukte', alias_priority=1, description='Zusatzprodukte, die nur in Kombination mit diesem AufAbschlag erhältlich sind')}

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

This replaces Model.__fields__ from Pydantic V1.

staffeln: list[RegionalePreisstaffel] | None

Werte für die gestaffelten Auf/Abschläge mit regionaler Eingrenzung

tarifnamensaenderungen: str | None

Durch die Anwendung des Auf/Abschlags kann eine Änderung des Tarifnamens auftreten

vertagskonditionsaenderung: Vertragskonditionen | None

Änderungen in den Vertragskonditionen; Falls in dieser Komponenten angegeben, werden die Tarifparameter hiermit überschrieben.

voraussetzungen: list[str] | None

Voraussetzungen, die erfüllt sein müssen, damit dieser AufAbschlag zur Anwendung kommen kann

website: str | None

Internetseite, auf der die Informationen zum Auf-/Abschlag veröffentlicht sind

zusatzprodukte: list[str] | None

Zusatzprodukte, die nur in Kombination mit diesem AufAbschlag erhältlich sind

bo4e.com.regionaletarifpreisposition module

Contains RegionaleTarifpreisposition class and corresponding marshmallow schema for de-/serialization

class bo4e.com.regionaletarifpreisposition.RegionaleTarifpreisposition(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, preistyp: Preistyp | None = None, einheit: Waehrungseinheit | None = None, bezugseinheit: Mengeneinheit | None = None, preisstaffeln: list[RegionalePreisstaffel] | None = None, mengeneinheitstaffel: Mengeneinheit | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente können Tarifpreise verschiedener Typen im Zusammenhang mit regionalen Gültigkeiten abgebildet werden.

bezugseinheit: Mengeneinheit | None

Größe, auf die sich die Einheit bezieht, beispielsweise kWh, Jahr

einheit: Waehrungseinheit | None

Einheit des Preises (z.B. EURO)

mengeneinheitstaffel: Mengeneinheit | None

Gibt an, nach welcher Menge die vorgenannte Einschränkung erfolgt (z.B. Jahresstromverbrauch in kWh)

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'bezugseinheit': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='bezugseinheit', alias_priority=1, description='Größe, auf die sich die Einheit bezieht, beispielsweise kWh, Jahr'), 'einheit': FieldInfo(annotation=Union[Waehrungseinheit, NoneType], required=False, alias='einheit', alias_priority=1, description='Einheit des Preises (z.B. EURO)'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'mengeneinheitstaffel': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='mengeneinheitstaffel', alias_priority=1, description='Gibt an, nach welcher Menge die vorgenannte Einschränkung erfolgt (z.B. Jahresstromverbrauch in kWh)'), 'preisstaffeln': FieldInfo(annotation=Union[list[RegionalePreisstaffel], NoneType], required=False, alias='preisstaffeln', alias_priority=1, description='Hier sind die Staffeln mit ihren Preisangaben und regionalen Gültigkeiten definiert'), 'preistyp': FieldInfo(annotation=Union[Preistyp, NoneType], required=False, alias='preistyp', alias_priority=1, description='Angabe des Preistypes (z.B. Grundpreis)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

preisstaffeln: list[RegionalePreisstaffel] | None

Hier sind die Staffeln mit ihren Preisangaben und regionalen Gültigkeiten definiert

preistyp: Preistyp | None

Angabe des Preistypes (z.B. Grundpreis)

bo4e.com.regionskriterium module

Contains Regionskriterium class and corresponding marshmallow schema for de-/serialization

class bo4e.com.regionskriterium.Regionskriterium(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, gueltigkeitstyp: Gueltigkeitstyp | None = None, regionskriteriumtyp: Regionskriteriumtyp | None = None, wert: str | None = None, **extra_data: Any)[source]

Bases: COM

Komponente zur Abbildung eines Regionskriteriums

gueltigkeitstyp: Gueltigkeitstyp | None

Hier wird festgelegt, ob es sich um ein einschließendes oder ausschließendes Kriterium handelt.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'gueltigkeitstyp': FieldInfo(annotation=Union[Gueltigkeitstyp, NoneType], required=False, alias='gueltigkeitstyp', alias_priority=1, description='Hier wird festgelegt, ob es sich um ein einschließendes oder ausschließendes Kriterium handelt.'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'regionskriteriumtyp': FieldInfo(annotation=Union[Regionskriteriumtyp, NoneType], required=False, alias='regionskriteriumtyp', alias_priority=1, description='Hier wird festgelegt, ob es sich um ein einschließendes oder ausschließendes Kriterium handelt.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'wert': FieldInfo(annotation=Union[str, NoneType], required=False, alias='wert', alias_priority=1, description='Hier wird das Kriterium selbst angegeben, z.B. Bundesland.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

regionskriteriumtyp: Regionskriteriumtyp | None

Hier wird das Kriterium selbst angegeben, z.B. Bundesland.

wert: str | None

Der Wert, den das Kriterium annehmen kann, z.B. NRW. Im Falle des Regionskriteriumstyp BUNDESWEIT spielt dieser Wert keine Rolle.

bo4e.com.sigmoidparameter module

Contains Sigmoidparameter class and corresponding marshmallow schema for de-/serialization

class bo4e.com.sigmoidparameter.Sigmoidparameter(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, A: Decimal | None = None, B: Decimal | None = None, C: Decimal | None = None, D: Decimal | None = None, **extra_data: Any)[source]

Bases: COM

Die Sigmoid-Funktion, beispielsweise zur Berechnung eines Leistungspreises hat die Form: LP=A/(1+(P/B)^C)+D

A: Decimal | None

Briefmarke Ortsverteilnetz (EUR/kWh)

B: Decimal | None

Wendepunkt für die bepreiste Menge (kW)

C: Decimal | None

Exponent (einheitenlos)

D: Decimal | None

Briefmarke Transportnetz (EUR/kWh)

calculate(leistung: Decimal) Decimal[source]

calculates LP :param leistung: Leistung in Kilowatt :return: den Sigmoidparameter LP in EUR/kWh

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'A': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='A', alias_priority=1, description='Briefmarke Ortsverteilnetz (EUR/kWh)'), 'B': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='B', alias_priority=1, description='Briefmarke Ortsverteilnetz (EUR/kWh)'), 'C': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='C', alias_priority=1, description='Wendepunkt für die bepreiste Menge (kW)'), 'D': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='D', alias_priority=1, description='Exponent (einheitenlos)'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.standorteigenschaftengas module

Contains StandorteigenschaftenGas class and corresponding marshmallow schema for de-/serialization

class bo4e.com.standorteigenschaftengas.StandorteigenschaftenGas(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, netzkontonummern: list[str] | None = None, marktgebiete: list[MarktgebietInfo] | None = None, **extra_data: Any)[source]

Bases: COM

Standorteigenschaften der Sparte Gas

marktgebiete: list[MarktgebietInfo] | None

Die Informationen zu Marktgebieten in dem Netz.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'marktgebiete': FieldInfo(annotation=Union[list[MarktgebietInfo], NoneType], required=False, alias='marktgebiete', alias_priority=1, description='Netzkontonummern der Gasnetze'), 'netzkontonummern': FieldInfo(annotation=Union[list[str], NoneType], required=False, alias='netzkontonummern', alias_priority=1, description='Netzkontonummern der Gasnetze'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

netzkontonummern: list[str] | None

Netzkontonummern der Gasnetze

bo4e.com.standorteigenschaftenstrom module

Contains StandorteigenschaftenStrom class and corresponding marshmallow schema for de-/serialization

class bo4e.com.standorteigenschaftenstrom.StandorteigenschaftenStrom(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, bilanzierungsgebietEic: str | None = None, regelzone: str | None = None, regelzoneEic: str | None = None, **extra_data: Any)[source]

Bases: COM

Standorteigenschaften der Sparte Strom

bilanzierungsgebiet_eic: str | None

Die EIC-Nummer des Bilanzierungsgebietes

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'bilanzierungsgebiet_eic': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bilanzierungsgebietEic', alias_priority=1, description='Die EIC-Nummer des Bilanzierungsgebietes'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'regelzone': FieldInfo(annotation=Union[str, NoneType], required=False, alias='regelzone', alias_priority=1, description='Der Name der Regelzone'), 'regelzone_eic': FieldInfo(annotation=Union[str, NoneType], required=False, alias='regelzoneEic', alias_priority=1, description='De EIC-Nummer der Regelzone'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

regelzone: str | None

Der Name der Regelzone

regelzone_eic: str | None

De EIC-Nummer der Regelzone

bo4e.com.steuerbetrag module

Contains Steuerbetrag class and corresponding marshmallow schema for de-/serialization

class bo4e.com.steuerbetrag.Steuerbetrag(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, steuerkennzeichen: Steuerkennzeichen | None = None, basiswert: Decimal | None = None, steuerwert: Decimal | None = None, waehrung: Waehrungscode | None = None, **extra_data: Any)[source]

Bases: COM

Abbildung eines Steuerbetrages.

basiswert: Decimal | None

Nettobetrag für den die Steuer berechnet wurde. Z.B. 100

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'basiswert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='basiswert', alias_priority=1, description='Nettobetrag für den die Steuer berechnet wurde. Z.B. 100'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'steuerkennzeichen': FieldInfo(annotation=Union[Steuerkennzeichen, NoneType], required=False, alias='steuerkennzeichen', alias_priority=1, description='Kennzeichnung des Steuersatzes, bzw. Verfahrens.'), 'steuerwert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='steuerwert', alias_priority=1, description='Aus dem Basiswert berechnete Steuer. Z.B. 19 (bei UST_19)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'waehrung': FieldInfo(annotation=Union[Waehrungscode, NoneType], required=False, alias='waehrung', alias_priority=1, description='Währung. Z.B. Euro.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

steuerkennzeichen: Steuerkennzeichen | None

Kennzeichnung des Steuersatzes, bzw. Verfahrens.

steuerwert: Decimal | None

Aus dem Basiswert berechnete Steuer. Z.B. 19 (bei UST_19)

waehrung: Waehrungscode | None

Währung. Z.B. Euro.

bo4e.com.tarifberechnungsparameter module

Contains Tarifberechnungsparameter class and corresponding marshmallow schema for de-/serialization

class bo4e.com.tarifberechnungsparameter.Tarifberechnungsparameter(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, berechnungsmethode: Tarifkalkulationsmethode | None = None, istMesspreisInGrundpreisEnthalten: bool | None = None, istMesspreisZuBeruecksichtigen: bool | None = None, messpreistyp: Messpreistyp | None = None, kwInklusive: Decimal | None = None, kwWeitereMengen: Decimal | None = None, hoechstpreisNT: Preis | None = None, hoechstpreisHT: Preis | None = None, mindestpreis: Preis | None = None, zusatzpreise: list[Tarifpreis] | None = None, **extra_data: Any)[source]

Bases: COM

In dieser Komponente sind die Berechnungsparameter für die Ermittlung der Tarifkosten zusammengefasst. .. raw:: html

<object data=”../_static/images/bo4e/com/Tarifberechnungsparameter.svg” type=”image/svg+xml”></object>

berechnungsmethode: Tarifkalkulationsmethode | None

Gibt an, wie die Einzelpreise des Tarifes zu verarbeiten sind

hoechstpreis_h_t: Preis | None

Höchstpreis für den Durchschnitts-Arbeitspreis HT

hoechstpreis_n_t: Preis | None

Höchstpreis für den Durchschnitts-Arbeitspreis NT

ist_messpreis_in_grundpreis_enthalten: bool | None

True, falls der Messpreis im Grundpreis (GP) enthalten ist

ist_messpreis_zu_beruecksichtigen: bool | None

True, falls bei der Bildung des Durchschnittspreises für die Höchst- und Mindestpreisbetrachtung der Messpreis mit berücksichtigt wird

kw_inklusive: Decimal | None

Im Preis bereits eingeschlossene Leistung (für Gas)

kw_weitere_mengen: Decimal | None

Intervall, indem die über “kwInklusive” hinaus abgenommene Leistung kostenpflichtig wird (z.B. je 5 kW 20 EURO)

messpreistyp: Messpreistyp | None

Typ des Messpreises

mindestpreis: Preis | None

Mindestpreis für den Durchschnitts-Arbeitspreis

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'berechnungsmethode': FieldInfo(annotation=Union[Tarifkalkulationsmethode, NoneType], required=False, alias='berechnungsmethode', alias_priority=1, description='Gibt an, wie die Einzelpreise des Tarifes zu verarbeiten sind'), 'hoechstpreis_h_t': FieldInfo(annotation=Union[Preis, NoneType], required=False, alias='hoechstpreisHT', alias_priority=1, description='Höchstpreis für den Durchschnitts-Arbeitspreis HT'), 'hoechstpreis_n_t': FieldInfo(annotation=Union[Preis, NoneType], required=False, alias='hoechstpreisNT', alias_priority=1, description='Höchstpreis für den Durchschnitts-Arbeitspreis NT'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'ist_messpreis_in_grundpreis_enthalten': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istMesspreisInGrundpreisEnthalten', alias_priority=1, description='True, falls der Messpreis im Grundpreis (GP) enthalten ist'), 'ist_messpreis_zu_beruecksichtigen': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istMesspreisZuBeruecksichtigen', alias_priority=1, description='Typ des Messpreises'), 'kw_inklusive': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='kwInklusive', alias_priority=1, description='Im Preis bereits eingeschlossene Leistung (für Gas)'), 'kw_weitere_mengen': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='kwWeitereMengen', alias_priority=1, description='Intervall, indem die über "kwInklusive" hinaus abgenommene Leistung kostenpflichtig wird (z.B. je 5 kW 20 EURO)'), 'messpreistyp': FieldInfo(annotation=Union[Messpreistyp, NoneType], required=False, alias='messpreistyp', alias_priority=1, description='Typ des Messpreises'), 'mindestpreis': FieldInfo(annotation=Union[Preis, NoneType], required=False, alias='mindestpreis', alias_priority=1, description='Mindestpreis für den Durchschnitts-Arbeitspreis'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1), 'zusatzpreise': FieldInfo(annotation=Union[list[Tarifpreis], NoneType], required=False, alias='zusatzpreise', alias_priority=1, description='Liste mit zusätzlichen Preisen, beispielsweise Messpreise und/oder Leistungspreise')}

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

This replaces Model.__fields__ from Pydantic V1.

zusatzpreise: list[Tarifpreis] | None

Liste mit zusätzlichen Preisen, beispielsweise Messpreise und/oder Leistungspreise

bo4e.com.tarifeinschraenkung module

Contains Tarifeinschraenkung and corresponding marshmallow schema for de-/serialization

class bo4e.com.tarifeinschraenkung.Tarifeinschraenkung(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, zusatzprodukte: list[str] | None = None, voraussetzungen: list[Voraussetzungen] | None = None, einschraenkungzaehler: list[Geraet] | None = None, einschraenkungleistung: list[Menge] | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente werden Einschränkungen für die Anwendung von Tarifen modelliert.

einschraenkungleistung: list[Menge] | None

Die vereinbarte Leistung, die (näherungsweise) abgenommen wird. Insbesondere Gastarife können daran gebunden sein, dass die Leistung einer vereinbarten Höhe entspricht.

einschraenkungzaehler: list[Geraet] | None

Liste der Zähler/Geräte, die erforderlich sind, damit dieser Tarif zur Anwendung gelangen kann. (Falls keine Zähler angegeben sind, ist der Tarif nicht an das Vorhandensein bestimmter Zähler gebunden.)

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'einschraenkungleistung': FieldInfo(annotation=Union[list[Menge], NoneType], required=False, alias='einschraenkungleistung', alias_priority=1, description='Die vereinbarte Leistung, die (näherungsweise) abgenommen wird.\nInsbesondere Gastarife können daran gebunden sein, dass die Leistung einer vereinbarten Höhe entspricht.'), 'einschraenkungzaehler': FieldInfo(annotation=Union[list[Geraet], NoneType], required=False, alias='einschraenkungzaehler', alias_priority=1, description='Liste der Zähler/Geräte, die erforderlich sind, damit dieser Tarif zur Anwendung gelangen kann.\n(Falls keine Zähler angegeben sind, ist der Tarif nicht an das Vorhandensein bestimmter Zähler gebunden.)'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'voraussetzungen': FieldInfo(annotation=Union[list[Voraussetzungen], NoneType], required=False, alias='voraussetzungen', alias_priority=1, description='Voraussetzungen, die erfüllt sein müssen, damit dieser Tarif zur Anwendung kommen kann'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1), 'zusatzprodukte': FieldInfo(annotation=Union[list[str], NoneType], required=False, alias='zusatzprodukte', alias_priority=1, description='Weitere Produkte, die gemeinsam mit diesem Tarif bestellt werden können')}

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

This replaces Model.__fields__ from Pydantic V1.

voraussetzungen: list[Voraussetzungen] | None

Voraussetzungen, die erfüllt sein müssen, damit dieser Tarif zur Anwendung kommen kann

zusatzprodukte: list[str] | None

Weitere Produkte, die gemeinsam mit diesem Tarif bestellt werden können

bo4e.com.tarifpreis module

Contains Tarifpreis class and corresponding marshmallow schema for de-/serialization

class bo4e.com.tarifpreis.Tarifpreis(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, wert: Decimal | None = None, einheit: Waehrungseinheit | None = None, bezugswert: Mengeneinheit | None = None, status: Preisstatus | None = None, preistyp: Preistyp | None = None, beschreibung: str | None = None, **extra_data: Any)[source]

Bases: Preis

Abbildung eines Tarifpreises mit Preistyp und Beschreibung abgeleitet von COM Preis.

beschreibung: str | None

Beschreibung des Preises. Hier können z.B. Preisdetails angegeben sein, beispielsweise “Drehstromzähler”.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'beschreibung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='beschreibung', alias_priority=1, description='Beschreibung des Preises. Hier können z.B. Preisdetails angegeben sein, beispielsweise "Drehstromzähler".'), 'bezugswert': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='bezugswert', alias_priority=1, description='Angabe, für welche Bezugsgröße der Preis gilt. Z.B. kWh.'), 'einheit': FieldInfo(annotation=Union[Waehrungseinheit, NoneType], required=False, alias='einheit', alias_priority=1, description='Währungseinheit für den Preis, z.B. Euro oder Ct.'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'preistyp': FieldInfo(annotation=Union[Preistyp, NoneType], required=False, alias='preistyp', alias_priority=1, description='Angabe des Preistypes (z.B. Grundpreis)'), 'status': FieldInfo(annotation=Union[Preisstatus, NoneType], required=False, alias='status', alias_priority=1, description='Gibt den Status des veröffentlichten Preises an'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'wert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='wert', alias_priority=1, description='Gibt die nominale Höhe des Preises an.'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

preistyp: Preistyp | None

Angabe des Preistypes (z.B. Grundpreis)

bo4e.com.tarifpreisposition module

Contains Tarifpreisposition class and corresponding marshmallow schema for de-/serialization

class bo4e.com.tarifpreisposition.Tarifpreisposition(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, preistyp: Preistyp | None = None, einheit: Waehrungseinheit | None = None, bezugseinheit: Mengeneinheit | None = None, preisstaffeln: list[Preisstaffel] | None = None, mengeneinheitstaffel: Mengeneinheit | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente können Tarifpreise verschiedener Typen abgebildet werden.

bezugseinheit: Mengeneinheit | None

Größe, auf die sich die Einheit bezieht, beispielsweise kWh, Jahr

einheit: Waehrungseinheit | None

Einheit des Preises (z.B. EURO)

mengeneinheitstaffel: Mengeneinheit | None

Gibt an, nach welcher Menge die vorgenannte Einschränkung erfolgt (z.B. Jahresstromverbrauch in kWh)

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'bezugseinheit': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='bezugseinheit', alias_priority=1, description='Größe, auf die sich die Einheit bezieht, beispielsweise kWh, Jahr'), 'einheit': FieldInfo(annotation=Union[Waehrungseinheit, NoneType], required=False, alias='einheit', alias_priority=1, description='Einheit des Preises (z.B. EURO)'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'mengeneinheitstaffel': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='mengeneinheitstaffel', alias_priority=1, description='Gibt an, nach welcher Menge die vorgenannte Einschränkung erfolgt (z.B. Jahresstromverbrauch in kWh)'), 'preisstaffeln': FieldInfo(annotation=Union[list[Preisstaffel], NoneType], required=False, alias='preisstaffeln', alias_priority=1, description='Hier sind die Staffeln mit ihren Preisenangaben definiert'), 'preistyp': FieldInfo(annotation=Union[Preistyp, NoneType], required=False, alias='preistyp', alias_priority=1, description='Angabe des Preistypes (z.B. Grundpreis)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

preisstaffeln: list[Preisstaffel] | None

Hier sind die Staffeln mit ihren Preisenangaben definiert

preistyp: Preistyp | None

Angabe des Preistypes (z.B. Grundpreis)

bo4e.com.tarifpreispositionproort module

Contains TarifpreispositionProOrt class and corresponding marshmallow schema for de-/serialization

class bo4e.com.tarifpreispositionproort.TarifpreispositionProOrt(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, postleitzahl: str | None = None, ort: str | None = None, netznr: str | None = None, preisstaffeln: list[TarifpreisstaffelProOrt] | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente können Tarifpreise verschiedener Typen abgebildet werden

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'netznr': FieldInfo(annotation=Union[str, NoneType], required=False, alias='netznr', alias_priority=1, description="ene't-Netznummer des Netzes in dem der Preis gilt"), 'ort': FieldInfo(annotation=Union[str, NoneType], required=False, alias='ort', alias_priority=1, description='Ort für den der Preis gilt'), 'postleitzahl': FieldInfo(annotation=Union[str, NoneType], required=False, alias='postleitzahl', alias_priority=1, description='Postleitzahl des Ortes für den der Preis gilt'), 'preisstaffeln': FieldInfo(annotation=Union[list[TarifpreisstaffelProOrt], NoneType], required=False, alias='preisstaffeln', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

netznr: str | None

ene’t-Netznummer des Netzes in dem der Preis gilt

ort: str | None

Ort für den der Preis gilt

postleitzahl: str | None

Postleitzahl des Ortes für den der Preis gilt

preisstaffeln: list[TarifpreisstaffelProOrt] | None

bo4e.com.tarifpreisstaffelproort module

Contains TarifpreisstaffelProOrt class and corresponding marshmallow schema for de-/serialization

class bo4e.com.tarifpreisstaffelproort.TarifpreisstaffelProOrt(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, arbeitspreis: Decimal | None = None, arbeitspreisNT: Decimal | None = None, grundpreis: Decimal | None = None, staffelgrenzeVon: Decimal | None = None, staffelgrenzeBis: Decimal | None = None, **extra_data: Any)[source]

Bases: COM

Gibt die Staffelgrenzen der jeweiligen Preise an

arbeitspreis: Decimal | None

Der Arbeitspreis in ct/kWh

arbeitspreis_n_t: Decimal | None

Der Arbeitspreis für Verbräuche in der Niedertarifzeit in ct/kWh

grundpreis: Decimal | None

Der Grundpreis in Euro/Jahr

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'arbeitspreis': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='arbeitspreis', alias_priority=1, description='Der Arbeitspreis in ct/kWh'), 'arbeitspreis_n_t': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='arbeitspreisNT', alias_priority=1, description='Der Arbeitspreis für Verbräuche in der Niedertarifzeit in ct/kWh'), 'grundpreis': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='grundpreis', alias_priority=1, description='Der Grundpreis in Euro/Jahr'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'staffelgrenze_bis': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='staffelgrenzeBis', alias_priority=1, description='Oberer Wert, bis zu dem die Staffel gilt (exklusive)'), 'staffelgrenze_von': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='staffelgrenzeVon', alias_priority=1, description='Unterer Wert, ab dem die Staffel gilt (inklusive)'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

staffelgrenze_bis: Decimal | None

Oberer Wert, bis zu dem die Staffel gilt (exklusive)

staffelgrenze_von: Decimal | None

Unterer Wert, ab dem die Staffel gilt (inklusive)

bo4e.com.unterschrift module

Contains Unterschrift class and corresponding marshmallow schema for de-/serialization

class bo4e.com.unterschrift.Unterschrift(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, name: str | None = None, ort: str | None = None, datum: AwareDatetime | None = None, **extra_data: Any)[source]

Bases: COM

Modellierung einer Unterschrift, z.B. für Verträge, Angebote etc.

datum: AwareDatetime | None

Datum der Unterschrift

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'datum': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='datum', alias_priority=1, description='Ort, an dem die Unterschrift geleistet wird'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, alias='name', alias_priority=1, description='Name des Unterschreibers'), 'ort': FieldInfo(annotation=Union[str, NoneType], required=False, alias='ort', alias_priority=1, description='Ort, an dem die Unterschrift geleistet wird'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

name: str | None

Name des Unterschreibers

ort: str | None

Ort, an dem die Unterschrift geleistet wird

bo4e.com.verbrauch module

Contains Verbrauch and corresponding marshmallow schema for de-/serialization

class bo4e.com.verbrauch.Verbrauch(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, wertermittlungsverfahren: Wertermittlungsverfahren | None = None, obisKennzahl: str | None = None, wert: Decimal | None = None, einheit: Mengeneinheit | None = None, startdatum: AwareDatetime | None = None, enddatum: AwareDatetime | None = None, messwertstatus: Messwertstatus | None = None, **extra_data: Any)[source]

Bases: COM

Abbildung eines zeitlich abgegrenzten Verbrauchs

einheit: Mengeneinheit | None

Gibt die Einheit zum jeweiligen Wert an

enddatum: AwareDatetime | None

Exklusives Ende des Zeitraumes, für den der Verbrauch angegeben wird

messwertstatus: Messwertstatus | None

Messwertstatus includes the plausibility of the value

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'einheit': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='einheit', alias_priority=1, description='Gibt die Einheit zum jeweiligen Wert an'), 'enddatum': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='enddatum', alias_priority=1, description='Exklusives Ende des Zeitraumes, für den der Verbrauch angegeben wird'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'messwertstatus': FieldInfo(annotation=Union[Messwertstatus, NoneType], required=False, alias='messwertstatus', alias_priority=1, description='Messwertstatus includes the plausibility of the value'), 'obis_kennzahl': FieldInfo(annotation=Union[str, NoneType], required=False, alias='obisKennzahl', alias_priority=1, description="Die OBIS-Kennzahl für den Wert, die festlegt, welche Größe mit dem Stand gemeldet wird, z.B. '1-0:"), 'startdatum': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='startdatum', alias_priority=1, description='Inklusiver Beginn des Zeitraumes, für den der Verbrauch angegeben wird'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'wert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='wert', alias_priority=1, description='Gibt den absoluten Wert der Menge an'), 'wertermittlungsverfahren': FieldInfo(annotation=Union[Wertermittlungsverfahren, NoneType], required=False, alias='wertermittlungsverfahren', alias_priority=1, description='Gibt an, ob es sich um eine PROGNOSE oder eine MESSUNG handelt'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

obis_kennzahl: str | None

Die OBIS-Kennzahl für den Wert, die festlegt, welche Größe mit dem Stand gemeldet wird, z.B. ‘1-0:

startdatum: AwareDatetime | None

Inklusiver Beginn des Zeitraumes, für den der Verbrauch angegeben wird

wert: Decimal | None

Gibt den absoluten Wert der Menge an

wertermittlungsverfahren: Wertermittlungsverfahren | None

Gibt an, ob es sich um eine PROGNOSE oder eine MESSUNG handelt

bo4e.com.vertragskonditionen module

Contains Vertragskonditionen class and corresponding marshmallow schema for de-/serialization

class bo4e.com.vertragskonditionen.Vertragskonditionen(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, beschreibung: str | None = None, anzahlAbschlaege: Decimal | None = None, vertragslaufzeit: Zeitraum | None = None, kuendigungsfrist: Zeitraum | None = None, vertragsverlaengerung: Zeitraum | None = None, abschlagszyklus: Zeitraum | None = None, **extra_data: Any)[source]

Bases: COM

Abbildung für Vertragskonditionen. Die Komponente wird sowohl im Vertrag als auch im Tarif verwendet.

abschlagszyklus: Zeitraum | None

In diesen Zyklen werden Abschläge gestellt. Alternativ kann auch die Anzahl in den Konditionen angeben werden.

anzahl_abschlaege: Decimal | None

Anzahl der vereinbarten Abschläge pro Jahr, z.B. 12

beschreibung: str | None

Freitext zur Beschreibung der Konditionen, z.B. “Standardkonditionen Gas”

kuendigungsfrist: Zeitraum | None

Innerhalb dieser Frist kann der Vertrag gekündigt werden

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'abschlagszyklus': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='abschlagszyklus', alias_priority=1, description='In diesen Zyklen werden Abschläge gestellt. Alternativ kann auch die Anzahl in den Konditionen angeben werden.'), 'anzahl_abschlaege': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='anzahlAbschlaege', alias_priority=1, description='Anzahl der vereinbarten Abschläge pro Jahr, z.B. 12'), 'beschreibung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='beschreibung', alias_priority=1, description='Freitext zur Beschreibung der Konditionen, z.B. "Standardkonditionen Gas"'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'kuendigungsfrist': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='kuendigungsfrist', alias_priority=1, description='Innerhalb dieser Frist kann der Vertrag gekündigt werden'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'vertragslaufzeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='vertragslaufzeit', alias_priority=1, description='Über diesen Zeitraum läuft der Vertrag'), 'vertragsverlaengerung': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='vertragsverlaengerung', alias_priority=1, description='Falls der Vertrag nicht gekündigt wird, verlängert er sich automatisch um die hier angegebene Zeit'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

vertragslaufzeit: Zeitraum | None

Über diesen Zeitraum läuft der Vertrag

vertragsverlaengerung: Zeitraum | None

Falls der Vertrag nicht gekündigt wird, verlängert er sich automatisch um die hier angegebene Zeit

bo4e.com.vertragsteil module

Contains Vertragsteil class and corresponding marshmallow schema for de-/serialization

class bo4e.com.vertragsteil.Vertragsteil(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, vertragsteilbeginn: AwareDatetime | None = None, vertragsteilende: AwareDatetime | None = None, lokation: str | None = None, vertraglichFixierteMenge: Menge | None = None, minimaleAbnahmemenge: Menge | None = None, maximaleAbnahmemenge: Menge | None = None, **extra_data: Any)[source]

Bases: COM

Abbildung für einen Vertragsteil. Der Vertragsteil wird dazu verwendet, eine vertragliche Leistung in Bezug zu einer Lokation (Markt- oder Messlokation) festzulegen.

lokation: str | None

Der Identifier für diejenigen Markt- oder Messlokation, die zu diesem Vertragsteil gehören. Verträge für mehrere Lokationen werden mit mehreren Vertragsteilen abgebildet

maximale_abnahmemenge: Menge | None

Für die Lokation festgelegte maximale Abnahmemenge (exklusiv)

minimale_abnahmemenge: Menge | None

Für die Lokation festgelegte Mindestabnahmemenge (inklusiv)

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'lokation': FieldInfo(annotation=Union[str, NoneType], required=False, alias='lokation', alias_priority=1, description='vertraglich_fixierte_menge: Optional[Menge] = None'), 'maximale_abnahmemenge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='maximaleAbnahmemenge', alias_priority=1, description='Für die Lokation festgelegte maximale Abnahmemenge (exklusiv)'), 'minimale_abnahmemenge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='minimaleAbnahmemenge', alias_priority=1, description='maximale_abnahmemenge: Optional[Menge] = None'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'vertraglich_fixierte_menge': FieldInfo(annotation=Union[Menge, NoneType], required=False, alias='vertraglichFixierteMenge', alias_priority=1, description='minimale_abnahmemenge: Optional[Menge] = None'), 'vertragsteilbeginn': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='vertragsteilbeginn', alias_priority=1, description='vertragsteilende: Optional[pydantic.AwareDatetime] = None'), 'vertragsteilende': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='vertragsteilende', alias_priority=1, description='lokation: Optional[str] = None'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

vertraglich_fixierte_menge: Menge | None

Für die Lokation festgeschriebene Abnahmemenge

vertragsteilbeginn: AwareDatetime | None

Start der Gültigkeit des Vertragsteils (inklusiv)

vertragsteilende: AwareDatetime | None

Ende der Gültigkeit des Vertragsteils (exklusiv)

bo4e.com.verwendungszweckpromarktrolle module

Contains Verwendungszweck class and corresponding marshmallow schema for de-/serialization

class bo4e.com.verwendungszweckpromarktrolle.VerwendungszweckProMarktrolle(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, marktrolle: Marktrolle | None = None, zwecke: list[Verwendungszweck] | None = None, **extra_data: Any)[source]

Bases: COM

Dient zur Identifizierung des Verwendungszwecks der Marktrolle an der Marktlokation, der die Werte zu übermitteln sind.

Zwecke: list[Verwendungszweck] | None

Verwendungszwecke

marktrolle: Marktrolle | None

Marktrolle, für die die Daten relevant sind

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'Zwecke': FieldInfo(annotation=Union[list[Verwendungszweck], NoneType], required=False, alias='zwecke', alias_priority=1, description='Verwendungszwecke'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'marktrolle': FieldInfo(annotation=Union[Marktrolle, NoneType], required=False, alias='marktrolle', alias_priority=1, description='Zwecke: Optional[list[Verwendungszweck]] = None'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

bo4e.com.zaehlwerk module

Contains Zaehlwerk class and corresponding marshmallow schema for de-/serialization

class bo4e.com.zaehlwerk.Zaehlwerk(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, zaehlwerkId: str | None = None, bezeichnung: str | None = None, richtung: Energierichtung | None = None, obisKennzahl: str | None = None, wandlerfaktor: Decimal | None = None, einheit: Mengeneinheit | None = None, istSchwachlastfaehig: bool | None = None, verwendungszwecke: list[VerwendungszweckProMarktrolle] | None = None, verbrauchsart: Verbrauchsart | None = None, istUnterbrechbar: bool | None = None, waermenutzung: Waermenutzung | None = None, konzessionsabgabe: Konzessionsabgabe | None = None, istSteuerbefreit: bool | None = None, vorkommastelle: int | None = None, nachkommastelle: int | None = None, istAbrechnungsrelevant: bool | None = None, anzahlAblesungen: int | None = None, zaehlzeitregister: Zaehlzeitregister | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente werden Zählwerke modelliert.

anzahlAblesungen: int | None

Anzahl Ablesungen pro Jahr

bezeichnung: str | None
einheit: Mengeneinheit | None
ist_abrechnungsrelevant: bool | None

Abrechnungsrelevant

ist_schwachlastfaehig: bool | None

Schwachlastfaehigkeit

ist_steuerbefreit: bool | None

Steuerbefreiung

ist_unterbrechbar: bool | None

Unterbrechbarkeit Marktlokation

konzessionsabgabe: Konzessionsabgabe | None

Konzessionsabgabe

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'anzahlAblesungen': FieldInfo(annotation=Union[int, NoneType], required=False, alias='anzahlAblesungen', alias_priority=1, description='Abrechnungsrelevant'), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'einheit': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='einheit', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'ist_abrechnungsrelevant': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istAbrechnungsrelevant', alias_priority=1, description='Anzahl der Nachkommastellen'), 'ist_schwachlastfaehig': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istSchwachlastfaehig', alias_priority=1, description='Schwachlastfaehigkeit'), 'ist_steuerbefreit': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istSteuerbefreit', alias_priority=1, description='Konzessionsabgabe'), 'ist_unterbrechbar': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istUnterbrechbar', alias_priority=1, description='Stromverbrauchsart/Verbrauchsart Marktlokation'), 'konzessionsabgabe': FieldInfo(annotation=Union[Konzessionsabgabe, NoneType], required=False, alias='konzessionsabgabe', alias_priority=1, description='Wärmenutzung Marktlokation'), 'nachkommastelle': FieldInfo(annotation=Union[int, NoneType], required=False, alias='nachkommastelle', alias_priority=1, description='Anzahl der Vorkommastellen'), 'obis_kennzahl': FieldInfo(annotation=Union[str, NoneType], required=False, alias='obisKennzahl', alias_priority=1), 'richtung': FieldInfo(annotation=Union[Energierichtung, NoneType], required=False, alias='richtung', alias_priority=1), 'verbrauchsart': FieldInfo(annotation=Union[Verbrauchsart, NoneType], required=False, alias='verbrauchsart', alias_priority=1, description='Verwendungungszweck der Werte Marktlokation'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'verwendungszwecke': FieldInfo(annotation=Union[list[VerwendungszweckProMarktrolle], NoneType], required=False, alias='verwendungszwecke', alias_priority=1, description='Schwachlastfaehigkeit'), 'vorkommastelle': FieldInfo(annotation=Union[int, NoneType], required=False, alias='vorkommastelle', alias_priority=1, description='Steuerbefreiung'), 'waermenutzung': FieldInfo(annotation=Union[Waermenutzung, NoneType], required=False, alias='waermenutzung', alias_priority=1, description='Unterbrechbarkeit Marktlokation'), 'wandlerfaktor': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='wandlerfaktor', alias_priority=1), 'zaehlwerk_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='zaehlwerkId', alias_priority=1), 'zaehlzeitregister': FieldInfo(annotation=Union[Zaehlzeitregister, NoneType], required=False, alias='zaehlzeitregister', alias_priority=1, description='Anzahl Ablesungen pro Jahr'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

nachkommastelle: int | None

Anzahl der Nachkommastellen

obis_kennzahl: str | None
richtung: Energierichtung | None
verbrauchsart: Verbrauchsart | None

Stromverbrauchsart/Verbrauchsart Marktlokation

verwendungszwecke: list[VerwendungszweckProMarktrolle] | None

Verwendungungszweck der Werte Marktlokation

vorkommastelle: int | None

Anzahl der Vorkommastellen

waermenutzung: Waermenutzung | None

Wärmenutzung Marktlokation

wandlerfaktor: Decimal | None
zaehlwerk_id: str | None
zaehlzeitregister: Zaehlzeitregister | None

Erweiterte Definition der Zählzeit in Bezug auf ein Register

bo4e.com.zaehlzeitregister module

Contains Zaehlzeitregister class and corresponding marshmallow schema for de-/serialization

class bo4e.com.zaehlzeitregister.Zaehlzeitregister(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, zaehlzeitDefinition: str | None = None, zaehlzeitRegister: str | None = None, istSchwachlastfaehig: bool | None = None, **extra_data: Any)[source]

Bases: COM

Mit dieser Komponente werden Zählzeitregister modelliert. Ein Zählzeitregister beschreibt eine erweiterte Definition der Zählzeit in Bezug auf ein Register. Dabei werden alle Codes dazu vom Netzbetreiber vergeben.

ist_schwachlastfaehig: bool | None

Schwachlastfaehigkeit

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'ist_schwachlastfaehig': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istSchwachlastfaehig', alias_priority=1, description='Zählzeitregister'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zaehlzeit_definition': FieldInfo(annotation=Union[str, NoneType], required=False, alias='zaehlzeitDefinition', alias_priority=1, description='Zählzeitdefinition'), 'zaehlzeit_register': FieldInfo(annotation=Union[str, NoneType], required=False, alias='zaehlzeitRegister', alias_priority=1, description='Zählzeitdefinition'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

zaehlzeit_definition: str | None

Zählzeitdefinition

zaehlzeit_register: str | None

Zählzeitregister

bo4e.com.zeitraum module

Contains Zeitraum class and corresponding marshmallow schema for de-/serialization

class bo4e.com.zeitraum.Zeitraum(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, einheit: Mengeneinheit | None = None, dauer: Decimal | None = None, startdatum: AwareDatetime | None = None, enddatum: AwareDatetime | None = None, startzeitpunkt: AwareDatetime | None = None, endzeitpunkt: AwareDatetime | None = None, **extra_data: Any)[source]

Bases: COM

Diese Komponente wird zur Abbildung von Zeiträumen in Form von Dauern oder der Angabe von Start und Ende verwendet. Es muss daher eine der drei Möglichkeiten angegeben sein: - Einheit und Dauer oder - Zeitraum: Startdatum bis Enddatum oder - Zeitraum: Startzeitpunkt (Datum und Uhrzeit) bis Endzeitpunkt (Datum und Uhrzeit)

dauer: Decimal | None
einheit: Mengeneinheit | None
enddatum: AwareDatetime | None
endzeitpunkt: AwareDatetime | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'dauer': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='dauer', alias_priority=1), 'einheit': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='einheit', alias_priority=1), 'enddatum': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='enddatum', alias_priority=1), 'endzeitpunkt': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='endzeitpunkt', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'startdatum': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='startdatum', alias_priority=1), 'startzeitpunkt': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='startzeitpunkt', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

startdatum: AwareDatetime | None
startzeitpunkt: AwareDatetime | None

bo4e.com.zeitreihenwert module

Contains Zeitreihenwert class and corresponding marshmallow schema for de-/serialization

class bo4e.com.zeitreihenwert.Zeitreihenwert(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, zeitspanne: Zeitspanne | None = None, wert: Decimal | None = None, status: Messwertstatus | None = None, statuszusatz: Messwertstatuszusatz | None = None, **extra_data: Any)[source]

Bases: COM

Abbildung eines Zeitreihenwertes bestehend aus Zeitraum, Wert und Statusinformationen.

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'status': FieldInfo(annotation=Union[Messwertstatus, NoneType], required=False, alias='status', alias_priority=1, description='Der Status gibt an, wie der Wert zu interpretieren ist, z.B. in Berechnungen.'), 'statuszusatz': FieldInfo(annotation=Union[Messwertstatuszusatz, NoneType], required=False, alias='statuszusatz', alias_priority=1, description='Eine Zusatzinformation zum Status, beispielsweise ein Grund für einen fehlenden Wert.'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'wert': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='wert', alias_priority=1, description='Zeitespanne für das Messintervall'), 'zeitspanne': FieldInfo(annotation=Union[Zeitspanne, NoneType], required=False, alias='zeitspanne', alias_priority=1, description='Zeitespanne für das Messintervall'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

status: Messwertstatus | None

Der Status gibt an, wie der Wert zu interpretieren ist, z.B. in Berechnungen.

statuszusatz: Messwertstatuszusatz | None

Eine Zusatzinformation zum Status, beispielsweise ein Grund für einen fehlenden Wert.

wert: Decimal | None

Der in der Zeitspanne gültige Wert.

zeitspanne: Zeitspanne | None

Zeitespanne für das Messintervall

bo4e.com.zeitspanne module

contains the COM Zeitspanne

class bo4e.com.zeitspanne.Zeitspanne(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, start: AwareDatetime | None = None, ende: AwareDatetime | None = None, **extra_data: Any)[source]

Bases: COM

Eine Zeitspanne ist definiert aus Start und/oder Ende. Der Unterschied zur Menge (die auch zur Abbildung von Zeitmengen genutzt wird) ist, dass konkrete Start- und Endzeitpunkte angegeben werden. Die Zeitspanne ist aus dem COM Zeitraum hervorgegangen, das in Zeitspanne und Menge aufgeteilt wurde.

ende: AwareDatetime | None

exklusives Ende

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'ende': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='ende', alias_priority=1, description='inklusiver Beginn'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'start': FieldInfo(annotation=Union[AwareDatetime, NoneType], required=False, alias='start', alias_priority=1, description='inklusiver Beginn'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

start: AwareDatetime | None

inklusiver Beginn

bo4e.com.zustaendigkeit module

Contains Zustaendigkeit class and corresponding marshmallow schema for de-/serialization

class bo4e.com.zustaendigkeit.Zustaendigkeit(*, _version: str | None = '202401.1.0rc2.dev24+g3e8e940', _id: str | None = None, zusatzAttribute: list[ZusatzAttribut] | None = None, themengebiet: Themengebiet | None = None, position: str | None = None, abteilung: str | None = None, **extra_data: Any)[source]

Bases: COM

Enthält die zeitliche Zuordnung eines Ansprechpartners zu Abteilungen und Zuständigkeiten.

abteilung: str | None

Abteilung, in der der Ansprechpartner/ die Person tätig ist

model_config: ClassVar[ConfigDict] = {'alias_generator': <function camelize>, 'extra': 'allow', 'json_encoders': {<class 'decimal.Decimal'>: <class 'str'>}, 'populate_by_name': True}

basic configuration for pydantic’s behaviour

model_fields: ClassVar[dict[str, FieldInfo]] = {'abteilung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='abteilung', alias_priority=1, description='Berufliche Rolle des Ansprechpartners/ der Person'), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2, description='zusatz_attribute: Optional[list[ZusatzAttribut]] = None\n\n# pylint: disable=duplicate-code\nmodel_config = ConfigDict(\n    alias_generator=camelize,\n    populate_by_name=True,\n    extra="allow",\n    # json_encoders is deprecated, but there is no easy-to-use alternative. The best way would be to create\n    # an annotated version of Decimal, but you would have to use it everywhere in the pydantic models.\n    # See this issue for more info: https://github.com/pydantic/pydantic/issues/6375\n    json_encoders={Decimal: str},\n)'), 'position': FieldInfo(annotation=Union[str, NoneType], required=False, alias='position', alias_priority=1, description='Berufliche Rolle des Ansprechpartners/ der Person'), 'themengebiet': FieldInfo(annotation=Union[Themengebiet, NoneType], required=False, alias='themengebiet', alias_priority=1, description='Hier kann eine thematische Zuordnung des Ansprechpartners bzw. der Person angegeben werden'), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='202401.1.0rc2.dev24+g3e8e940', alias='_version', alias_priority=2, description='Version der BO-Struktur aka "fachliche Versionierung"'), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1)}

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

This replaces Model.__fields__ from Pydantic V1.

position: str | None

Berufliche Rolle des Ansprechpartners/ der Person

themengebiet: Themengebiet | None

Hier kann eine thematische Zuordnung des Ansprechpartners bzw. der Person angegeben werden

Module contents