Skip to content

Commit e78aa60

Browse files
author
Simon Blank
committed
feat: Add initial basic implementation for BO Fehler
and ENUM Vereinsmitglied
1 parent ef9a0ba commit e78aa60

File tree

4 files changed

+70
-0
lines changed

4 files changed

+70
-0
lines changed

src/bo4e/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"Bilanzierung",
1616
"Buendelvertrag",
1717
"Energiemenge",
18+
"Fehler",
1819
"Fremdkosten",
1920
"Geraet",
2021
"Geschaeftsobjekt",
@@ -189,6 +190,7 @@
189190
"BoTyp",
190191
"ComTyp",
191192
"Verbrauchsart",
193+
"Vereinsmitglied",
192194
"Vertragsart",
193195
"Vertragsform",
194196
"Vertragsstatus",
@@ -216,6 +218,7 @@
216218
from .bo.bilanzierung import Bilanzierung
217219
from .bo.buendelvertrag import Buendelvertrag
218220
from .bo.energiemenge import Energiemenge
221+
from .bo.fehler import Fehler
219222
from .bo.fremdkosten import Fremdkosten
220223
from .bo.geraet import Geraet
221224
from .bo.geschaeftsobjekt import Geschaeftsobjekt
@@ -395,6 +398,7 @@
395398
from .enum.themengebiet import Themengebiet
396399
from .enum.titel import Titel
397400
from .enum.verbrauchsart import Verbrauchsart
401+
from .enum.vereinsmitglied import Vereinsmitglied
398402
from .enum.vertragsart import Vertragsart
399403
from .enum.vertragsform import Vertragsform
400404
from .enum.vertragsstatus import Vertragsstatus

src/bo4e/bo/fehler.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
"""
2+
Contains Fehler class
3+
"""
4+
5+
from typing import Annotated, Literal, Optional
6+
7+
from pydantic import Field
8+
9+
from ..enum.botyp import BoTyp
10+
from ..utils import postprocess_docstring
11+
from .geschaeftsobjekt import Geschaeftsobjekt
12+
13+
14+
@postprocess_docstring
15+
class Fehler(Geschaeftsobjekt):
16+
17+
"""
18+
Object containing information about a Fehler
19+
20+
.. raw:: html
21+
22+
<object data="../_static/images/bo4e/bo/Fehler.svg" type="image/svg+xml"></object>
23+
24+
.. HINT::
25+
`Fehler JSON Schema <https://json-schema.app/view/%23?url=https://raw.githubusercontent.com/BO4E/BO4E-Schemas/{__gh_version__}/src/bo4e_schemas/bo/Fehler.json>`_
26+
27+
"""
28+
typ: Annotated[Literal[BoTyp.FEHLER], Field(alias="_typ")] = BoTyp.FEHLER
29+
30+
code: Optional[int] = None
31+
"""Eindeutige Fehlernummer für einen Fehlerfall."""
32+
meldung: Optional[str] = None
33+
"""Beschreibung des aufgetretenen Fehlers."""
34+
spezifikation: Optional["Vereinsmitglied"] = None
35+
"""
36+
Vereinsmitglied, welches den Fehlerfall spezifiziert.
37+
Bei ALLGEMEIN handelt es sich um einen Fehlerfall im Standard.
38+
"""

src/bo4e/enum/botyp.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class BoTyp(StrEnum):
1616
BILANZIERUNG = "BILANZIERUNG"
1717
BUENDELVERTRAG = "BUENDELVERTRAG"
1818
ENERGIEMENGE = "ENERGIEMENGE"
19+
FEHLER = "FEHLER"
1920
FREMDKOSTEN = "FREMDKOSTEN"
2021
GERAET = "GERAET"
2122
# It is practical to use the BoTyp Enum as discriminator in the database.

src/bo4e/enum/vereinsmitglied.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# pylint:disable=missing-module-docstring
2+
from bo4e.enum.strenum import StrEnum
3+
4+
5+
class Vereinsmitglied(StrEnum):
6+
"""
7+
Auflistung der BO4E Vereinsmitglieder
8+
"""
9+
10+
ALLGEMEIN = "ALLGEMEIN"
11+
BRANDSEVEN = "BRANDSEVEN"
12+
CONSCOO = "CONSCOO"
13+
CONUTI = "CONUTI"
14+
DIMATER = "DIMATER"
15+
ENET = "ENET"
16+
ENERKO = "ENERKO"
17+
FICHTNER = "FICHTNER"
18+
HOCHFREQUENZ = "HOCHFREQUENZ"
19+
ITEMS = "ITEMS"
20+
KISTERS = "KISTERS"
21+
LYNQTECH = "LYNQTECH"
22+
MUT_ZUM_WECHSELN = "MUT_ZUM_WECHSELN"
23+
PREISENERGIE = "PREISENERGIE"
24+
PROFIFORMS = "PROFIFORMS"
25+
SIV = "SIV"
26+
STADTWERKE_SCHWAEBISCH_HALL = "STADTWERKE_SCHWAEBISCH_HALL"
27+
TAKTSOFT = "TAKTSOFT"

0 commit comments

Comments
 (0)