bo4e.bo package

Submodules

bo4e.bo.angebot module

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

class bo4e.bo.angebot.Angebot(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.ANGEBOT, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, angebotsnummer: str | None = None, angebotsdatum: datetime | None = None, sparte: Sparte | None = None, angebotsgeber: Geschaeftspartner | None = None, angebotsnehmer: Geschaeftspartner | None = None, varianten: list[Angebotsvariante] | None = None, anfragereferenz: str | None = None, bindefrist: datetime | None = None, unterzeichnerAngebotsnehmer: Ansprechpartner | None = None, unterzeichnerAngebotsgeber: Ansprechpartner | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Mit diesem BO kann ein Versorgungsangebot zur Strom- oder Gasversorgung oder die Teilnahme an einer Ausschreibung übertragen werden. Es können verschiedene Varianten enthalten sein (z.B. ein- und mehrjährige Laufzeit). Innerhalb jeder Variante können Teile enthalten sein, die jeweils für eine oder mehrere Marktlokationen erstellt werden.

anfragereferenz: str | None

Referenz auf eine Anfrage oder Ausschreibung; Kann dem Empfänger des Angebotes bei Zuordnung des Angebotes zur Anfrage bzw. Ausschreibung helfen.

angebotsdatum: datetime | None

Erstellungsdatum des Angebots

angebotsgeber: Geschaeftspartner | None

Ersteller des Angebots

angebotsnehmer: Geschaeftspartner | None

Empfänger des Angebots

angebotsnummer: str | None

Eindeutige Nummer des Angebotes

bindefrist: datetime | None

Bis zu diesem Zeitpunkt (Tag/Uhrzeit) inklusive gilt das Angebot

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]] = {'anfragereferenz': FieldInfo(annotation=Union[str, NoneType], required=False, alias='anfragereferenz', alias_priority=1), 'angebotsdatum': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='angebotsdatum', alias_priority=1), 'angebotsgeber': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='angebotsgeber', alias_priority=1), 'angebotsnehmer': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='angebotsnehmer', alias_priority=1), 'angebotsnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='angebotsnummer', alias_priority=1), 'bindefrist': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='bindefrist', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.ANGEBOT: 'ANGEBOT'>, alias='_typ', alias_priority=2), 'unterzeichner_angebotsgeber': FieldInfo(annotation=Union[Ansprechpartner, NoneType], required=False, alias='unterzeichnerAngebotsgeber', alias_priority=1), 'unterzeichner_angebotsnehmer': FieldInfo(annotation=Union[Ansprechpartner, NoneType], required=False, alias='unterzeichnerAngebotsnehmer', alias_priority=1), 'varianten': FieldInfo(annotation=Union[list[Angebotsvariante], NoneType], required=False, alias='varianten', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

sparte: Sparte | None

Sparte, für die das Angebot abgegeben wird (Strom/Gas)

typ: Typ | None

Der Typ des Geschäftsobjektes

unterzeichner_angebotsgeber: Ansprechpartner | None

Person, die als Angebotsgeber das Angebots ausgestellt hat

unterzeichner_angebotsnehmer: Ansprechpartner | None

Person, die als Angebotsnehmer das Angebot angenommen hat

varianten: list[Angebotsvariante] | None

Eine oder mehrere Varianten des Angebots mit den Angebotsteilen; Ein Angebot besteht mindestens aus einer Variante.

bo4e.bo.ansprechpartner module

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

class bo4e.bo.ansprechpartner.Ansprechpartner(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.ANSPRECHPARTNER, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, individuelleAnrede: str | None = None, anrede: Anrede | None = None, titel: Titel | None = None, vorname: str | None = None, nachname: str | None = None, eMailAdresse: str | None = None, geschaeftspartner: Geschaeftspartner | None = None, adresse: Adresse | None = None, rufnummer: Rufnummer | None = None, kommentar: str | None = None, zustaendigkeit: Zustaendigkeit | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Object containing information about a Ansprechpartner

adresse: Adresse | None

Adresse des Ansprechpartners, falls diese von der Adresse des Geschäftspartners abweicht

anrede: Anrede | None

Mögliche Anrede des Ansprechpartners

e_mail_adresse: str | None

E-Mail Adresse

geschaeftspartner: Geschaeftspartner | None

Der Geschäftspartner, für den dieser Ansprechpartner modelliert wird

individuelle_anrede: str | None

Im Falle einer nicht standardisierten Anrede kann hier eine frei definierbare Anrede vorgegeben werden. Beispiel: “Sehr geehrte Frau Müller, sehr geehrter Herr Dr. Müller”

kommentar: str | None

Weitere Informationen zum Ansprechpartner

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]] = {'adresse': FieldInfo(annotation=Union[Adresse, NoneType], required=False, alias='adresse', alias_priority=1), 'anrede': FieldInfo(annotation=Union[Anrede, NoneType], required=False, alias='anrede', alias_priority=1), 'e_mail_adresse': FieldInfo(annotation=Union[str, NoneType], required=False, alias='eMailAdresse', alias_priority=1), 'geschaeftspartner': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='geschaeftspartner', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'individuelle_anrede': FieldInfo(annotation=Union[str, NoneType], required=False, alias='individuelleAnrede', alias_priority=1), 'kommentar': FieldInfo(annotation=Union[str, NoneType], required=False, alias='kommentar', alias_priority=1), 'nachname': FieldInfo(annotation=Union[str, NoneType], required=False, alias='nachname', alias_priority=1), 'rufnummer': FieldInfo(annotation=Union[Rufnummer, NoneType], required=False, alias='rufnummer', alias_priority=1), 'titel': FieldInfo(annotation=Union[Titel, NoneType], required=False, alias='titel', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.ANSPRECHPARTNER: 'ANSPRECHPARTNER'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'vorname': FieldInfo(annotation=Union[str, NoneType], required=False, alias='vorname', alias_priority=1), 'zusatz_attribute': FieldInfo(annotation=Union[list[ZusatzAttribut], NoneType], required=False, alias='zusatzAttribute', alias_priority=1), 'zustaendigkeit': FieldInfo(annotation=Union[Zustaendigkeit, NoneType], required=False, alias='zustaendigkeit', 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.

nachname: str | None

Nachname (Familienname) des Ansprechpartners

rufnummer: Rufnummer | None

Liste der Telefonnummern, unter denen der Ansprechpartner erreichbar ist

titel: Titel | None

Möglicher Titel des Ansprechpartners

typ: Typ | None

Der Typ des Geschäftsobjektes

vorname: str | None

Vorname des Ansprechpartners

zustaendigkeit: Zustaendigkeit | None

Liste der Abteilungen und Zuständigkeiten des Ansprechpartners

bo4e.bo.ausschreibung module

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

class bo4e.bo.ausschreibung.Ausschreibung(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.AUSSCHREIBUNG, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, ausschreibungsnummer: str | None = None, ausschreibungstyp: Ausschreibungstyp | None = None, ausschreibungsstatus: Ausschreibungsstatus | None = None, istKostenpflichtig: bool | None = None, veroeffentlichungszeitpunkt: datetime | None = None, ausschreibender: Geschaeftspartner | None = None, abgabefrist: Zeitraum | None = None, bindefrist: Zeitraum | None = None, lose: list[Ausschreibungslos] | None = None, ausschreibungportal: Ausschreibungsportal | None = None, webseite: str | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Das BO Ausschreibung dient zur detaillierten Darstellung von ausgeschriebenen Energiemengen in der Energiewirtschaft

abgabefrist: Zeitraum | None

Diese Komponente wird zur Abbildung von Zeiträumen in Form von Dauern oder der Angabe von Start und Ende verwendet. Es muss daher entweder eine Dauer oder ein Zeitraum in Form von Start und Ende angegeben sein

ausschreibender: Geschaeftspartner | None

Mit diesem Objekt können Geschäftspartner übertragen werden. Sowohl Unternehmen, als auch Privatpersonen können Geschäftspartner sein

ausschreibungportal: Ausschreibungsportal | None

Aufzählung der unterstützten Ausschreibungsportale

ausschreibungsnummer: str | None

Vom Herausgeber der Ausschreibung vergebene eindeutige Nummer

ausschreibungsstatus: Ausschreibungsstatus | None

Bezeichnungen für die Ausschreibungsphasen

ausschreibungstyp: Ausschreibungstyp | None

Aufzählung für die Typisierung von Ausschreibungen

bindefrist: Zeitraum | None

Diese Komponente wird zur Abbildung von Zeiträumen in Form von Dauern oder der Angabe von Start und Ende verwendet. Es muss daher entweder eine Dauer oder ein Zeitraum in Form von Start und Ende angegeben sein

ist_kostenpflichtig: bool | None

Kennzeichen, ob die Ausschreibung kostenpflichtig ist

lose: list[Ausschreibungslos] | None

Die einzelnen Lose, aus denen sich die Ausschreibung zusammensetzt

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]] = {'abgabefrist': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='abgabefrist', alias_priority=1), 'ausschreibender': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='ausschreibender', alias_priority=1), 'ausschreibungportal': FieldInfo(annotation=Union[Ausschreibungsportal, NoneType], required=False, alias='ausschreibungportal', alias_priority=1), 'ausschreibungsnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='ausschreibungsnummer', alias_priority=1), 'ausschreibungsstatus': FieldInfo(annotation=Union[Ausschreibungsstatus, NoneType], required=False, alias='ausschreibungsstatus', alias_priority=1), 'ausschreibungstyp': FieldInfo(annotation=Union[Ausschreibungstyp, NoneType], required=False, alias='ausschreibungstyp', alias_priority=1), 'bindefrist': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='bindefrist', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'ist_kostenpflichtig': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istKostenpflichtig', alias_priority=1), 'lose': FieldInfo(annotation=Union[list[Ausschreibungslos], NoneType], required=False, alias='lose', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.AUSSCHREIBUNG: 'AUSSCHREIBUNG'>, alias='_typ', alias_priority=2), 'veroeffentlichungszeitpunkt': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='veroeffentlichungszeitpunkt', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'webseite': FieldInfo(annotation=Union[str, NoneType], required=False, alias='webseite', alias_priority=1), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

veroeffentlichungszeitpunkt: datetime | None

Gibt den Veröffentlichungszeitpunkt der Ausschreibung an

webseite: str | None

Internetseite, auf der die Ausschreibung veröffentlicht wurde (falls vorhanden)

bo4e.bo.buendelvertrag module

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

class bo4e.bo.buendelvertrag.Buendelvertrag(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.BUENDELVERTRAG, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, vertragsnummer: str | None = None, vertragsart: Vertragsart | None = None, vertragsstatus: Vertragsstatus | None = None, sparte: Sparte | None = None, vertragsbeginn: datetime | None = None, vertragsende: datetime | None = None, vertragspartner1: Geschaeftspartner | None = None, vertragspartner2: Geschaeftspartner | None = None, einzelvertraege: list[Vertrag] | None = None, vertragskonditionen: list[Vertragskonditionen] | None = None, unterzeichnervp1: list[Unterschrift] | None = None, unterzeichnervp2: list[Unterschrift] | None = None, beschreibung: str | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Abbildung eines Bündelvertrags. Es handelt sich hierbei um eine Liste von Einzelverträgen, die in einem Vertragsobjekt gebündelt sind.

beschreibung: str | None

Beschreibung zum Vertrag

einzelvertraege: list[Vertrag] | None

Die Liste mit den Einzelverträgen zu den Abnahmestellen

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), 'einzelvertraege': FieldInfo(annotation=Union[list[Vertrag], NoneType], required=False, alias='einzelvertraege', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.BUENDELVERTRAG: 'BUENDELVERTRAG'>, alias='_typ', alias_priority=2), 'unterzeichnervp1': FieldInfo(annotation=Union[list[Unterschrift], NoneType], required=False, alias='unterzeichnervp1', alias_priority=1), 'unterzeichnervp2': FieldInfo(annotation=Union[list[Unterschrift], NoneType], required=False, alias='unterzeichnervp2', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'vertragsart': FieldInfo(annotation=Union[Vertragsart, NoneType], required=False, alias='vertragsart', alias_priority=1), 'vertragsbeginn': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='vertragsbeginn', alias_priority=1), 'vertragsende': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='vertragsende', alias_priority=1), 'vertragskonditionen': FieldInfo(annotation=Union[list[Vertragskonditionen], NoneType], required=False, alias='vertragskonditionen', alias_priority=1), 'vertragsnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='vertragsnummer', alias_priority=1), 'vertragspartner1': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='vertragspartner1', alias_priority=1), 'vertragspartner2': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='vertragspartner2', alias_priority=1), 'vertragsstatus': FieldInfo(annotation=Union[Vertragsstatus, NoneType], required=False, alias='vertragsstatus', alias_priority=1), '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.

sparte: Sparte | None

Unterscheidungsmöglichkeiten für die Sparte

typ: Typ | None

Der Typ des Geschäftsobjektes

unterzeichnervp1: list[Unterschrift] | None

Unterzeichner des Vertragspartners1

unterzeichnervp2: list[Unterschrift] | None

Unterzeichner des Vertragspartners2

vertragsart: Vertragsart | None

Hier ist festgelegt, um welche Art von Vertrag es sich handelt. Z.B. Netznutzungvertrag

vertragsbeginn: datetime | None

Gibt an, wann der Vertrag beginnt (inklusiv)

vertragsende: datetime | None

Gibt an, wann der Vertrag (voraussichtlich) endet oder beendet wurde (exklusiv)

vertragskonditionen: list[Vertragskonditionen] | None

Festlegungen zu Laufzeiten und Kündigungsfristen

vertragsnummer: str | None

Eine im Verwendungskontext eindeutige Nummer für den Vertrag

vertragspartner1: Geschaeftspartner | None

Der “erstgenannte” Vertragspartner. In der Regel der Aussteller des Vertrags. Beispiel: “Vertrag zwischen Vertagspartner 1 …”

vertragspartner2: Geschaeftspartner | None

Der “zweitgenannte” Vertragspartner. In der Regel der Empfänger des Vertrags. Beispiel “Vertrag zwischen Vertagspartner 1 und Vertragspartner 2”

vertragsstatus: Vertragsstatus | None

Gibt den Status des Vertrages an

bo4e.bo.energiemenge module

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

class bo4e.bo.energiemenge.Energiemenge(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.ENERGIEMENGE, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, lokationsId: str | None = None, lokationstyp: Lokationstyp | None = None, energieverbrauch: list[Verbrauch] | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Abbildung von Mengen, die Lokationen zugeordnet sind

energieverbrauch: list[Verbrauch] | None

Gibt den Verbrauch in einer Zeiteinheit an

lokations_id: str | None

Eindeutige Nummer der Marktlokation bzw. der Messlokation, zu der die Energiemenge gehört

lokationstyp: Lokationstyp | None

Gibt an, ob es sich um eine Markt- oder Messlokation 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]] = {'energieverbrauch': FieldInfo(annotation=Union[list[Verbrauch], NoneType], required=False, alias='energieverbrauch', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'lokations_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='lokationsId', alias_priority=1), 'lokationstyp': FieldInfo(annotation=Union[Lokationstyp, NoneType], required=False, alias='lokationstyp', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.ENERGIEMENGE: 'ENERGIEMENGE'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.fremdkosten module

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

class bo4e.bo.fremdkosten.Fremdkosten(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.FREMDKOSTEN, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, gueltigkeit: Zeitraum | None = None, summeKosten: Betrag | None = None, kostenbloecke: list[Fremdkostenblock] | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Mit diesem BO werden die Fremdkosten, beispielsweise für eine Angebotserstellung oder eine Rechnungsprüfung, übertragen. Die Fremdkosten enthalten dabei alle Kostenblöcke, die von anderen Marktteilnehmern oder Instanzen erhoben werden.

gueltigkeit: Zeitraum | None

Für diesen Zeitraum wurden die Kosten ermittelt

kostenbloecke: list[Fremdkostenblock] | None

Netzkosten, Umlagen, Steuern etc

Type:

In Kostenblöcken werden Kostenpositionen zusammengefasst. Beispiele

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]] = {'gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeit', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'kostenbloecke': FieldInfo(annotation=Union[list[Fremdkostenblock], NoneType], required=False, alias='kostenbloecke', alias_priority=1), 'summe_kosten': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='summeKosten', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.FREMDKOSTEN: 'FREMDKOSTEN'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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_kosten: Betrag | None

Die Gesamtsumme über alle Kostenblöcke und -positionen

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.geraet module

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

class bo4e.bo.geraet.Geraet(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.GERAET, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, geraetenummer: str | None = None, bezeichnung: str | None = None, geraeteklasse: Geraeteklasse | None = None, geraetetyp: Geraetetyp | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Mit diesem BO werden alle Geräte modelliert, die keine Zähler sind.

bezeichnung: str | None

Bezeichnung des Geräts

geraeteklasse: Geraeteklasse | None

Die übergreifende Klasse eines Geräts, beispielsweise Wandler

geraetenummer: str | None

Die auf dem Gerät aufgedruckte Nummer, die vom MSB vergeben wird.

geraetetyp: Geraetetyp | None

Der speziellere Typ eines Gerätes, beispielsweise Stromwandler

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), 'geraeteklasse': FieldInfo(annotation=Union[Geraeteklasse, NoneType], required=False, alias='geraeteklasse', alias_priority=1), 'geraetenummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='geraetenummer', alias_priority=1), 'geraetetyp': FieldInfo(annotation=Union[Geraetetyp, NoneType], required=False, alias='geraetetyp', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.GERAET: 'GERAET'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.geschaeftsobjekt module

class bo4e.bo.geschaeftsobjekt.Geschaeftsobjekt(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.GESCHAEFTSOBJEKT, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, **extra_data: Any)[source]

Bases: BaseModel

Das BO Geschäftsobjekt ist der Master für alle Geschäftsobjekte. Alle Attribute, die hier in diesem BO enthalten sind, werden an alle BOs vererbt.

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), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.GESCHAEFTSOBJEKT: 'GESCHAEFTSOBJEKT'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

version: str | None
zusatz_attribute: list[ZusatzAttribut] | None

bo4e.bo.geschaeftspartner module

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

class bo4e.bo.geschaeftspartner.Geschaeftspartner(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.GESCHAEFTSPARTNER, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, name1: str | None = None, istGewerbe: bool | None = None, geschaeftspartnerrolle: list[Geschaeftspartnerrolle] | None = None, anrede: Anrede | None = None, name2: str | None = None, name3: str | None = None, hrnummer: str | None = None, amtsgericht: str | None = None, kontaktweg: list[Kontaktart] | None = None, umsatzsteuerId: str | None = None, glaeubigerId: str | None = None, eMailAdresse: str | None = None, website: str | None = None, partneradresse: Adresse | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Mit diesem Objekt können Geschäftspartner übertragen werden. Sowohl Unternehmen, als auch Privatpersonen können Geschäftspartner sein. Hinweis: Marktteilnehmer haben ein eigenes BO, welches sich von diesem BO ableitet. Hier sollte daher keine Zuordnung zu Marktrollen erfolgen.

amtsgericht: str | None

Amtsgericht bzw Handelsregistergericht, das die Handelsregisternummer herausgegeben hat

anrede: Anrede | None

Die Anrede für den GePa, Z.B. “Herr”

e_mail_adresse: str | None

E-Mail-Adresse des Ansprechpartners. Z.B. “info@hochfrequenz.de

geschaeftspartnerrolle: list[Geschaeftspartnerrolle] | None

Rollen, die die Geschäftspartner inne haben (z.B. Interessent, Kunde)

glaeubiger_id: str | None

Die Gläubiger-ID welche im Zahlungsverkehr verwendet wird; Z.B. “DE 47116789”

hrnummer: str | None

Handelsregisternummer des Geschäftspartners

ist_gewerbe: bool | None

Kennzeichnung ob es sich um einen Gewerbe/Unternehmen (istGewerbe = true) oder eine Privatperson handelt. (istGewerbe = false)

kontaktweg: list[Kontaktart] | None

Bevorzugte Kontaktwege des Geschäftspartners

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]] = {'amtsgericht': FieldInfo(annotation=Union[str, NoneType], required=False, alias='amtsgericht', alias_priority=1), 'anrede': FieldInfo(annotation=Union[Anrede, NoneType], required=False, alias='anrede', alias_priority=1), 'e_mail_adresse': FieldInfo(annotation=Union[str, NoneType], required=False, alias='eMailAdresse', alias_priority=1), 'geschaeftspartnerrolle': FieldInfo(annotation=Union[list[Geschaeftspartnerrolle], NoneType], required=False, alias='geschaeftspartnerrolle', alias_priority=1), 'glaeubiger_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='glaeubigerId', alias_priority=1), 'hrnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='hrnummer', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'ist_gewerbe': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istGewerbe', alias_priority=1), 'kontaktweg': FieldInfo(annotation=Union[list[Kontaktart], NoneType], required=False, alias='kontaktweg', alias_priority=1), 'name1': FieldInfo(annotation=Union[str, NoneType], required=False, alias='name1', alias_priority=1), 'name2': FieldInfo(annotation=Union[str, NoneType], required=False, alias='name2', alias_priority=1), 'name3': FieldInfo(annotation=Union[str, NoneType], required=False, alias='name3', alias_priority=1), 'partneradresse': FieldInfo(annotation=Union[Adresse, NoneType], required=False, alias='partneradresse', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.GESCHAEFTSPARTNER: 'GESCHAEFTSPARTNER'>, alias='_typ', alias_priority=2), 'umsatzsteuer_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='umsatzsteuerId', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1), '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.

name1: str | None

Erster Teil des Namens. Hier kann der Firmenname oder bei Privatpersonen beispielsweise der Nachname dagestellt werden. Beispiele: Yellow Strom GmbH oder Hagen

name2: str | None

Zweiter Teil des Namens. Hier kann der eine Erweiterung zum Firmennamen oder bei Privatpersonen beispielsweise der Vorname dagestellt werden. Beispiele: Bereich Süd oder Nina

name3: str | None

Dritter Teil des Namens. Hier können weitere Ergänzungen zum Firmennamen oder bei Privatpersonen Zusätze zum Namen dagestellt werden. Beispiele: und Afrika oder Sängerin

partneradresse: Adresse | None

Adressen der Geschäftspartner, an denen sich der Hauptsitz befindet

typ: Typ | None

Der Typ des Geschäftsobjektes

umsatzsteuer_id: str | None

“DE 813281825”

Type:

Die Steuer-ID des Geschäftspartners; Beispiel

website: str | None

Internetseite des Marktpartners

bo4e.bo.kosten module

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

class bo4e.bo.kosten.Kosten(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.KOSTEN, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, kostenklasse: Kostenklasse | None = None, gueltigkeit: Zeitraum | None = None, kostenbloecke: list[Kostenblock] | None = None, summeKosten: list[Betrag] | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Dieses BO wird zur Übertagung von hierarchischen Kostenstrukturen verwendet. Die Kosten werden dabei in Kostenblöcke und diese wiederum in Kostenpositionen strukturiert.

gueltigkeit: Zeitraum | None

Für diesen Zeitraum wurden die Kosten ermittelt

kostenbloecke: list[Kostenblock] | None

Netzkosten, Umlagen, Steuern etc

Type:

In Kostenblöcken werden Kostenpositionen zusammengefasst. Beispiele

kostenklasse: Kostenklasse | None

Klasse der Kosten, beispielsweise Fremdkosten

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]] = {'gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeit', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'kostenbloecke': FieldInfo(annotation=Union[list[Kostenblock], NoneType], required=False, alias='kostenbloecke', alias_priority=1), 'kostenklasse': FieldInfo(annotation=Union[Kostenklasse, NoneType], required=False, alias='kostenklasse', alias_priority=1), 'summe_kosten': FieldInfo(annotation=Union[list[Betrag], NoneType], required=False, alias='summeKosten', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.KOSTEN: 'KOSTEN'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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_kosten: list[Betrag] | None

Die Gesamtsumme über alle Kostenblöcke und -positionen

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.lastgang module

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

class bo4e.bo.lastgang.Lastgang(*, version: str | None = None, _typ: Typ | None = Typ.LASTGANG, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, sparte: Sparte | None = None, messgroesse: Mengeneinheit | None = None, marktlokation: Marktlokation | None = None, messlokation: Messlokation | None = None, werte: list[Zeitreihenwert] | None = None, obisKennzahl: str | None = None, zeitIntervallLaenge: Menge | None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Modell zur Abbildung eines Lastganges; In diesem Modell werden die Messwerte mit einem vollständigen Zeitintervall (zeit_intervall_laenge) angegeben und es bietet daher eine hohe Flexibilität in der Übertragung jeglicher zeitlich veränderlicher Messgrössen.

marktlokation: Marktlokation | None

Marktlokation, zu der der Lastgang gehört

messgroesse: Mengeneinheit | None

Definition der gemessenen Größe anhand ihrer Einheit

messlokation: Messlokation | None

Marktlokation, zu der der Lastgang 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]] = {'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'marktlokation': FieldInfo(annotation=Union[Marktlokation, NoneType], required=False, alias='marktlokation', alias_priority=1), 'messgroesse': FieldInfo(annotation=Union[Mengeneinheit, NoneType], required=False, alias='messgroesse', alias_priority=1), 'messlokation': FieldInfo(annotation=Union[Messlokation, NoneType], required=False, alias='messlokation', alias_priority=1), 'obis_kennzahl': FieldInfo(annotation=Union[Annotated[str, StringConstraints], NoneType], required=False, alias='obisKennzahl', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.LASTGANG: 'LASTGANG'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, alias='version', alias_priority=1), 'werte': FieldInfo(annotation=Union[list[Zeitreihenwert], NoneType], required=False, alias='werte', alias_priority=1), 'zeit_intervall_laenge': FieldInfo(annotation=Union[Menge, NoneType], required=True, alias='zeitIntervallLaenge', alias_priority=1), '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

1.8.1’

Type:

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

sparte: Sparte | None

Angabe, ob es sich um einen Gas- oder Stromlastgang handelt

typ: Typ | None

Der Typ des Geschäftsobjektes

version: str | None

Versionsnummer des Lastgangs

werte: list[Zeitreihenwert] | None

Die im Lastgang enthaltenen Messwerte

zeit_intervall_laenge: Menge | None

bo4e.bo.marktlokation module

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

class bo4e.bo.marktlokation.Marktlokation(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.MARKTLOKATION, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, marktlokationsId: str | None = None, sparte: Sparte | None = None, energierichtung: Energierichtung | None = None, bilanzierungsmethode: Bilanzierungsmethode | None = None, netzebene: Netzebene | None = None, verbrauchsart: Verbrauchsart | None = None, istUnterbrechbar: bool | None = None, netzbetreibercodenr: str | None = None, gebietstyp: Gebiettyp | None = None, netzgebietsnr: str | None = None, bilanzierungsgebiet: str | None = None, grundversorgercodenr: str | None = None, gasqualitaet: Gasqualitaet | None = None, endkunde: Geschaeftspartner | None = None, zugehoerigeMesslokation: Messlokationszuordnung | None = None, lokationsadresse: Adresse | None = None, geoadresse: Geokoordinaten | None = None, katasterinformation: Katasteradresse | None = None, kundengruppen: list[Kundentyp] | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Object containing information about a Marktlokation

bilanzierungsgebiet: str | None

Bilanzierungsgebiet, dem das Netzgebiet zugeordnet ist - im Falle eines Strom Netzes

bilanzierungsmethode: Bilanzierungsmethode | None

Die Bilanzierungsmethode, RLM oder SLP

endkunde: Geschaeftspartner | None

Geschäftspartner, dem diese Marktlokation gehört

energierichtung: Energierichtung | None

Kennzeichnung, ob Energie eingespeist oder entnommen (ausgespeist) wird

gasqualitaet: Gasqualitaet | None

Die Gasqualität in diesem Netzgebiet. H-Gas oder L-Gas. Im Falle eines Gas-Netzes

gebietstyp: Gebiettyp | None

Typ des Netzgebietes, z.B. Verteilnetz

geoadresse: Geokoordinaten | None

Alternativ zu einer postalischen Adresse kann hier ein Ort mittels Geokoordinaten angegeben werden (z.B. zur Identifikation von Sendemasten).

grundversorgercodenr: str | None

Codenummer des Grundversorgers, der für diese Marktlokation zuständig ist

ist_unterbrechbar: bool | None

Gibt an, ob es sich um eine unterbrechbare Belieferung handelt

katasterinformation: Katasteradresse | None

Alternativ zu einer postalischen Adresse und Geokoordinaten kann hier eine Ortsangabe mittels Gemarkung und Flurstück erfolgen.

kundengruppen: list[Kundentyp] | None
lokationsadresse: Adresse | None

Die Adresse, an der die Energie-Lieferung oder -Einspeisung erfolgt

marktlokations_id: str | None

Identifikationsnummer einer Marktlokation, an der Energie entweder verbraucht, oder erzeugt wird.

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': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bilanzierungsgebiet', alias_priority=1), 'bilanzierungsmethode': FieldInfo(annotation=Union[Bilanzierungsmethode, NoneType], required=False, alias='bilanzierungsmethode', alias_priority=1), 'endkunde': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='endkunde', alias_priority=1), 'energierichtung': FieldInfo(annotation=Union[Energierichtung, NoneType], required=False, alias='energierichtung', alias_priority=1), 'gasqualitaet': FieldInfo(annotation=Union[Gasqualitaet, NoneType], required=False, alias='gasqualitaet', alias_priority=1), 'gebietstyp': FieldInfo(annotation=Union[Gebiettyp, NoneType], required=False, alias='gebietstyp', alias_priority=1), 'geoadresse': FieldInfo(annotation=Union[Geokoordinaten, NoneType], required=False, alias='geoadresse', alias_priority=1), 'grundversorgercodenr': FieldInfo(annotation=Union[str, NoneType], required=False, alias='grundversorgercodenr', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'ist_unterbrechbar': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istUnterbrechbar', alias_priority=1), 'katasterinformation': FieldInfo(annotation=Union[Katasteradresse, NoneType], required=False, alias='katasterinformation', alias_priority=1), 'kundengruppen': FieldInfo(annotation=Union[list[Kundentyp], NoneType], required=False, alias='kundengruppen', alias_priority=1), 'lokationsadresse': FieldInfo(annotation=Union[Adresse, NoneType], required=False, alias='lokationsadresse', alias_priority=1), 'marktlokations_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='marktlokationsId', alias_priority=1), 'netzbetreibercodenr': FieldInfo(annotation=Union[str, NoneType], required=False, alias='netzbetreibercodenr', alias_priority=1), 'netzebene': FieldInfo(annotation=Union[Netzebene, NoneType], required=False, alias='netzebene', alias_priority=1), 'netzgebietsnr': FieldInfo(annotation=Union[str, NoneType], required=False, alias='netzgebietsnr', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.MARKTLOKATION: 'MARKTLOKATION'>, alias='_typ', alias_priority=2), 'verbrauchsart': FieldInfo(annotation=Union[Verbrauchsart, NoneType], required=False, alias='verbrauchsart', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'zugehoerige_messlokation': FieldInfo(annotation=Union[Messlokationszuordnung, NoneType], required=False, alias='zugehoerigeMesslokation', alias_priority=1), '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.

netzbetreibercodenr: str | None

Codenummer des Netzbetreibers, an dessen Netz diese Marktlokation angeschlossen ist.

netzebene: Netzebene | None

Netzebene, in der der Bezug der Energie erfolgt. Bei Strom Spannungsebene der Lieferung, bei Gas Druckstufe. Beispiel Strom: Niederspannung Beispiel Gas: Niederdruck.

netzgebietsnr: str | None

Die ID des Gebietes in der ene’t-Datenbank

sparte: Sparte | None

Sparte der Marktlokation, z.B. Gas oder Strom

typ: Typ | None

Der Typ des Geschäftsobjektes

verbrauchsart: Verbrauchsart | None

Verbrauchsart der Marktlokation.

zugehoerige_messlokation: Messlokationszuordnung | None

Aufzählung der Messlokationen, die zu dieser Marktlokation gehören. Es können 3 verschiedene Konstrukte auftreten:

Beziehung 1 : 0 : Hier handelt es sich um Pauschalanlagen ohne Messung. D.h. die Verbrauchsdaten sind direkt über die Marktlokation abgreifbar. Beziehung 1 : 1 : Das ist die Standard-Beziehung für die meisten Fälle. In diesem Fall gibt es zu einer Marktlokation genau eine Messlokation. Beziehung 1 : N : Hier liegt beispielsweise eine Untermessung vor. Der Verbrauch einer Marklokation berechnet sich hier aus mehreren Messungen.

Es gibt praktisch auch noch die Beziehung N : 1, beispielsweise bei einer Zweirichtungsmessung bei der durch eine Messeinrichtung die Messung sowohl für die Einspreiseseite als auch für die Aussspeiseseite erfolgt. Da Abrechnung und Bilanzierung jedoch für beide Marktlokationen getrennt erfolgt, werden nie beide Marktlokationen gemeinsam betrachtet. Daher lässt sich dieses Konstrukt auf zwei 1:1-Beziehung zurückführen, wobei die Messlokation in beiden Fällen die gleiche ist.

In den Zuordnungen sind ist die arithmetische Operation mit der der Verbrauch einer Messlokation zum Verbrauch einer Marktlokation beitrögt mit aufgeführt. Der Standard ist hier die Addition.

bo4e.bo.marktteilnehmer module

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

class bo4e.bo.marktteilnehmer.Marktteilnehmer(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.MARKTTEILNEHMER, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, name1: str | None = None, istGewerbe: bool | None = None, geschaeftspartnerrolle: list[Geschaeftspartnerrolle] | None = None, anrede: Anrede | None = None, name2: str | None = None, name3: str | None = None, hrnummer: str | None = None, amtsgericht: str | None = None, kontaktweg: list[Kontaktart] | None = None, umsatzsteuerId: str | None = None, glaeubigerId: str | None = None, eMailAdresse: str | None = None, website: str | None = None, partneradresse: Adresse | None = None, marktrolle: Marktrolle | None = None, rollencodenummer: str | None = None, rollencodetyp: Rollencodetyp | None = None, sparte: Sparte | None = None, makoadresse: str | None = None, **extra_data: Any)[source]

Bases: Geschaeftspartner

Objekt zur Aufnahme der Information zu einem Marktteilnehmer

makoadresse: str | None

1-Kommunikationsadresse des Marktteilnehmers; Diese wird in der Marktkommunikation verwendet.

Type:

Die 1

marktrolle: Marktrolle | None

Gibt im Klartext die Bezeichnung der Marktrolle 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]] = {'amtsgericht': FieldInfo(annotation=Union[str, NoneType], required=False, alias='amtsgericht', alias_priority=1), 'anrede': FieldInfo(annotation=Union[Anrede, NoneType], required=False, alias='anrede', alias_priority=1), 'e_mail_adresse': FieldInfo(annotation=Union[str, NoneType], required=False, alias='eMailAdresse', alias_priority=1), 'geschaeftspartnerrolle': FieldInfo(annotation=Union[list[Geschaeftspartnerrolle], NoneType], required=False, alias='geschaeftspartnerrolle', alias_priority=1), 'glaeubiger_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='glaeubigerId', alias_priority=1), 'hrnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='hrnummer', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'ist_gewerbe': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istGewerbe', alias_priority=1), 'kontaktweg': FieldInfo(annotation=Union[list[Kontaktart], NoneType], required=False, alias='kontaktweg', alias_priority=1), 'makoadresse': FieldInfo(annotation=Union[str, NoneType], required=False, alias='makoadresse', alias_priority=1), 'marktrolle': FieldInfo(annotation=Union[Marktrolle, NoneType], required=False, alias='marktrolle', alias_priority=1), 'name1': FieldInfo(annotation=Union[str, NoneType], required=False, alias='name1', alias_priority=1), 'name2': FieldInfo(annotation=Union[str, NoneType], required=False, alias='name2', alias_priority=1), 'name3': FieldInfo(annotation=Union[str, NoneType], required=False, alias='name3', alias_priority=1), 'partneradresse': FieldInfo(annotation=Union[Adresse, NoneType], required=False, alias='partneradresse', alias_priority=1), 'rollencodenummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='rollencodenummer', alias_priority=1), 'rollencodetyp': FieldInfo(annotation=Union[Rollencodetyp, NoneType], required=False, alias='rollencodetyp', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.MARKTTEILNEHMER: 'MARKTTEILNEHMER'>, alias='_typ', alias_priority=2), 'umsatzsteuer_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='umsatzsteuerId', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1), '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.

rollencodenummer: str | None

Gibt die Codenummer der Marktrolle an

rollencodetyp: Rollencodetyp | None

Gibt den Typ des Codes an

sparte: Sparte | None

Sparte des Marktteilnehmers, z.B. Gas oder Strom

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.messlokation module

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

class bo4e.bo.messlokation.Messlokation(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.MESSLOKATION, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, messlokationsId: str | None = None, sparte: Sparte | None = None, netzebeneMessung: Netzebene | None = None, messgebietnr: str | None = None, geraete: list[Geraet] | None = None, messdienstleistung: list[Dienstleistung] | None = None, messlokationszaehler: list[Zaehler] | None = None, grundzustaendigerMsbCodenr: str | None = None, grundzustaendigerMsbimCodenr: str | None = None, messadresse: Adresse | None = None, geoadresse: Geokoordinaten | None = None, katasterinformation: Katasteradresse | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Object containing information about a Messlokation

geoadresse: Geokoordinaten | None

Alternativ zu einer postalischen Adresse kann hier ein Ort mittels Geokoordinaten angegeben werden (z.B. zur Identifikation von Sendemasten).

geraete: list[Geraet] | None

Liste der Geräte, die zu dieser Messstelle gehört

grundzustaendiger_msb_codenr: str | None

Codenummer des grundzuständigen Messstellenbetreibers, der für diese Messlokation zuständig ist. (Dieser ist immer dann Messstellenbetreiber, wenn kein anderer MSB die Einrichtungen an der Messlokation betreibt.)

grundzustaendiger_msbim_codenr: str | None

Codenummer des grundzuständigen Messstellenbetreibers für intelligente Messsysteme, der für diese Messlokation zuständig ist. (Dieser ist immer dann Messstellenbetreiber, wenn kein anderer MSB die Einrichtungen an der Messlokation betreibt.)

katasterinformation: Katasteradresse | None

Alternativ zu einer postalischen Adresse und Geokoordinaten kann hier eine Ortsangabe mittels Gemarkung und Flurstück erfolgen.

messadresse: Adresse | None

Die Adresse, an der die Messeinrichtungen zu finden sind. (Nur angeben, wenn diese von der Adresse der Marktlokation abweicht.)

messdienstleistung: list[Dienstleistung] | None

Liste der Messdienstleistungen, die zu dieser Messstelle gehört

messgebietnr: str | None

Die Nummer des Messgebietes in der ene’t-Datenbank

messlokations_id: str | None

Die Messlokations-Identifikation; Das ist die frühere Zählpunktbezeichnung

messlokationszaehler: list[Zaehler] | None

Zähler, die zu dieser Messlokation gehören

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]] = {'geoadresse': FieldInfo(annotation=Union[Geokoordinaten, NoneType], required=False, alias='geoadresse', alias_priority=1), 'geraete': FieldInfo(annotation=Union[list[Geraet], NoneType], required=False, alias='geraete', alias_priority=1), 'grundzustaendiger_msb_codenr': FieldInfo(annotation=Union[str, NoneType], required=False, alias='grundzustaendigerMsbCodenr', alias_priority=1), 'grundzustaendiger_msbim_codenr': FieldInfo(annotation=Union[str, NoneType], required=False, alias='grundzustaendigerMsbimCodenr', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'katasterinformation': FieldInfo(annotation=Union[Katasteradresse, NoneType], required=False, alias='katasterinformation', alias_priority=1), 'messadresse': FieldInfo(annotation=Union[Adresse, NoneType], required=False, alias='messadresse', alias_priority=1), 'messdienstleistung': FieldInfo(annotation=Union[list[Dienstleistung], NoneType], required=False, alias='messdienstleistung', alias_priority=1), 'messgebietnr': FieldInfo(annotation=Union[str, NoneType], required=False, alias='messgebietnr', alias_priority=1), 'messlokations_id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='messlokationsId', alias_priority=1), 'messlokationszaehler': FieldInfo(annotation=Union[list[Zaehler], NoneType], required=False, alias='messlokationszaehler', alias_priority=1), 'netzebene_messung': FieldInfo(annotation=Union[Netzebene, NoneType], required=False, alias='netzebeneMessung', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.MESSLOKATION: 'MESSLOKATION'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

netzebene_messung: Netzebene | None

Spannungsebene der Messung

sparte: Sparte | None

Sparte der Messlokation, z.B. Gas oder Strom

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.preisblatt module

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

class bo4e.bo.preisblatt.Preisblatt(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.PREISBLATT, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, sparte: Sparte | None = None, preisstatus: Preisstatus | None = None, gueltigkeit: Zeitraum | None = None, preispositionen: list[Preisposition] | None = None, herausgeber: Marktteilnehmer | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Das allgemeine Modell zur Abbildung von Preisen; Davon abgeleitet können, über die Zuordnung identifizierender Merkmale, spezielle Preisblatt-Varianten modelliert werden.

Die jeweiligen Sätze von Merkmalen sind in der Grafik ergänzt worden und stellen jeweils eine Ausprägung für die verschiedenen Anwendungsfälle der Preisblätter dar.

bezeichnung: str | None

Eine Bezeichnung für das Preisblatt

gueltigkeit: Zeitraum | None

Der Zeitraum für den der Preis festgelegt ist

herausgeber: Marktteilnehmer | None

Der Netzbetreiber, der die Preise veröffentlicht hat

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), 'gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeit', alias_priority=1), 'herausgeber': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='herausgeber', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'preispositionen': FieldInfo(annotation=Union[list[Preisposition], NoneType], required=False, alias='preispositionen', alias_priority=1), 'preisstatus': FieldInfo(annotation=Union[Preisstatus, NoneType], required=False, alias='preisstatus', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.PREISBLATT: 'PREISBLATT'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

preispositionen: list[Preisposition] | None

Die einzelnen Positionen, die mit dem Preisblatt abgerechnet werden können. Z.B. Arbeitspreis, Grundpreis etc

preisstatus: Preisstatus | None

Merkmal, das anzeigt, ob es sich um vorläufige oder endgültige Preise handelt

sparte: Sparte | None

Preisblatt gilt für angegebene Sparte

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.preisblattdienstleistung module

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

class bo4e.bo.preisblattdienstleistung.PreisblattDienstleistung(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.PREISBLATTDIENSTLEISTUNG, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, sparte: Sparte | None = None, preisstatus: Preisstatus | None = None, gueltigkeit: Zeitraum | None = None, preispositionen: list[Preisposition] | None = None, herausgeber: Marktteilnehmer | None = None, bilanzierungsmethode: Bilanzierungsmethode | None = None, basisdienstleistung: Dienstleistungstyp | None = None, geraetedetails: Geraet | None = None, inklusiveDienstleistungen: list[Dienstleistungstyp] | None = None, **extra_data: Any)[source]

Bases: Preisblatt

Variante des Preisblattmodells zur Abbildung der Preise für wahlfreie Dienstleistungen

basisdienstleistung: Dienstleistungstyp | None

Dienstleistung, für die der Preis abgebildet wird, z.B. Sperrung/Entsperrung

bilanzierungsmethode: Bilanzierungsmethode | None

Die Preise gelten für Marktlokationen der angebebenen Bilanzierungsmethode

geraetedetails: Geraet | None

Hier kann der Preis auf bestimmte Geräte eingegrenzt werden. Z.B. auf die Zählergröße

inklusive_dienstleistungen: list[Dienstleistungstyp] | None

Weitere Dienstleistungen, die im Preis enthalten 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]] = {'basisdienstleistung': FieldInfo(annotation=Union[Dienstleistungstyp, NoneType], required=False, alias='basisdienstleistung', alias_priority=1), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'bilanzierungsmethode': FieldInfo(annotation=Union[Bilanzierungsmethode, NoneType], required=False, alias='bilanzierungsmethode', alias_priority=1), 'geraetedetails': FieldInfo(annotation=Union[Geraet, NoneType], required=False, alias='geraetedetails', alias_priority=1), 'gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeit', alias_priority=1), 'herausgeber': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='herausgeber', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'inklusive_dienstleistungen': FieldInfo(annotation=Union[list[Dienstleistungstyp], NoneType], required=False, alias='inklusiveDienstleistungen', alias_priority=1), 'preispositionen': FieldInfo(annotation=Union[list[Preisposition], NoneType], required=False, alias='preispositionen', alias_priority=1), 'preisstatus': FieldInfo(annotation=Union[Preisstatus, NoneType], required=False, alias='preisstatus', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.PREISBLATTDIENSTLEISTUNG: 'PREISBLATTDIENSTLEISTUNG'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.preisblatthardware module

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

class bo4e.bo.preisblatthardware.PreisblattHardware(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.PREISBLATTHARDWARE, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, sparte: Sparte | None = None, preisstatus: Preisstatus | None = None, gueltigkeit: Zeitraum | None = None, preispositionen: list[Preisposition] | None = None, herausgeber: Marktteilnehmer | None = None, bilanzierungsmethode: Bilanzierungsmethode | None = None, messebene: Netzebene | None = None, basisgeraet: Geraet | None = None, inklusiveDienstleistungen: list[Dienstleistungstyp] | None = None, inklusiveGeraete: list[Geraet] | None = None, **extra_data: Any)[source]

Bases: Preisblatt

Variante des Preisblattmodells zur Abbildung der Preise für zusätzliche Hardware

basisgeraet: Geraet | None

Der Preis betriftt das hier angegebene Gerät, z.B. ein Tarifschaltgerät

bilanzierungsmethode: Bilanzierungsmethode | None

Die Preise gelten für Marktlokationen der angebebenen Bilanzierungsmethode

inklusive_dienstleistungen: list[Dienstleistungstyp] | None

Im Preis sind die hier angegebenen Dienstleistungen enthalten, z.B. Jährliche Ablesung

inklusive_geraete: list[Geraet] | None

Im Preis sind die hier angegebenen Geräte mit enthalten, z.B. ein Wandler

messebene: Netzebene | None

Die Preise gelten für Messlokationen in der angebebenen Netzebene

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]] = {'basisgeraet': FieldInfo(annotation=Union[Geraet, NoneType], required=False, alias='basisgeraet', alias_priority=1), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'bilanzierungsmethode': FieldInfo(annotation=Union[Bilanzierungsmethode, NoneType], required=False, alias='bilanzierungsmethode', alias_priority=1), 'gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeit', alias_priority=1), 'herausgeber': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='herausgeber', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'inklusive_dienstleistungen': FieldInfo(annotation=Union[list[Dienstleistungstyp], NoneType], required=False, alias='inklusiveDienstleistungen', alias_priority=1), 'inklusive_geraete': FieldInfo(annotation=Union[list[Geraet], NoneType], required=False, alias='inklusiveGeraete', alias_priority=1), 'messebene': FieldInfo(annotation=Union[Netzebene, NoneType], required=False, alias='messebene', alias_priority=1), 'preispositionen': FieldInfo(annotation=Union[list[Preisposition], NoneType], required=False, alias='preispositionen', alias_priority=1), 'preisstatus': FieldInfo(annotation=Union[Preisstatus, NoneType], required=False, alias='preisstatus', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.PREISBLATTHARDWARE: 'PREISBLATTHARDWARE'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.preisblattkonzessionsabgabe module

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

class bo4e.bo.preisblattkonzessionsabgabe.PreisblattKonzessionsabgabe(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.PREISBLATTKONZESSIONSABGABE, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, sparte: Sparte | None = None, preisstatus: Preisstatus | None = None, gueltigkeit: Zeitraum | None = None, preispositionen: list[Preisposition] | None = None, herausgeber: Marktteilnehmer | None = None, kundengruppeKA: KundengruppeKA | None = None, **extra_data: Any)[source]

Bases: Preisblatt

Die Variante des Preisblattmodells zur Abbildung von allgemeinen Abgaben

kundengruppe_k_a: KundengruppeKA | None

Kundegruppe anhand derer die Höhe der Konzessionabgabe festgelegt 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]] = {'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeit', alias_priority=1), 'herausgeber': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='herausgeber', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'kundengruppe_k_a': FieldInfo(annotation=Union[KundengruppeKA, NoneType], required=False, alias='kundengruppeKA', alias_priority=1), 'preispositionen': FieldInfo(annotation=Union[list[Preisposition], NoneType], required=False, alias='preispositionen', alias_priority=1), 'preisstatus': FieldInfo(annotation=Union[Preisstatus, NoneType], required=False, alias='preisstatus', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.PREISBLATTKONZESSIONSABGABE: 'PREISBLATTKONZESSIONSABGABE'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.preisblattmessung module

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

class bo4e.bo.preisblattmessung.PreisblattMessung(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.PREISBLATTMESSUNG, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, sparte: Sparte | None = None, preisstatus: Preisstatus | None = None, gueltigkeit: Zeitraum | None = None, preispositionen: list[Preisposition] | None = None, herausgeber: Marktteilnehmer | None = None, bilanzierungsmethode: Bilanzierungsmethode | None = None, messebene: Netzebene | None = None, zaehler: Zaehler | None = None, inklusiveDienstleistungen: list[Dienstleistungstyp] | None = None, inklusiveGeraete: list[Geraet] | None = None, **extra_data: Any)[source]

Bases: Preisblatt

Variante des Preisblattmodells zur Abbildung der Preise des Messstellenbetriebs und damit verbundener Leistungen

bilanzierungsmethode: Bilanzierungsmethode | None

Die Preise gelten für Marktlokationen der angebebenen Bilanzierungsmethode

inklusive_dienstleistungen: list[Dienstleistungstyp] | None

Im Preis sind die hier angegebenen Dienstleistungen enthalten, z.B. Jährliche Ablesung

inklusive_geraete: list[Geraet] | None

Im Preis sind die hier angegebenen Geräte mit enthalten, z.B. ein Wandler

messebene: Netzebene | None

Die Preise gelten für Messlokationen in der angebebenen Netzebene

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), 'bilanzierungsmethode': FieldInfo(annotation=Union[Bilanzierungsmethode, NoneType], required=False, alias='bilanzierungsmethode', alias_priority=1), 'gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeit', alias_priority=1), 'herausgeber': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='herausgeber', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'inklusive_dienstleistungen': FieldInfo(annotation=Union[list[Dienstleistungstyp], NoneType], required=False, alias='inklusiveDienstleistungen', alias_priority=1), 'inklusive_geraete': FieldInfo(annotation=Union[list[Geraet], NoneType], required=False, alias='inklusiveGeraete', alias_priority=1), 'messebene': FieldInfo(annotation=Union[Netzebene, NoneType], required=False, alias='messebene', alias_priority=1), 'preispositionen': FieldInfo(annotation=Union[list[Preisposition], NoneType], required=False, alias='preispositionen', alias_priority=1), 'preisstatus': FieldInfo(annotation=Union[Preisstatus, NoneType], required=False, alias='preisstatus', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.PREISBLATTMESSUNG: 'PREISBLATTMESSUNG'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'zaehler': FieldInfo(annotation=Union[Zaehler, NoneType], required=False, alias='zaehler', alias_priority=1), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

zaehler: Zaehler | None

Der Preis betrifft den hier angegebenen Zähler, z.B. einen Drehstromzähler

bo4e.bo.preisblattnetznutzung module

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

class bo4e.bo.preisblattnetznutzung.PreisblattNetznutzung(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.PREISBLATTNETZNUTZUNG, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, sparte: Sparte | None = None, preisstatus: Preisstatus | None = None, gueltigkeit: Zeitraum | None = None, preispositionen: list[Preisposition] | None = None, herausgeber: Marktteilnehmer | None = None, bilanzierungsmethode: Bilanzierungsmethode | None = None, netzebene: Netzebene | None = None, kundengruppe: Kundengruppe | None = None, **extra_data: Any)[source]

Bases: Preisblatt

Die Variante des Preisblattmodells zur Abbildung der Netznutzungspreise

bilanzierungsmethode: Bilanzierungsmethode | None

Die Preise gelten für Marktlokationen der angebebenen Bilanzierungsmethode

kundengruppe: Kundengruppe | 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]] = {'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'bilanzierungsmethode': FieldInfo(annotation=Union[Bilanzierungsmethode, NoneType], required=False, alias='bilanzierungsmethode', alias_priority=1), 'gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='gueltigkeit', alias_priority=1), 'herausgeber': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='herausgeber', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'kundengruppe': FieldInfo(annotation=Union[Kundengruppe, NoneType], required=False, alias='kundengruppe', alias_priority=1), 'netzebene': FieldInfo(annotation=Union[Netzebene, NoneType], required=False, alias='netzebene', alias_priority=1), 'preispositionen': FieldInfo(annotation=Union[list[Preisposition], NoneType], required=False, alias='preispositionen', alias_priority=1), 'preisstatus': FieldInfo(annotation=Union[Preisstatus, NoneType], required=False, alias='preisstatus', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.PREISBLATTNETZNUTZUNG: 'PREISBLATTNETZNUTZUNG'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

netzebene: Netzebene | None

Die Preise gelten für Marktlokationen in der angebebenen Netzebene

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.rechnung module

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

class bo4e.bo.rechnung.Rechnung(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.RECHNUNG, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, istStorno: bool | None = None, rechnungsnummer: str | None = None, rechnungsdatum: datetime | None = None, faelligkeitsdatum: datetime | None = None, rechnungstyp: Rechnungstyp | None = None, rechnungsperiode: Zeitraum | None = None, rechnungsersteller: Geschaeftspartner | None = None, rechnungsempfaenger: Geschaeftspartner | None = None, gesamtnetto: Betrag | None = None, gesamtsteuer: Betrag | None = None, gesamtbrutto: Betrag | None = None, zuZahlen: Betrag | None = None, rechnungspositionen: list[Rechnungsposition] | None = None, rechnungstitel: str | None = None, rechnungsstatus: Rechnungsstatus | None = None, originalRechnungsnummer: str | None = None, vorausgezahlt: Betrag | None = None, rabattBrutto: Betrag | None = None, steuerbetraege: list[Steuerbetrag] | None = None, sparte: Sparte | None = None, netznutzungrechnungsart: NetznutzungRechnungsart | None = None, netznutzungrechnungstyp: NetznutzungRechnungstyp | None = None, istOriginal: bool | None = None, istSimuliert: bool | None = None, marktlokation: Marktlokation | None = None, messlokation: Messlokation | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Modell für die Abbildung von Rechnungen und Netznutzungsrechnungen im Kontext der Energiewirtschaft;

faelligkeitsdatum: datetime | None

Zu diesem Datum ist die Zahlung fällig

gesamtbrutto: Betrag | None

Die Summe aus Netto- und Steuerbetrag

gesamtnetto: Betrag | None

Die Summe der Nettobeträge der Rechnungsteile

gesamtsteuer: Betrag | None

Die Summe der Steuerbeträge der Rechnungsteile

ist_original: bool | None

Kennzeichen, ob es sich um ein Original (true) oder eine Kopie handelt (false)

ist_simuliert: bool | None

Kennzeichen, ob es sich um eine simulierte Rechnung, z.B. zur Rechnungsprüfung handelt

ist_storno: bool | None

Kennzeichnung, ob es sich um eine Stornorechnung handelt; im Falle “true” findet sich im Attribut “originalrechnungsnummer” die Nummer der Originalrechnung.

marktlokation: Marktlokation | None

Marktlokation, auf die sich die Rechnung bezieht

messlokation: Messlokation | None

Messlokation, auf die sich die Rechnung bezieht

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]] = {'faelligkeitsdatum': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='faelligkeitsdatum', alias_priority=1), 'gesamtbrutto': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='gesamtbrutto', alias_priority=1), 'gesamtnetto': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='gesamtnetto', alias_priority=1), 'gesamtsteuer': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='gesamtsteuer', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'ist_original': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istOriginal', alias_priority=1), 'ist_simuliert': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istSimuliert', alias_priority=1), 'ist_storno': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istStorno', alias_priority=1), 'marktlokation': FieldInfo(annotation=Union[Marktlokation, NoneType], required=False, alias='marktlokation', alias_priority=1), 'messlokation': FieldInfo(annotation=Union[Messlokation, NoneType], required=False, alias='messlokation', alias_priority=1), 'netznutzungrechnungsart': FieldInfo(annotation=Union[NetznutzungRechnungsart, NoneType], required=False, alias='netznutzungrechnungsart', alias_priority=1), 'netznutzungrechnungstyp': FieldInfo(annotation=Union[NetznutzungRechnungstyp, NoneType], required=False, alias='netznutzungrechnungstyp', alias_priority=1), 'original_rechnungsnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='originalRechnungsnummer', alias_priority=1), 'rabatt_brutto': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='rabattBrutto', alias_priority=1), 'rechnungsdatum': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='rechnungsdatum', alias_priority=1), 'rechnungsempfaenger': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='rechnungsempfaenger', alias_priority=1), 'rechnungsersteller': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='rechnungsersteller', alias_priority=1), 'rechnungsnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='rechnungsnummer', alias_priority=1), 'rechnungsperiode': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='rechnungsperiode', alias_priority=1), 'rechnungspositionen': FieldInfo(annotation=Union[list[Rechnungsposition], NoneType], required=False, alias='rechnungspositionen', alias_priority=1), 'rechnungsstatus': FieldInfo(annotation=Union[Rechnungsstatus, NoneType], required=False, alias='rechnungsstatus', alias_priority=1), 'rechnungstitel': FieldInfo(annotation=Union[str, NoneType], required=False, alias='rechnungstitel', alias_priority=1), 'rechnungstyp': FieldInfo(annotation=Union[Rechnungstyp, NoneType], required=False, alias='rechnungstyp', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'steuerbetraege': FieldInfo(annotation=Union[list[Steuerbetrag], NoneType], required=False, alias='steuerbetraege', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.RECHNUNG: 'RECHNUNG'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'vorausgezahlt': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='vorausgezahlt', alias_priority=1), 'zu_zahlen': FieldInfo(annotation=Union[Betrag, NoneType], required=False, alias='zuZahlen', alias_priority=1), '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.

netznutzungrechnungsart: NetznutzungRechnungsart | None

Aus der INVOIC entnommen, befüllt wenn es sich um eine Netznutzungsrechnung handelt

netznutzungrechnungstyp: NetznutzungRechnungstyp | None

Aus der INVOIC entnommen, befüllt wenn es sich um eine Netznutzungsrechnung handelt

original_rechnungsnummer: str | None

Im Falle einer Stornorechnung (storno = true) steht hier die Rechnungsnummer der stornierten Rechnung

rabatt_brutto: Betrag | None

Gesamtrabatt auf den Bruttobetrag

rechnungsdatum: datetime | None

Ausstellungsdatum der Rechnung

rechnungsempfaenger: Geschaeftspartner | None

Der Aussteller der Rechnung, die Rollencodenummer kennt man über den im Geschäftspartner verlinkten Marktteilnehmer

rechnungsersteller: Geschaeftspartner | None

Der Aussteller der Rechnung, die Rollencodenummer kennt man über den im Geschäftspartner verlinkten Marktteilnehmer

rechnungsnummer: str | None

Eine im Verwendungskontext eindeutige Nummer für die Rechnung

rechnungsperiode: Zeitraum | None

Der Zeitraum der zugrunde liegenden Lieferung zur Rechnung

rechnungspositionen: list[Rechnungsposition] | None

Die Rechnungspositionen

rechnungsstatus: Rechnungsstatus | None

Status der Rechnung zur Kennzeichnung des Bearbeitungsstandes

rechnungstitel: str | None

Bezeichnung für die vorliegende Rechnung

rechnungstyp: Rechnungstyp | None

Ein kontextbezogender Rechnungstyp, z.B. Netznutzungsrechnung

sparte: Sparte | None

Sparte (Strom, Gas …) für die die Rechnung ausgestellt ist

steuerbetraege: list[Steuerbetrag] | None

Eine Liste mit Steuerbeträgen pro Steuerkennzeichen/Steuersatz; die Summe dieser Beträge ergibt den Wert für gesamtsteuer.

typ: Typ | None

Der Typ des Geschäftsobjektes

vorausgezahlt: Betrag | None

Die Summe evtl. vorausgezahlter Beträge, z.B. Abschläge. Angabe als Bruttowert

zu_zahlen: Betrag | None

Der zu zahlende Betrag, der sich aus (gesamtbrutto - vorausbezahlt - rabattBrutto) ergibt

bo4e.bo.region module

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

class bo4e.bo.region.Region(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.REGION, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, positivListe: list[Regionskriterium] | None = None, negativListe: list[Regionskriterium] | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Modellierung einer Region als Menge von Kriterien, die eine Region beschreiben

bezeichnung: str | None

Bezeichnung der Region

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), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'negativ_liste': FieldInfo(annotation=Union[list[Regionskriterium], NoneType], required=False, alias='negativListe', alias_priority=1), 'positiv_liste': FieldInfo(annotation=Union[list[Regionskriterium], NoneType], required=False, alias='positivListe', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.REGION: 'REGION'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

negativ_liste: list[Regionskriterium] | None

Negativliste der Kriterien zur Definition der Region

positiv_liste: list[Regionskriterium] | None

Positivliste der Kriterien zur Definition der Region

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.regionaltarif module

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

class bo4e.bo.regionaltarif.Regionaltarif(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.REGIONALTARIF, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, anbietername: str | None = None, sparte: Sparte | None = None, kundentypen: list[Kundentyp] | None = None, registeranzahl: Registeranzahl | None = None, tariftyp: Tariftyp | None = None, tarifmerkmale: list[Tarifmerkmal] | None = None, anbieter: Marktteilnehmer | None = None, website: str | None = None, bemerkung: str | None = None, zeitlicheGueltigkeit: Zeitraum | None = None, energiemix: Energiemix | None = None, vertragskonditionen: Vertragskonditionen | None = None, anwendungVon: datetime | None = None, preisstand: datetime | None = None, berechnungsparameter: Tarifberechnungsparameter | None = None, tarifpreise: list[RegionaleTarifpreisposition] | None = None, tarifAufAbschlaege: list[RegionalerAufAbschlag] | None = None, preisgarantien: list[RegionalePreisgarantie] | None = None, tarifeinschraenkung: Tarifeinschraenkung | None = None, **extra_data: Any)[source]

Bases: Tarifinfo

berechnungsparameter: Tarifberechnungsparameter | None

Für die Berechnung der Kosten sind die hier abgebildeten Parameter heranzuziehen

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]] = {'anbieter': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='anbieter', alias_priority=1), 'anbietername': FieldInfo(annotation=Union[str, NoneType], required=False, alias='anbietername', alias_priority=1), 'anwendung_von': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='anwendungVon', alias_priority=1), 'bemerkung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bemerkung', alias_priority=1), 'berechnungsparameter': FieldInfo(annotation=Union[Tarifberechnungsparameter, NoneType], required=False, alias='berechnungsparameter', alias_priority=1), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'energiemix': FieldInfo(annotation=Union[Energiemix, NoneType], required=False, alias='energiemix', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'kundentypen': FieldInfo(annotation=Union[list[Kundentyp], NoneType], required=False, alias='kundentypen', alias_priority=1), 'preisgarantien': FieldInfo(annotation=Union[list[RegionalePreisgarantie], NoneType], required=False, alias='preisgarantien', alias_priority=1), 'preisstand': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='preisstand', alias_priority=1), 'registeranzahl': FieldInfo(annotation=Union[Registeranzahl, NoneType], required=False, alias='registeranzahl', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'tarif_auf_abschlaege': FieldInfo(annotation=Union[list[RegionalerAufAbschlag], NoneType], required=False, alias='tarifAufAbschlaege', alias_priority=1), 'tarifeinschraenkung': FieldInfo(annotation=Union[Tarifeinschraenkung, NoneType], required=False, alias='tarifeinschraenkung', alias_priority=1), 'tarifmerkmale': FieldInfo(annotation=Union[list[Tarifmerkmal], NoneType], required=False, alias='tarifmerkmale', alias_priority=1), 'tarifpreise': FieldInfo(annotation=Union[list[RegionaleTarifpreisposition], NoneType], required=False, alias='tarifpreise', alias_priority=1), 'tariftyp': FieldInfo(annotation=Union[Tariftyp, NoneType], required=False, alias='tariftyp', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.REGIONALTARIF: 'REGIONALTARIF'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'vertragskonditionen': FieldInfo(annotation=Union[Vertragskonditionen, NoneType], required=False, alias='vertragskonditionen', alias_priority=1), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1), 'zeitliche_gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='zeitlicheGueltigkeit', alias_priority=1), '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.

preisgarantien: list[RegionalePreisgarantie] | None

Festlegung von Garantien für bestimmte Preisanteile

preisstand: datetime | None

Gibt an, wann der Preis zuletzt angepasst wurde

tarif_auf_abschlaege: list[RegionalerAufAbschlag] | None

Auf- und Abschläge auf die Preise oder Kosten mit regionaler Eingrenzung

tarifeinschraenkung: Tarifeinschraenkung | None

Die Bedingungen und Einschränkungen unter denen ein Tarif angewendet werden kann

tarifpreise: list[RegionaleTarifpreisposition] | None

Die festgelegten Preise mit regionaler Eingrenzung, z.B. für Arbeitspreis, Grundpreis etc.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.standorteigenschaften module

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

class bo4e.bo.standorteigenschaften.Standorteigenschaften(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.STANDORTEIGENSCHAFTEN, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, eigenschaftenStrom: list[StandorteigenschaftenStrom] | None = None, eigenschaftenGas: StandorteigenschaftenGas | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Modelliert die regionalen und spartenspezifischen Eigenschaften einer gegebenen Adresse.

eigenschaften_gas: StandorteigenschaftenGas | None

Eigenschaften zur Sparte Gas

eigenschaften_strom: list[StandorteigenschaftenStrom] | None

Eigenschaften zur Sparte Strom

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]] = {'eigenschaften_gas': FieldInfo(annotation=Union[StandorteigenschaftenGas, NoneType], required=False, alias='eigenschaftenGas', alias_priority=1), 'eigenschaften_strom': FieldInfo(annotation=Union[list[StandorteigenschaftenStrom], NoneType], required=False, alias='eigenschaftenStrom', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.STANDORTEIGENSCHAFTEN: 'STANDORTEIGENSCHAFTEN'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.tarif module

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

class bo4e.bo.tarif.Tarif(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.TARIF, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, anbietername: str | None = None, sparte: Sparte | None = None, kundentypen: list[Kundentyp] | None = None, registeranzahl: Registeranzahl | None = None, tariftyp: Tariftyp | None = None, tarifmerkmale: list[Tarifmerkmal] | None = None, anbieter: Marktteilnehmer | None = None, website: str | None = None, bemerkung: str | None = None, zeitlicheGueltigkeit: Zeitraum | None = None, energiemix: Energiemix | None = None, vertragskonditionen: Vertragskonditionen | None = None, anwendungVon: datetime | None = None, preisstand: datetime | None = None, berechnungsparameter: Tarifberechnungsparameter | None = None, tarifpreise: list[TarifpreispositionProOrt] | None = None, tarifAufAbschlaege: list[AufAbschlagRegional] | None = None, preisgarantie: Preisgarantie | None = None, tarifeinschraenkung: Tarifeinschraenkung | None = None, **extra_data: Any)[source]

Bases: Tarifinfo

Abbildung eines Tarifs mit regionaler Zuordnung von Preisen und Auf- und Abschlägen

berechnungsparameter: Tarifberechnungsparameter | None

Für die Berechnung der Kosten sind die hier abgebildeten Parameter heranzuziehen

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]] = {'anbieter': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='anbieter', alias_priority=1), 'anbietername': FieldInfo(annotation=Union[str, NoneType], required=False, alias='anbietername', alias_priority=1), 'anwendung_von': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='anwendungVon', alias_priority=1), 'bemerkung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bemerkung', alias_priority=1), 'berechnungsparameter': FieldInfo(annotation=Union[Tarifberechnungsparameter, NoneType], required=False, alias='berechnungsparameter', alias_priority=1), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'energiemix': FieldInfo(annotation=Union[Energiemix, NoneType], required=False, alias='energiemix', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'kundentypen': FieldInfo(annotation=Union[list[Kundentyp], NoneType], required=False, alias='kundentypen', alias_priority=1), 'preisgarantie': FieldInfo(annotation=Union[Preisgarantie, NoneType], required=False, alias='preisgarantie', alias_priority=1), 'preisstand': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='preisstand', alias_priority=1), 'registeranzahl': FieldInfo(annotation=Union[Registeranzahl, NoneType], required=False, alias='registeranzahl', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'tarif_auf_abschlaege': FieldInfo(annotation=Union[list[AufAbschlagRegional], NoneType], required=False, alias='tarifAufAbschlaege', alias_priority=1), 'tarifeinschraenkung': FieldInfo(annotation=Union[Tarifeinschraenkung, NoneType], required=False, alias='tarifeinschraenkung', alias_priority=1), 'tarifmerkmale': FieldInfo(annotation=Union[list[Tarifmerkmal], NoneType], required=False, alias='tarifmerkmale', alias_priority=1), 'tarifpreise': FieldInfo(annotation=Union[list[TarifpreispositionProOrt], NoneType], required=False, alias='tarifpreise', alias_priority=1), 'tariftyp': FieldInfo(annotation=Union[Tariftyp, NoneType], required=False, alias='tariftyp', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.TARIF: 'TARIF'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'vertragskonditionen': FieldInfo(annotation=Union[Vertragskonditionen, NoneType], required=False, alias='vertragskonditionen', alias_priority=1), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1), 'zeitliche_gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='zeitlicheGueltigkeit', alias_priority=1), '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.

preisgarantie: Preisgarantie | None

Preisgarantie für diesen Tarif

preisstand: datetime | None

Gibt an, wann der Preis zuletzt angepasst wurde

tarif_auf_abschlaege: list[AufAbschlagRegional] | None

Auf- und Abschläge auf die Preise oder Kosten mit regionaler Eingrenzung

tarifeinschraenkung: Tarifeinschraenkung | None

Die Bedingungen und Einschränkungen unter denen ein Tarif angewendet werden kann

tarifpreise: list[TarifpreispositionProOrt] | None

Die festgelegten Preise mit regionaler Eingrenzung z.B. für Arbeitspreis, Grundpreis etc.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.tarifinfo module

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

class bo4e.bo.tarifinfo.Tarifinfo(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.TARIFINFO, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, anbietername: str | None = None, sparte: Sparte | None = None, kundentypen: list[Kundentyp] | None = None, registeranzahl: Registeranzahl | None = None, tariftyp: Tariftyp | None = None, tarifmerkmale: list[Tarifmerkmal] | None = None, anbieter: Marktteilnehmer | None = None, website: str | None = None, bemerkung: str | None = None, zeitlicheGueltigkeit: Zeitraum | None = None, energiemix: Energiemix | None = None, vertragskonditionen: Vertragskonditionen | None = None, anwendungVon: datetime | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Das BO Tarifinfo liefert die Merkmale, die einen Endkundentarif identifizierbar machen. Dieses BO dient als Basis für weitere BOs mit erweiterten Anwendungsmöglichkeiten.

anbieter: Marktteilnehmer | None

Der Marktteilnehmer (Lieferant), der diesen Tarif anbietet

anbietername: str | None

Der Name des Marktpartners, der den Tarif anbietet

anwendung_von: datetime | None

Angabe des inklusiven Zeitpunkts, ab dem der Tarif bzw. der Preis angewendet und abgerechnet wird, z.B. “2021-07-20T18:31:48Z”

bemerkung: str | None

Freitext

bezeichnung: str | None

Name des Tarifs

energiemix: Energiemix | None

Der Energiemix, der für diesen Tarif gilt

kundentypen: list[Kundentyp] | None

Kundentypen für den der Tarif gilt, z.B. Privatkunden

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]] = {'anbieter': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='anbieter', alias_priority=1), 'anbietername': FieldInfo(annotation=Union[str, NoneType], required=False, alias='anbietername', alias_priority=1), 'anwendung_von': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='anwendungVon', alias_priority=1), 'bemerkung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bemerkung', alias_priority=1), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'energiemix': FieldInfo(annotation=Union[Energiemix, NoneType], required=False, alias='energiemix', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'kundentypen': FieldInfo(annotation=Union[list[Kundentyp], NoneType], required=False, alias='kundentypen', alias_priority=1), 'registeranzahl': FieldInfo(annotation=Union[Registeranzahl, NoneType], required=False, alias='registeranzahl', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'tarifmerkmale': FieldInfo(annotation=Union[list[Tarifmerkmal], NoneType], required=False, alias='tarifmerkmale', alias_priority=1), 'tariftyp': FieldInfo(annotation=Union[Tariftyp, NoneType], required=False, alias='tariftyp', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.TARIFINFO: 'TARIFINFO'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'vertragskonditionen': FieldInfo(annotation=Union[Vertragskonditionen, NoneType], required=False, alias='vertragskonditionen', alias_priority=1), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1), 'zeitliche_gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='zeitlicheGueltigkeit', alias_priority=1), '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.

registeranzahl: Registeranzahl | None

Die Art des Tarifes, z.B. Eintarif oder Mehrtarif

sparte: Sparte | None

Strom oder Gas, etc.

tarifmerkmale: list[Tarifmerkmal] | None

Weitere Merkmale des Tarifs, z.B. Festpreis oder Vorkasse

tariftyp: Tariftyp | None

Hinweis auf den Tariftyp, z.B. Grundversorgung oder Sondertarif

typ: Typ | None

Der Typ des Geschäftsobjektes

vertragskonditionen: Vertragskonditionen | None

Mindestlaufzeiten und Kündigungsfristen zusammengefasst

website: str | None

Internetseite auf dem der Tarif zu finden ist

zeitliche_gueltigkeit: Zeitraum | None

Angabe, in welchem Zeitraum der Tarif gültig ist

bo4e.bo.tarifkosten module

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

class bo4e.bo.tarifkosten.Tarifkosten(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.TARIFKOSTEN, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, anbietername: str | None = None, sparte: Sparte | None = None, kundentypen: list[Kundentyp] | None = None, registeranzahl: Registeranzahl | None = None, tariftyp: Tariftyp | None = None, tarifmerkmale: list[Tarifmerkmal] | None = None, anbieter: Marktteilnehmer | None = None, website: str | None = None, bemerkung: str | None = None, zeitlicheGueltigkeit: Zeitraum | None = None, energiemix: Energiemix | None = None, vertragskonditionen: Vertragskonditionen | None = None, anwendungVon: datetime | None = None, kosten: Kosten | None = None, **extra_data: Any)[source]

Bases: Tarifinfo

Objekt zur Kommunikation von Kosten, die im Rahmen der Tarifanwendung entstehen

kosten: Kosten | None

Referenz (Link) zu einem Kostenobjekt, in dem die Kosten für die Anwendung des Tarifs auf eine Abnahmesituation berechnet wurden

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]] = {'anbieter': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='anbieter', alias_priority=1), 'anbietername': FieldInfo(annotation=Union[str, NoneType], required=False, alias='anbietername', alias_priority=1), 'anwendung_von': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='anwendungVon', alias_priority=1), 'bemerkung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bemerkung', alias_priority=1), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'energiemix': FieldInfo(annotation=Union[Energiemix, NoneType], required=False, alias='energiemix', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'kosten': FieldInfo(annotation=Union[Kosten, NoneType], required=False, alias='kosten', alias_priority=1), 'kundentypen': FieldInfo(annotation=Union[list[Kundentyp], NoneType], required=False, alias='kundentypen', alias_priority=1), 'registeranzahl': FieldInfo(annotation=Union[Registeranzahl, NoneType], required=False, alias='registeranzahl', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'tarifmerkmale': FieldInfo(annotation=Union[list[Tarifmerkmal], NoneType], required=False, alias='tarifmerkmale', alias_priority=1), 'tariftyp': FieldInfo(annotation=Union[Tariftyp, NoneType], required=False, alias='tariftyp', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.TARIFKOSTEN: 'TARIFKOSTEN'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'vertragskonditionen': FieldInfo(annotation=Union[Vertragskonditionen, NoneType], required=False, alias='vertragskonditionen', alias_priority=1), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1), 'zeitliche_gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='zeitlicheGueltigkeit', alias_priority=1), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.tarifpreisblatt module

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

class bo4e.bo.tarifpreisblatt.Tarifpreisblatt(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.TARIFPREISBLATT, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, anbietername: str | None = None, sparte: Sparte | None = None, kundentypen: list[Kundentyp] | None = None, registeranzahl: Registeranzahl | None = None, tariftyp: Tariftyp | None = None, tarifmerkmale: list[Tarifmerkmal] | None = None, anbieter: Marktteilnehmer | None = None, website: str | None = None, bemerkung: str | None = None, zeitlicheGueltigkeit: Zeitraum | None = None, energiemix: Energiemix | None = None, vertragskonditionen: Vertragskonditionen | None = None, anwendungVon: datetime | None = None, preisstand: datetime | None = None, tarifpreise: list[Tarifpreisposition] | None = None, berechnungsparameter: Tarifberechnungsparameter | None = None, tarifeinschraenkung: Tarifeinschraenkung | None = None, preisgarantie: Preisgarantie | None = None, tarifAufAbschlaege: list[AufAbschlag] | None = None, **extra_data: Any)[source]

Bases: Tarifinfo

Tarifinformation mit Preisen, Aufschlägen und Berechnungssystematik

berechnungsparameter: Tarifberechnungsparameter | None

Für die Berechnung der Kosten sind die hier abgebildeten Parameter heranzuziehen

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]] = {'anbieter': FieldInfo(annotation=Union[Marktteilnehmer, NoneType], required=False, alias='anbieter', alias_priority=1), 'anbietername': FieldInfo(annotation=Union[str, NoneType], required=False, alias='anbietername', alias_priority=1), 'anwendung_von': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='anwendungVon', alias_priority=1), 'bemerkung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bemerkung', alias_priority=1), 'berechnungsparameter': FieldInfo(annotation=Union[Tarifberechnungsparameter, NoneType], required=False, alias='berechnungsparameter', alias_priority=1), 'bezeichnung': FieldInfo(annotation=Union[str, NoneType], required=False, alias='bezeichnung', alias_priority=1), 'energiemix': FieldInfo(annotation=Union[Energiemix, NoneType], required=False, alias='energiemix', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'kundentypen': FieldInfo(annotation=Union[list[Kundentyp], NoneType], required=False, alias='kundentypen', alias_priority=1), 'preisgarantie': FieldInfo(annotation=Union[Preisgarantie, NoneType], required=False, alias='preisgarantie', alias_priority=1), 'preisstand': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='preisstand', alias_priority=1), 'registeranzahl': FieldInfo(annotation=Union[Registeranzahl, NoneType], required=False, alias='registeranzahl', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'tarif_auf_abschlaege': FieldInfo(annotation=Union[list[AufAbschlag], NoneType], required=False, alias='tarifAufAbschlaege', alias_priority=1), 'tarifeinschraenkung': FieldInfo(annotation=Union[Tarifeinschraenkung, NoneType], required=False, alias='tarifeinschraenkung', alias_priority=1), 'tarifmerkmale': FieldInfo(annotation=Union[list[Tarifmerkmal], NoneType], required=False, alias='tarifmerkmale', alias_priority=1), 'tarifpreise': FieldInfo(annotation=Union[list[Tarifpreisposition], NoneType], required=False, alias='tarifpreise', alias_priority=1), 'tariftyp': FieldInfo(annotation=Union[Tariftyp, NoneType], required=False, alias='tariftyp', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.TARIFPREISBLATT: 'TARIFPREISBLATT'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'vertragskonditionen': FieldInfo(annotation=Union[Vertragskonditionen, NoneType], required=False, alias='vertragskonditionen', alias_priority=1), 'website': FieldInfo(annotation=Union[str, NoneType], required=False, alias='website', alias_priority=1), 'zeitliche_gueltigkeit': FieldInfo(annotation=Union[Zeitraum, NoneType], required=False, alias='zeitlicheGueltigkeit', alias_priority=1), '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.

preisgarantie: Preisgarantie | None

Festlegung von Garantien für bestimmte Preisanteile

preisstand: datetime | None

Gibt an, wann der Preis zuletzt angepasst wurde

tarif_auf_abschlaege: list[AufAbschlag] | None

Auf- und Abschläge auf die Preise oder Kosten

tarifeinschraenkung: Tarifeinschraenkung | None

Die Bedingungen und Einschränkungen unter denen ein Tarif angewendet werden kann

tarifpreise: list[Tarifpreisposition] | None

Die festgelegten Preise, z.B. für Arbeitspreis, Grundpreis etc.

typ: Typ | None

Der Typ des Geschäftsobjektes

bo4e.bo.vertrag module

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

class bo4e.bo.vertrag.Vertrag(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.VERTRAG, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, vertragsnummer: str | None = None, vertragsart: Vertragsart | None = None, vertragsstatus: Vertragsstatus | None = None, sparte: Sparte | None = None, vertragsbeginn: datetime | None = None, vertragsende: datetime | None = None, vertragspartner1: Geschaeftspartner | None = None, vertragspartner2: Geschaeftspartner | None = None, vertragsteile: list[Vertragsteil] | None = None, beschreibung: str | None = None, vertragskonditionen: Vertragskonditionen | None = None, unterzeichnervp1: list[Unterschrift] | None = None, unterzeichnervp2: list[Unterschrift] | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Modell für die Abbildung von Vertragsbeziehungen; Das Objekt dient dazu, alle Arten von Verträgen, die in der Energiewirtschaft Verwendung finden, abzubilden.

beschreibung: str | None

Beschreibung zum Vertrag

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), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.VERTRAG: 'VERTRAG'>, alias='_typ', alias_priority=2), 'unterzeichnervp1': FieldInfo(annotation=Union[list[Unterschrift], NoneType], required=False, alias='unterzeichnervp1', alias_priority=1), 'unterzeichnervp2': FieldInfo(annotation=Union[list[Unterschrift], NoneType], required=False, alias='unterzeichnervp2', alias_priority=1), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'vertragsart': FieldInfo(annotation=Union[Vertragsart, NoneType], required=False, alias='vertragsart', alias_priority=1), 'vertragsbeginn': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='vertragsbeginn', alias_priority=1), 'vertragsende': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='vertragsende', alias_priority=1), 'vertragskonditionen': FieldInfo(annotation=Union[Vertragskonditionen, NoneType], required=False, alias='vertragskonditionen', alias_priority=1), 'vertragsnummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='vertragsnummer', alias_priority=1), 'vertragspartner1': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='vertragspartner1', alias_priority=1), 'vertragspartner2': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='vertragspartner2', alias_priority=1), 'vertragsstatus': FieldInfo(annotation=Union[Vertragsstatus, NoneType], required=False, alias='vertragsstatus', alias_priority=1), 'vertragsteile': FieldInfo(annotation=Union[list[Vertragsteil], NoneType], required=False, alias='vertragsteile', alias_priority=1), '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.

sparte: Sparte | None

Unterscheidungsmöglichkeiten für die Sparte

typ: Typ | None

Der Typ des Geschäftsobjektes

unterzeichnervp1: list[Unterschrift] | None

Unterzeichner des Vertragspartners 1

unterzeichnervp2: list[Unterschrift] | None

Unterzeichner des Vertragspartners 2

vertragsart: Vertragsart | None

Hier ist festgelegt, um welche Art von Vertrag es sich handelt.

vertragsbeginn: datetime | None

Gibt an, wann der Vertrag beginnt (inklusiv)

vertragsende: datetime | None

Gibt an, wann der Vertrag (voraussichtlich) endet oder beendet wurde (exklusiv)

vertragskonditionen: Vertragskonditionen | None

Festlegungen zu Laufzeiten und Kündigungsfristen

vertragsnummer: str | None

Eine im Verwendungskontext eindeutige Nummer für den Vertrag

vertragspartner1: Geschaeftspartner | None

Der “erstgenannte” Vertragspartner. In der Regel der Aussteller des Vertrags. Beispiel: “Vertrag zwischen Vertragspartner 1 …”

vertragspartner2: Geschaeftspartner | None

Der “zweitgenannte” Vertragspartner. In der Regel der Empfänger des Vertrags. Beispiel “Vertrag zwischen Vertragspartner 1 und Vertragspartner 2”.

vertragsstatus: Vertragsstatus | None

Gibt den Status des Vertrags an

vertragsteile: list[Vertragsteil] | None

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

bo4e.bo.zaehler module

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

class bo4e.bo.zaehler.Zaehler(*, _version: str | None = '0.0.0', _typ: Typ | None = Typ.ZAEHLER, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, zaehlernummer: str | None = None, sparte: Sparte | None = None, zaehlerauspraegung: Zaehlerauspraegung | None = None, zaehlertyp: Zaehlertyp | None = None, zaehlwerke: list[Zaehlwerk] | None = None, registeranzahl: Registeranzahl | None = None, zaehlerkonstante: Decimal | None = None, eichungBis: datetime | None = None, letzteEichung: datetime | None = None, zaehlerhersteller: Geschaeftspartner | None = None, istFernschaltbar: bool | None = None, messwerterfassung: Messwerterfassung | None = None, zaehlertypSpezifikation: ZaehlertypSpezifikation | None = None, befestigungsart: Befestigungsart | None = None, zaehlergroesse: Zaehlergroesse | None = None, geraete: list[Geraet] | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Object containing information about a meter/”Zaehler”.

befestigungsart: Befestigungsart | None

Befestigungsart

eichung_bis: datetime | None

Bis zu diesem Datum (exklusiv) ist der Zähler geeicht.

geraete: list[Geraet] | None

Liste der Geräte, die zu diesem Zähler gehören, bspw. Smartmeter-Gateway

ist_fernschaltbar: bool | None

Fernschaltung

letzte_eichung: datetime | None

Zu diesem Datum fand die letzte Eichprüfung des Zählers statt.

messwerterfassung: Messwerterfassung | None

Messwerterfassung des Zählers

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]] = {'befestigungsart': FieldInfo(annotation=Union[Befestigungsart, NoneType], required=False, alias='befestigungsart', alias_priority=1), 'eichung_bis': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='eichungBis', alias_priority=1), 'geraete': FieldInfo(annotation=Union[list[Geraet], NoneType], required=False, alias='geraete', alias_priority=1), 'id': FieldInfo(annotation=Union[str, NoneType], required=False, alias='_id', alias_priority=2), 'ist_fernschaltbar': FieldInfo(annotation=Union[bool, NoneType], required=False, alias='istFernschaltbar', alias_priority=1), 'letzte_eichung': FieldInfo(annotation=Union[datetime, NoneType], required=False, alias='letzteEichung', alias_priority=1), 'messwerterfassung': FieldInfo(annotation=Union[Messwerterfassung, NoneType], required=False, alias='messwerterfassung', alias_priority=1), 'registeranzahl': FieldInfo(annotation=Union[Registeranzahl, NoneType], required=False, alias='registeranzahl', alias_priority=1), 'sparte': FieldInfo(annotation=Union[Sparte, NoneType], required=False, alias='sparte', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.ZAEHLER: 'ZAEHLER'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, default='0.0.0', alias='_version', alias_priority=2), 'zaehlerauspraegung': FieldInfo(annotation=Union[Zaehlerauspraegung, NoneType], required=False, alias='zaehlerauspraegung', alias_priority=1), 'zaehlergroesse': FieldInfo(annotation=Union[Zaehlergroesse, NoneType], required=False, alias='zaehlergroesse', alias_priority=1), 'zaehlerhersteller': FieldInfo(annotation=Union[Geschaeftspartner, NoneType], required=False, alias='zaehlerhersteller', alias_priority=1), 'zaehlerkonstante': FieldInfo(annotation=Union[Decimal, NoneType], required=False, alias='zaehlerkonstante', alias_priority=1), 'zaehlernummer': FieldInfo(annotation=Union[str, NoneType], required=False, alias='zaehlernummer', alias_priority=1), 'zaehlertyp': FieldInfo(annotation=Union[Zaehlertyp, NoneType], required=False, alias='zaehlertyp', alias_priority=1), 'zaehlertypSpezifikation': FieldInfo(annotation=Union[ZaehlertypSpezifikation, NoneType], required=False, alias='zaehlertypSpezifikation', alias_priority=1), 'zaehlwerke': FieldInfo(annotation=Union[list[Zaehlwerk], NoneType], required=False, alias='zaehlwerke', alias_priority=1), '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.

registeranzahl: Registeranzahl | None

Spezifikation bezüglich unterstützter Tarif

sparte: Sparte | None

Strom oder Gas

typ: Typ | None

Der Typ des Geschäftsobjektes

zaehlerauspraegung: Zaehlerauspraegung | None

Spezifikation die Richtung des Zählers betreffend

zaehlergroesse: Zaehlergroesse | None

Größe des Zählers

zaehlerhersteller: Geschaeftspartner | None

Der Hersteller des Zählers

zaehlerkonstante: Decimal | None

Zählerkonstante auf dem Zähler

zaehlernummer: str | None

Nummerierung des Zählers,vergeben durch den Messstellenbetreiber

zaehlertyp: Zaehlertyp | None

Typisierung des Zählers

zaehlertypSpezifikation: ZaehlertypSpezifikation | None

Besondere Spezifikation des Zählers

zaehlwerke: list[Zaehlwerk] | None

bo4e.bo.zeitreihe module

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

class bo4e.bo.zeitreihe.Zeitreihe(*, version: str | None = None, _typ: Typ | None = Typ.ZEITREIHE, zusatzAttribute: list[ZusatzAttribut] | None = None, _id: str | None = None, bezeichnung: str | None = None, messgroesse: Messgroesse | None = None, messart: Messart | None = None, medium: Medium | None = None, einheit: Mengeneinheit | None = None, werte: list[Zeitreihenwert] | None = None, beschreibung: str | None = None, wertherkunft: Wertermittlungsverfahren | None = None, **extra_data: Any)[source]

Bases: Geschaeftsobjekt

Abbildung einer allgemeinen Zeitreihe mit einem Wertvektor. Die Werte können mit wahlfreier zeitlicher Distanz im Vektor abgelegt sein.

beschreibung: str | None

Beschreibt die Verwendung der Zeitreihe

bezeichnung: str | None

Bezeichnung für die Zeitreihe

einheit: Mengeneinheit | None

Alle Werte in der Tabelle haben die Einheit, die hier angegeben ist

medium: Medium | None

Medium, das gemessen wurde (z.B. Wasser, Dampf, Strom, Gas)

messart: Messart | None

Beschreibt die Art der Messung (z.B. aktueller Wert, mittlerer Wert, maximaler Wert)

messgroesse: Messgroesse | None

Beschreibt, was gemessen wurde (z.B. Strom, Spannung, Wirkleistung, Scheinleistung)

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), '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), 'medium': FieldInfo(annotation=Union[Medium, NoneType], required=False, alias='medium', alias_priority=1), 'messart': FieldInfo(annotation=Union[Messart, NoneType], required=False, alias='messart', alias_priority=1), 'messgroesse': FieldInfo(annotation=Union[Messgroesse, NoneType], required=False, alias='messgroesse', alias_priority=1), 'typ': FieldInfo(annotation=Union[Typ, NoneType], required=False, default=<Typ.ZEITREIHE: 'ZEITREIHE'>, alias='_typ', alias_priority=2), 'version': FieldInfo(annotation=Union[str, NoneType], required=False, alias='version', alias_priority=1), 'werte': FieldInfo(annotation=Union[list[Zeitreihenwert], NoneType], required=False, alias='werte', alias_priority=1), 'wertherkunft': FieldInfo(annotation=Union[Wertermittlungsverfahren, NoneType], required=False, alias='wertherkunft', alias_priority=1), '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.

typ: Typ | None

Der Typ des Geschäftsobjektes

version: str | None

Version der Zeitreihe

werte: list[Zeitreihenwert] | None

Hier liegen jeweils die Werte

wertherkunft: Wertermittlungsverfahren | None

Kennzeichnung, wie die Werte entstanden sind, z.B. durch Messung

Module contents