Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions src/bo4e/com/adresse.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,23 @@ class Adresse(COM):
"""

# required attributes
#: Die Postleitzahl; z.B: "41836"
postleitzahl: str = attr.ib(validator=attr.validators.instance_of(str))
#: Bezeichnung der Stadt; z.B. "Hückelhoven"
ort: str = attr.ib(validator=attr.validators.instance_of(str))

# optional attributes
#: Bezeichnung der Straße; z.B. "Weserstraße"
strasse: str = attr.ib(default=None, validator=strasse_xor_postfach)
#: Hausnummer inkl. Zusatz; z.B. "3", "4a"
hausnummer: str = attr.ib(default=None, validator=strasse_xor_postfach)
#: Im Falle einer Postfachadresse das Postfach; Damit werden Straße und Hausnummer nicht berücksichtigt
postfach: str = attr.ib(default=None, validator=strasse_xor_postfach)
#: Zusatzhinweis zum Auffinden der Adresse, z.B. "3. Stock linke Wohnung"
adresszusatz: str = attr.ib(default=None)
#: Im Falle einer c/o-Adresse steht in diesem Attribut die Anrede. Z.B. "c/o Veronica Hauptmieterin"
co_ergaenzung: str = attr.ib(default=None)
#: Offizieller ISO-Landescode
landescode: Landescode = attr.ib(default=Landescode.DE) # type:ignore


Expand Down
2 changes: 2 additions & 0 deletions src/bo4e/com/dienstleistung.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,9 @@ class Dienstleistung(COM):
"""

# required attributes
#: Kennzeichnung der Dienstleistung
dienstleistungstyp: Dienstleistungstyp = attr.ib(validator=attr.validators.in_(Dienstleistungstyp))
#: Bezeichnung der Dienstleistung
bezeichnung: str = attr.ib(validator=attr.validators.instance_of(str))


Expand Down
4 changes: 2 additions & 2 deletions src/bo4e/com/externereferenz.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ class ExterneReferenz(COM):
"""

# required attributes
ex_ref_name: str
ex_ref_wert: str
ex_ref_name: str #: Bezeichnung der externen Referenz (z.B. "microservice xyz" oder "SAP CRM GP-Nummer")
ex_ref_wert: str #: Wert der externen Referenz (z.B. "123456"; "4711")


class ExterneReferenzSchema(COMSchema):
Expand Down
4 changes: 3 additions & 1 deletion src/bo4e/com/hardware.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,17 @@
@attr.s(auto_attribs=True, kw_only=True)
class Hardware(COM):
"""
Abbildung einer abrechenbaren Hardware.
Abbildung einer abrechenbaren Hardware

.. HINT::
`Hardware JSON Schema <https://json-schema.app/view/%23?url=https://raw.githubusercontent.com/Hochfrequenz/BO4E-python/main/json_schemas/com/HardwareSchema.json>`_

"""

# required attributes
#: Eindeutiger Typ der Hardware
geraetetyp: Geraetetyp = attr.ib(validator=attr.validators.in_(Geraetetyp))
#: Bezeichnung der Hardware
bezeichnung: str = attr.ib(validator=attr.validators.instance_of(str))


Expand Down
2 changes: 2 additions & 0 deletions src/bo4e/com/menge.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,9 @@ class Menge(COM):
"""

# required attributes
#: Gibt den absoluten Wert der Menge an
wert: Decimal = attr.ib(validator=attr.validators.instance_of(Decimal))
#: Gibt die Einheit zum jeweiligen Wert an
einheit: Mengeneinheit = attr.ib(validator=attr.validators.instance_of(Mengeneinheit))


Expand Down
2 changes: 2 additions & 0 deletions src/bo4e/com/rufnummer.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ class Rufnummer(COM):
"""

# required attributes
#: Ausprägung der Nummer
nummerntyp: Rufnummernart = attr.ib(validator=attr.validators.in_(Rufnummernart))
#: Die konkrete Nummer
rufnummer: str = attr.ib(validator=attr.validators.instance_of(str))


Expand Down
5 changes: 3 additions & 2 deletions src/bo4e/com/unterschrift.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ class Unterschrift(COM):
"""

# required attributes
#: Name des Unterschreibers
name: str = attr.ib(validator=attr.validators.instance_of(str))

# optional attributes
ort: str = attr.ib(default=None)
datum: datetime = attr.ib(default=None)
ort: str = attr.ib(default=None) #: Ort, an dem die Unterschrift geleistet wird
datum: datetime = attr.ib(default=None) #: Datum der Unterschrift


class UnterschriftSchema(COMSchema):
Expand Down
6 changes: 6 additions & 0 deletions src/bo4e/com/vertragskonditionen.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,17 @@ class Vertragskonditionen(COM):
"""

# optional attributes
#: Freitext zur Beschreibung der Konditionen, z.B. "Standardkonditionen Gas"
beschreibung: str = attr.ib(default=None)
#: Anzahl der vereinbarten Abschläge pro Jahr, z.B. 12
anzahl_abschlaege: Decimal = attr.ib(default=None)
#: Über diesen Zeitraum läuft der Vertrag
vertragslaufzeit: Zeitraum = attr.ib(default=None)
#: Innerhalb dieser Frist kann der Vertrag gekündigt werden
kuendigungsfrist: Zeitraum = attr.ib(default=None)
#: Falls der Vertrag nicht gekündigt wird, verlängert er sich automatisch um die hier angegebene Zeit
vertragsverlaengerung: Zeitraum = attr.ib(default=None)
#: In diesen Zyklen werden Abschläge gestellt. Alternativ kann auch die Anzahl in den Konditionen angeben werden.
abschlagszyklus: Zeitraum = attr.ib(default=None)


Expand Down
19 changes: 19 additions & 0 deletions src/bo4e/com/vertragsteil.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,32 @@ class Vertragsteil(COM):

# required attributes
vertragsteilbeginn: datetime = attr.ib(validator=attr.validators.instance_of(datetime))
"""
Start der Gültigkeit des Vertragsteils (inklusiv)
"""
vertragsteilende: datetime = attr.ib(validator=attr.validators.instance_of(datetime))
"""
Ende der Gültigkeit des Vertragsteils (exklusiv)
"""

# optional attributes
lokation: Optional[str] = attr.ib(default=None)
"""
Der Identifier für diejenigen Markt- oder Messlokation, die zu diesem Vertragsteil gehören.
Verträge für mehrere Lokationen werden mit mehreren Vertragsteilen abgebildet
"""
vertraglich_fixierte_menge: Optional[Menge] = attr.ib(default=None)
"""
Für die Lokation festgeschriebene Abnahmemenge
"""
minimale_abnahmemenge: Optional[Menge] = attr.ib(default=None)
"""
Für die Lokation festgelegte Mindestabnahmemenge (inklusiv)
"""
maximale_abnahmemenge: Optional[Menge] = attr.ib(default=None)
"""
Für die Lokation festgelegte maximale Abnahmemenge (exklusiv)
"""


class VertragsteilSchema(COMSchema):
Expand Down
6 changes: 6 additions & 0 deletions src/bo4e/com/zeitintervall.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,13 @@ class Zeitintervall(COM):

# required attributes
wert: int = attr.ib(validator=attr.validators.instance_of(int))
"""
Die Anzahl der Zeiteinheiten innerhalb des Intervalls
"""
zeiteinheit: Zeiteinheit = attr.ib(validator=attr.validators.instance_of(Zeiteinheit))
"""
Die Einheit des Zeitintervalls
"""


class ZeitintervallSchema(COMSchema):
Expand Down
7 changes: 5 additions & 2 deletions src/bo4e/com/zustaendigkeit.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,13 @@ class Zustaendigkeit(COM):

# required attributes
themengebiet: Themengebiet = attr.ib(validator=attr.validators.in_(Themengebiet))
"""
Hier kann eine thematische Zuordnung des Ansprechpartners angegeben werden
"""

# optional attributes
jobtitel: str = attr.ib(default=None)
abteilung: str = attr.ib(default=None)
jobtitel: str = attr.ib(default=None) #: Berufliche Rolle des Ansprechpartners
abteilung: str = attr.ib(default=None) #: Abteilung, in der der Ansprechpartner tätig ist


class ZustaendigkeitSchema(COMSchema):
Expand Down
18 changes: 9 additions & 9 deletions src/bo4e/enum/gebiettyp.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,12 @@ class Gebiettyp(StrEnum):
List of possible Gebiettypen.
"""

REGELZONE = "REGELZONE"
MARKTGEBIET = "MARKTGEBIET"
BILANZIERUNGSGEBIET = "BILANZIERUNGSGEBIET"
VERTEILNETZ = "VERTEILNETZ"
TRANSPORTNETZ = "TRANSPORTNETZ"
REGIONALNETZ = "REGIONALNETZ"
AREALNETZ = "AREALNETZ"
GRUNDVERSORGUNGSGEBIET = "GRUNDVERSORGUNGSGEBIET"
VERSORGUNGSGEBIET = "VERSORGUNGSGEBIET"
REGELZONE = "REGELZONE" #: Regelzone
MARKTGEBIET = "MARKTGEBIET" #: Marktgebiet
BILANZIERUNGSGEBIET = "BILANZIERUNGSGEBIET" #: Bilanzierungsgebiet
VERTEILNETZ = "VERTEILNETZ" #: Verteilnetz
TRANSPORTNETZ = "TRANSPORTNETZ" #: Transportnetz
REGIONALNETZ = "REGIONALNETZ" #: Regionalnetz
AREALNETZ = "AREALNETZ" #: Arealnetz
GRUNDVERSORGUNGSGEBIET = "GRUNDVERSORGUNGSGEBIET" #: Grundversorgungsgebiet
VERSORGUNGSGEBIET = "VERSORGUNGSGEBIET" #: Versorgungsgebiet
10 changes: 5 additions & 5 deletions src/bo4e/enum/geschaeftspartnerrolle.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ class Geschaeftspartnerrolle(StrEnum):
Diese Rollen kann ein Geschäftspartner einnehmen.
"""

LIEFERANT = "LIEFERANT"
DIENSTLEISTER = "DIENSTLEISTER"
KUNDE = "KUNDE"
INTERESSENT = "INTERESSENT"
MARKTPARTNER = "MARKTPARTNER"
LIEFERANT = "LIEFERANT" #: Lieferant
DIENSTLEISTER = "DIENSTLEISTER" #: Dienstleister
KUNDE = "KUNDE" #: Kunde
INTERESSENT = "INTERESSENT" #: Interessent
MARKTPARTNER = "MARKTPARTNER" #: Marktpartner
10 changes: 5 additions & 5 deletions src/bo4e/enum/kontaktart.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ class Kontaktart(StrEnum):
Art des Kontaktes zwischen Geschäftspartnern.
"""

ANSCHREIBEN = "ANSCHREIBEN"
TELEFONAT = "TELEFONAT"
FAX = "FAX"
E_MAIL = "E_MAIL"
SMS = "SMS"
ANSCHREIBEN = "ANSCHREIBEN" #: Anschreiben
TELEFONAT = "TELEFONAT" #: Telefonat
FAX = "FAX" #: Fax
E_MAIL = "E_MAIL" #: Email
SMS = "SMS" #: SMS
8 changes: 4 additions & 4 deletions src/bo4e/enum/marktrolle.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ class Marktrolle(StrEnum):
Diese Rollen kann ein Marktteilnehmer einnehmen.
"""

NB = "NB" #: Grid Operator
LF = "LF" #: Supplier
NB = "NB" #: Verteilnetzbetreiber
LF = "LF" #: Lieferant
MSB = "MSB" #: Messstellenbetreiber
DL = "DL" #: Dienstleister
BKV = "BKV" #: Bilanzkreisverantwortlicher,
Expand All @@ -19,6 +19,6 @@ class Marktrolle(StrEnum):
MGV = "MGV" #: Marktgebietsverantwortlicher
EIV = "EIV" #: Einsatzverantwortlicher
RB = "RB" #: Registerbetreiber
KUNDE = "KUNDE"
INTERESSENT = "INTERESSENT"
KUNDE = "KUNDE" #: Endkunde
INTERESSENT = "INTERESSENT" #: Interessent
BTR = "BTR" #: Betreiber einer technischen Ressource