From eab1bcac3e79a415efe0e59d66622b3fccb1ee4a Mon Sep 17 00:00:00 2001 From: "marvin.rossier" Date: Tue, 15 Apr 2025 12:37:27 +0200 Subject: [PATCH 01/24] =?UTF-8?q?WIP:=20=C3=84nderungen=20an=20verschieden?= =?UTF-8?q?en=20Datein=20zur=20Implementierung=20von=20Tarifzeiten=20mit?= =?UTF-8?q?=20Bezug=20auf=20Modul3=20im=20ene't=20Kontext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bo4e/bo/geschaeftsobjekt.py | 5 +++- src/bo4e/bo/tarifzeiten.py | 33 ++++++++++++++++++++++++++ src/bo4e/com/tarifzeit.py | 25 +++++++++++++++++++ src/bo4e/com/tarifzeitenzeitscheibe.py | 24 +++++++++++++++++++ src/bo4e/enum/botyp.py | 1 + src/bo4e/enum/comtyp.py | 2 ++ src/bo4e/enum/tarifstufen.py | 11 +++++++++ tests/test_preisposition.py | 4 ++-- 8 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 src/bo4e/bo/tarifzeiten.py create mode 100644 src/bo4e/com/tarifzeit.py create mode 100644 src/bo4e/com/tarifzeitenzeitscheibe.py create mode 100644 src/bo4e/enum/tarifstufen.py diff --git a/src/bo4e/bo/geschaeftsobjekt.py b/src/bo4e/bo/geschaeftsobjekt.py index 1b5ea648c..f7801d59f 100644 --- a/src/bo4e/bo/geschaeftsobjekt.py +++ b/src/bo4e/bo/geschaeftsobjekt.py @@ -1,6 +1,7 @@ # pylint: disable=missing-module-docstring from decimal import Decimal -from typing import Annotated, Optional +from typing import Annotated, Literal, Optional + from humps.main import camelize @@ -9,6 +10,7 @@ from bo4e.version import __version__ from bo4e.zusatzattribut import ZusatzAttribut +from ..enum.botyp import BoTyp from ..utils import postprocess_docstring @@ -36,6 +38,7 @@ class Geschaeftsobjekt(BaseModel): # pragma: no cover Version der BO-Struktur aka "fachliche Versionierung" """ + typ: Annotated[Optional[Literal[BoTyp.GESCHAEFTSOBJEKT]], Field(alias="_typ")] = BoTyp.GESCHAEFTSOBJEKT zusatz_attribute: Optional[list["ZusatzAttribut"]] = None # zusatz_attribute is a list of ZusatzAttribut objects which are used to store additional information diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py new file mode 100644 index 000000000..c61855365 --- /dev/null +++ b/src/bo4e/bo/tarifzeiten.py @@ -0,0 +1,33 @@ +""" +Contains Tarifzeiten class +""" + +from typing import List, Optional, Annotated, Literal, TYPE_CHECKING +from pydantic import Field + +from ..enum.botyp import BoTyp +from ..utils import postprocess_docstring +from .geschaeftsobjekt import Geschaeftsobjekt + +if TYPE_CHECKING: + from ..bo.marktteilnehmer import Marktteilnehmer + from ..com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe + + +@postprocess_docstring +class Tarifzeiten(Geschaeftsobjekt): + """ + Abbildung von Tarifzeiten, wann welche Preise gelten oder unter welchen Bedingungen. + """ + + typ: Annotated[Optional[Literal[BoTyp.TARIFZEITEN]], Field(alias="_typ")] = BoTyp.TARIFZEITEN + """Typ des Geschäftsobjekts – default 'TARIFZEITEN'""" + + version: Optional[str] = Field(default=None, alias="_version") + """Optionales Versionsfeld""" + + marktteilnehmer: Optional["Marktteilnehmer"] = None + """Optionaler Verweis auf den Anbieter / Marktpartner""" + + zeitscheiben: Optional[List["TarifzeitenZeitscheibe"]] = None + """Liste von Zeitabschnitten, die tarifliche Regelungen enthalten""" \ No newline at end of file diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeit.py new file mode 100644 index 000000000..f6ca1ca47 --- /dev/null +++ b/src/bo4e/com/tarifzeit.py @@ -0,0 +1,25 @@ +from typing import Optional, Annotated, Literal, TYPE_CHECKING +from pydantic import Field + +from .. import COM, ComTyp +from ..utils import postprocess_docstring + +if TYPE_CHECKING: + from ..com.zeitraum import Zeitraum + from ..enum.tarifstufen import Tarifstufen + + +@postprocess_docstring +class Tarifzeit(COM): + """ + Tarifzeit mit Zuordnung zu einem Zeitraum und einer optionalen Tarifstufe. + """ + + typ: Annotated[Optional[Literal[ComTyp.TARIFZEIT]], Field(alias="_typ")] = ComTyp.TARIFZEIT + """Typ der Tarifzeit – default 'TARIFZEIT'""" + + zeitraum: Optional["Zeitraum"] = None + """Gültigkeitszeitraum der Tarifzeit""" + + tarifstufe: Optional[Tarifstufen] = None + """Optional: Angabe der Tarifstufe, z. B. HT, NT, ST""" diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py new file mode 100644 index 000000000..136aaf8f1 --- /dev/null +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -0,0 +1,24 @@ +from typing import Optional, List, Annotated, TYPE_CHECKING, Literal +from pydantic import Field + +from .. import COM, ComTyp +from ..utils import postprocess_docstring + +if TYPE_CHECKING: + from ..com.zeitraum import Zeitraum + from ..com.tarifzeit import Tarifzeit + + +@postprocess_docstring +class TarifzeitenZeitscheibe(COM): + """ + Eine Zeitscheibe innerhalb der Tarifzeiten mit zugehöriger Gültigkeit und Tarifzeitabschnitten. + """ + typ: Annotated[Optional[Literal[ComTyp.TARIFZEITENZEITSCHEIBE]], Field(alias="_typ")] = ComTyp.TARIFZEITENZEITSCHEIBE + """Typ dieser Zeitscheibe - Default 'TARIFZEITENZEITSCHEIBE'""" + + gueltigkeit: Optional[Zeitraum] = None + """Zeitraum, in dem diese Zeitscheibe gültig ist""" + + tarifzeiten: Optional[List[Tarifzeit]] = None + """Liste von Tarifzeiten, z. B. NT, HT oder weitere Zeitmodelle""" diff --git a/src/bo4e/enum/botyp.py b/src/bo4e/enum/botyp.py index 846f1bd5d..beae1aa88 100644 --- a/src/bo4e/enum/botyp.py +++ b/src/bo4e/enum/botyp.py @@ -48,6 +48,7 @@ class BoTyp(StrEnum): TARIFINFO = "TARIFINFO" TARIFKOSTEN = "TARIFKOSTEN" TARIFPREISBLATT = "TARIFPREISBLATT" + TARIFZEITEN = "TARIFZEITEN" VERTRAG = "VERTRAG" ZAEHLER = "ZAEHLER" ZEITREIHE = "ZEITREIHE" diff --git a/src/bo4e/enum/comtyp.py b/src/bo4e/enum/comtyp.py index afca3294d..d7820cec8 100644 --- a/src/bo4e/enum/comtyp.py +++ b/src/bo4e/enum/comtyp.py @@ -61,6 +61,8 @@ class ComTyp(StrEnum): TARIFPREISPOSITION = "TARIFPREISPOSITION" TARIFPREISPOSITIONPROORT = "TARIFPREISPOSITIONPROORT" TARIFPREISSTAFFELPROORT = "TARIFPREISSTAFFELPROORT" + TARIFZEIT = "TARIFZEIT" + TARIFZEITENZEITSCHEIBE = "TARIFZEITENZEITSCHEIBE" UNTERSCHRIFT = "UNTERSCHRIFT" VERBRAUCH = "VERBRAUCH" VERTRAGSKONDITIONEN = "VERTRAGSKONDITIONEN" diff --git a/src/bo4e/enum/tarifstufen.py b/src/bo4e/enum/tarifstufen.py new file mode 100644 index 000000000..d035ac8b9 --- /dev/null +++ b/src/bo4e/enum/tarifstufen.py @@ -0,0 +1,11 @@ +from enum import Enum + + +class Tarifstufen(str, Enum): + """ + Tarifstufen wie z.B. HT (Hochtarif), NT (Niedertarif), ST (Standardtarif). + """ + + ST = "ST" + HT = "HT" + NT = "NT" diff --git a/tests/test_preisposition.py b/tests/test_preisposition.py index def7bd5cf..eb483f085 100644 --- a/tests/test_preisposition.py +++ b/tests/test_preisposition.py @@ -2,6 +2,8 @@ import pytest +from bo4e.enum.tarifzeit import Tarifzeit + from bo4e import ( BDEWArtikelnummer, Bemessungsgroesse, @@ -10,12 +12,10 @@ Mengeneinheit, Preisposition, Preisstaffel, - Tarifzeit, Waehrungseinheit, ) from tests.serialization_helper import assert_serialization_roundtrip - class TestPreisposition: @pytest.mark.parametrize( "preisposition", From 575246557eee50e5fa8b1d213c1e9cec6cbbf922 Mon Sep 17 00:00:00 2001 From: "marvin.rossier" Date: Thu, 17 Apr 2025 10:59:23 +0200 Subject: [PATCH 02/24] =?UTF-8?q?WIP:=20=C3=84nderungen=20an=20verschieden?= =?UTF-8?q?en=20Datein=20zur=20Implementierung=20von=20Tarifzeiten=20mit?= =?UTF-8?q?=20Bezug=20auf=20Modul3=20im=20ene't=20Kontext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bo4e/bo/tarifzeiten.py | 7 +++---- src/bo4e/com/tarifzeit.py | 2 +- src/bo4e/com/tarifzeitenzeitscheibe.py | 10 +++++----- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py index c61855365..f62e20379 100644 --- a/src/bo4e/bo/tarifzeiten.py +++ b/src/bo4e/bo/tarifzeiten.py @@ -9,9 +9,8 @@ from ..utils import postprocess_docstring from .geschaeftsobjekt import Geschaeftsobjekt -if TYPE_CHECKING: - from ..bo.marktteilnehmer import Marktteilnehmer - from ..com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe +from ..bo.marktteilnehmer import Marktteilnehmer +from ..com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe @postprocess_docstring @@ -30,4 +29,4 @@ class Tarifzeiten(Geschaeftsobjekt): """Optionaler Verweis auf den Anbieter / Marktpartner""" zeitscheiben: Optional[List["TarifzeitenZeitscheibe"]] = None - """Liste von Zeitabschnitten, die tarifliche Regelungen enthalten""" \ No newline at end of file + """Liste von Zeitabschnitten, die tarifliche Regelungen enthalten""" diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeit.py index f6ca1ca47..03ac5f03a 100644 --- a/src/bo4e/com/tarifzeit.py +++ b/src/bo4e/com/tarifzeit.py @@ -3,10 +3,10 @@ from .. import COM, ComTyp from ..utils import postprocess_docstring +from ..enum.tarifstufen import Tarifstufen if TYPE_CHECKING: from ..com.zeitraum import Zeitraum - from ..enum.tarifstufen import Tarifstufen @postprocess_docstring diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index 136aaf8f1..4d04dc599 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -1,12 +1,11 @@ -from typing import Optional, List, Annotated, TYPE_CHECKING, Literal +from typing import Optional, List, Annotated, Literal from pydantic import Field from .. import COM, ComTyp from ..utils import postprocess_docstring -if TYPE_CHECKING: - from ..com.zeitraum import Zeitraum - from ..com.tarifzeit import Tarifzeit +from ..com.zeitraum import Zeitraum +from ..com.tarifzeit import Tarifzeit @postprocess_docstring @@ -14,7 +13,8 @@ class TarifzeitenZeitscheibe(COM): """ Eine Zeitscheibe innerhalb der Tarifzeiten mit zugehöriger Gültigkeit und Tarifzeitabschnitten. """ - typ: Annotated[Optional[Literal[ComTyp.TARIFZEITENZEITSCHEIBE]], Field(alias="_typ")] = ComTyp.TARIFZEITENZEITSCHEIBE + typ: Annotated[ + Optional[Literal[ComTyp.TARIFZEITENZEITSCHEIBE]], Field(alias="_typ")] = ComTyp.TARIFZEITENZEITSCHEIBE """Typ dieser Zeitscheibe - Default 'TARIFZEITENZEITSCHEIBE'""" gueltigkeit: Optional[Zeitraum] = None From 370e6c09bb85907dfaa6384b0644654aff0fb56a Mon Sep 17 00:00:00 2001 From: "marvin.rossier" Date: Tue, 22 Apr 2025 08:56:39 +0200 Subject: [PATCH 03/24] =?UTF-8?q?WIP:=20=C3=84nderungen=20an=20verschieden?= =?UTF-8?q?en=20Datein=20zur=20Implementierung=20von=20Tarifzeiten=20mit?= =?UTF-8?q?=20Bezug=20auf=20Modul3=20im=20ene't=20Kontext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bo4e/bo/tarifzeiten.py | 2 +- src/bo4e/com/tarifzeit.py | 4 ++++ src/bo4e/com/tarifzeitenzeitscheibe.py | 4 ++++ src/bo4e/enum/tarifstufen.py | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py index f62e20379..3abc02da1 100644 --- a/src/bo4e/bo/tarifzeiten.py +++ b/src/bo4e/bo/tarifzeiten.py @@ -2,7 +2,7 @@ Contains Tarifzeiten class """ -from typing import List, Optional, Annotated, Literal, TYPE_CHECKING +from typing import List, Optional, Annotated, Literal from pydantic import Field from ..enum.botyp import BoTyp diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeit.py index 03ac5f03a..097b4f7a4 100644 --- a/src/bo4e/com/tarifzeit.py +++ b/src/bo4e/com/tarifzeit.py @@ -1,3 +1,7 @@ +""" +Contains Tarifzeit class +""" + from typing import Optional, Annotated, Literal, TYPE_CHECKING from pydantic import Field diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index 4d04dc599..97d095037 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -1,3 +1,7 @@ +""" +Contains TarifzeitenZeitscheibe class +""" + from typing import Optional, List, Annotated, Literal from pydantic import Field diff --git a/src/bo4e/enum/tarifstufen.py b/src/bo4e/enum/tarifstufen.py index d035ac8b9..3cc4944e8 100644 --- a/src/bo4e/enum/tarifstufen.py +++ b/src/bo4e/enum/tarifstufen.py @@ -1,3 +1,4 @@ +# pylint: disable=missing-module-docstring from enum import Enum From 814abbf25e3fa321dc21182752bef1f0568103af Mon Sep 17 00:00:00 2001 From: "marvin.rossier" Date: Tue, 22 Apr 2025 09:17:19 +0200 Subject: [PATCH 04/24] =?UTF-8?q?WIP:=20=C3=84nderungen=20an=20verschieden?= =?UTF-8?q?en=20Datein=20zur=20Implementierung=20von=20Tarifzeiten=20mit?= =?UTF-8?q?=20Bezug=20auf=20Modul3=20im=20ene't=20Kontext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bo4e/bo/geschaeftsobjekt.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bo4e/bo/geschaeftsobjekt.py b/src/bo4e/bo/geschaeftsobjekt.py index f7801d59f..451c688a6 100644 --- a/src/bo4e/bo/geschaeftsobjekt.py +++ b/src/bo4e/bo/geschaeftsobjekt.py @@ -1,6 +1,6 @@ # pylint: disable=missing-module-docstring from decimal import Decimal -from typing import Annotated, Literal, Optional +from typing import Annotated, Optional from humps.main import camelize @@ -38,7 +38,7 @@ class Geschaeftsobjekt(BaseModel): # pragma: no cover Version der BO-Struktur aka "fachliche Versionierung" """ - typ: Annotated[Optional[Literal[BoTyp.GESCHAEFTSOBJEKT]], Field(alias="_typ")] = BoTyp.GESCHAEFTSOBJEKT + typ: Annotated[Optional[BoTyp], Field(alias="_typ")] = BoTyp.GESCHAEFTSOBJEKT zusatz_attribute: Optional[list["ZusatzAttribut"]] = None # zusatz_attribute is a list of ZusatzAttribut objects which are used to store additional information From bfce41daf1fc613c00b4a81f23e8f1e15f0182bc Mon Sep 17 00:00:00 2001 From: "marvin.rossier" Date: Tue, 22 Apr 2025 10:36:52 +0200 Subject: [PATCH 05/24] =?UTF-8?q?WIP:=20=C3=84nderungen=20an=20verschieden?= =?UTF-8?q?en=20Datein=20zur=20Implementierung=20von=20Tarifzeiten=20mit?= =?UTF-8?q?=20Bezug=20auf=20Modul3=20im=20ene't=20Kontext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bo4e/com/preisposition.py | 4 ++-- src/bo4e/com/tarifzeit.py | 8 +++----- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/bo4e/com/preisposition.py b/src/bo4e/com/preisposition.py index e3504be8e..41553c4c1 100644 --- a/src/bo4e/com/preisposition.py +++ b/src/bo4e/com/preisposition.py @@ -12,6 +12,7 @@ from ..enum.comtyp import ComTyp from ..utils import postprocess_docstring from .com import COM +from ..enum.tarifzeit import Tarifzeit if TYPE_CHECKING: from ..enum.bdewartikelnummer import BDEWArtikelnummer @@ -19,7 +20,6 @@ from ..enum.kalkulationsmethode import Kalkulationsmethode from ..enum.leistungstyp import Leistungstyp from ..enum.mengeneinheit import Mengeneinheit - from ..enum.tarifzeit import Tarifzeit from ..enum.waehrungseinheit import Waehrungseinheit from .preisstaffel import Preisstaffel @@ -60,7 +60,7 @@ class Preisposition(COM): Die Zeit(dauer) auf die sich der Preis bezieht. Z.B. ein Jahr für einen Leistungspreis der in €/kW/Jahr ausgegeben wird """ - tarifzeit: Optional["Tarifzeit"] = None + tarifzeit: Optional[Tarifzeit] = None """Festlegung, für welche Tarifzeit der Preis hier festgelegt ist""" bdew_artikelnummer: Optional["BDEWArtikelnummer"] = None """ diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeit.py index 097b4f7a4..97875d8b4 100644 --- a/src/bo4e/com/tarifzeit.py +++ b/src/bo4e/com/tarifzeit.py @@ -2,15 +2,13 @@ Contains Tarifzeit class """ -from typing import Optional, Annotated, Literal, TYPE_CHECKING +from typing import Optional, Annotated, Literal from pydantic import Field from .. import COM, ComTyp from ..utils import postprocess_docstring from ..enum.tarifstufen import Tarifstufen - -if TYPE_CHECKING: - from ..com.zeitraum import Zeitraum +from ..com.zeitraum import Zeitraum @postprocess_docstring @@ -22,7 +20,7 @@ class Tarifzeit(COM): typ: Annotated[Optional[Literal[ComTyp.TARIFZEIT]], Field(alias="_typ")] = ComTyp.TARIFZEIT """Typ der Tarifzeit – default 'TARIFZEIT'""" - zeitraum: Optional["Zeitraum"] = None + zeitraum: Optional[Zeitraum] = None """Gültigkeitszeitraum der Tarifzeit""" tarifstufe: Optional[Tarifstufen] = None From 5b5ca65e5ca5041eb5963242daee754d9d658e55 Mon Sep 17 00:00:00 2001 From: "marvin.rossier" Date: Tue, 22 Apr 2025 11:33:53 +0200 Subject: [PATCH 06/24] =?UTF-8?q?WIP:=20=C3=84nderungen=20an=20verschieden?= =?UTF-8?q?en=20Datein=20zur=20Implementierung=20von=20Tarifzeiten=20mit?= =?UTF-8?q?=20Bezug=20auf=20Modul3=20im=20ene't=20Kontext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_tarifzeit.py | 29 ++++++++++++++++++++ tests/test_tarifzeiten.py | 41 ++++++++++++++++++++++++++++ tests/test_tarifzeitenzeitscheibe.py | 39 ++++++++++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 tests/test_tarifzeit.py create mode 100644 tests/test_tarifzeiten.py create mode 100644 tests/test_tarifzeitenzeitscheibe.py diff --git a/tests/test_tarifzeit.py b/tests/test_tarifzeit.py new file mode 100644 index 000000000..356098372 --- /dev/null +++ b/tests/test_tarifzeit.py @@ -0,0 +1,29 @@ +import pytest + +from datetime import date +from bo4e import Zeitraum +from bo4e.enum.tarifstufen import Tarifstufen +from bo4e.com.tarifzeit import Tarifzeit +from tests.serialization_helper import assert_serialization_roundtrip + + +class TestTarifzeit: + @pytest.mark.parametrize( + "tarifzeit", + [ + pytest.param( + Tarifzeit( + zeitraum=Zeitraum( + startdatum=date(2025, 1, 1), + enddatum=date(2025, 1, 31), + ), + tarifstufe=Tarifstufen("HT"), + ) + ) + ] + ) + def test_serialization_roundtrip(self, tarifzeit: Tarifzeit) -> None: + """ + Test de-/serialisation of Tarifzeit. + """ + assert_serialization_roundtrip(tarifzeit) \ No newline at end of file diff --git a/tests/test_tarifzeiten.py b/tests/test_tarifzeiten.py new file mode 100644 index 000000000..1595e4a33 --- /dev/null +++ b/tests/test_tarifzeiten.py @@ -0,0 +1,41 @@ +from datetime import date + +import pytest + +from bo4e import Marktteilnehmer, Zeitraum +from bo4e.bo.tarifzeiten import Tarifzeiten +from bo4e.com.tarifzeit import Tarifzeit +from bo4e.com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe +from bo4e.enum.tarifstufen import Tarifstufen +from tests.serialization_helper import assert_serialization_roundtrip + + +class TestTarifzeiten: + @pytest.mark.parametrize( + "tarifzeiten", + [ + pytest.param( + Tarifzeiten( + marktteilnehmer=Marktteilnehmer(), + zeitscheiben=[TarifzeitenZeitscheibe( + gueltigkeit=Zeitraum( + startdatum=date(2025, 1, 1), + enddatum=date(2025, 1, 31), + ), + tarifzeiten=[Tarifzeit( + zeitraum=Zeitraum( + startdatum=date(2025, 1, 1), + enddatum=date(2025, 1, 31), + ), + tarifstufe=Tarifstufen("HT"), + )])] + ) + ) + + ] + ) + def test_serialization_roundtrip(self, tarifzeiten: Tarifzeiten) -> None: + """ + Test de-/serialisation of Tarifzeit. + """ + assert_serialization_roundtrip(tarifzeiten) diff --git a/tests/test_tarifzeitenzeitscheibe.py b/tests/test_tarifzeitenzeitscheibe.py new file mode 100644 index 000000000..5cf9558e6 --- /dev/null +++ b/tests/test_tarifzeitenzeitscheibe.py @@ -0,0 +1,39 @@ +from datetime import date + +import pytest + +from bo4e import Zeitraum +from bo4e.com.tarifzeit import Tarifzeit +from bo4e.com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe +from bo4e.enum.tarifstufen import Tarifstufen +from tests.serialization_helper import assert_serialization_roundtrip + + +class TestTarifzeitenZeitscheibe: + @pytest.mark.parametrize( + "zeitscheibe", + [ + pytest.param( + TarifzeitenZeitscheibe( + gueltigkeit=Zeitraum( + startdatum=date(2025, 1, 1), + enddatum=date(2025, 1, 31), + ), + tarifzeiten=[ + Tarifzeit( + zeitraum=Zeitraum( + startdatum=date(2025, 1, 1), + enddatum=date(2025, 1, 31), + ), + tarifstufe=Tarifstufen("HT"), + ) + ], + ) + ) + ] + ) + def test_serialization_roundtrip(self, zeitscheibe: TarifzeitenZeitscheibe) -> None: + """ + Test de-/serialisation of TarifzeitenZeitscheibe. + """ + assert_serialization_roundtrip(zeitscheibe) From 144bc0a3f6d03045817ebeb8890f9f0cf45040b1 Mon Sep 17 00:00:00 2001 From: "marvin.rossier" Date: Tue, 29 Apr 2025 06:56:57 +0200 Subject: [PATCH 07/24] =?UTF-8?q?WIP:=20=C3=84nderungen=20an=20verschieden?= =?UTF-8?q?en=20Datein=20zur=20Implementierung=20von=20Tarifzeiten=20mit?= =?UTF-8?q?=20Bezug=20auf=20Modul3=20im=20ene't=20Kontext?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bo4e/bo/tarifzeiten.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py index 3abc02da1..3bde9fb20 100644 --- a/src/bo4e/bo/tarifzeiten.py +++ b/src/bo4e/bo/tarifzeiten.py @@ -22,9 +22,6 @@ class Tarifzeiten(Geschaeftsobjekt): typ: Annotated[Optional[Literal[BoTyp.TARIFZEITEN]], Field(alias="_typ")] = BoTyp.TARIFZEITEN """Typ des Geschäftsobjekts – default 'TARIFZEITEN'""" - version: Optional[str] = Field(default=None, alias="_version") - """Optionales Versionsfeld""" - marktteilnehmer: Optional["Marktteilnehmer"] = None """Optionaler Verweis auf den Anbieter / Marktpartner""" From ba2bd5d3d193fb519494023257db56825309e645 Mon Sep 17 00:00:00 2001 From: "marvin.rossier" Date: Mon, 5 May 2025 07:11:48 +0200 Subject: [PATCH 08/24] WIP: Tarifstufen entfernt und durch Str ersetzt --- src/bo4e/com/tarifzeit.py | 3 +-- src/bo4e/enum/tarifstufen.py | 12 ------------ tests/test_tarifzeit.py | 3 +-- tests/test_tarifzeiten.py | 3 +-- tests/test_tarifzeitenzeitscheibe.py | 3 +-- 5 files changed, 4 insertions(+), 20 deletions(-) delete mode 100644 src/bo4e/enum/tarifstufen.py diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeit.py index 97875d8b4..19611c11a 100644 --- a/src/bo4e/com/tarifzeit.py +++ b/src/bo4e/com/tarifzeit.py @@ -7,7 +7,6 @@ from .. import COM, ComTyp from ..utils import postprocess_docstring -from ..enum.tarifstufen import Tarifstufen from ..com.zeitraum import Zeitraum @@ -23,5 +22,5 @@ class Tarifzeit(COM): zeitraum: Optional[Zeitraum] = None """Gültigkeitszeitraum der Tarifzeit""" - tarifstufe: Optional[Tarifstufen] = None + tarifstufe: Optional[str] = None """Optional: Angabe der Tarifstufe, z. B. HT, NT, ST""" diff --git a/src/bo4e/enum/tarifstufen.py b/src/bo4e/enum/tarifstufen.py deleted file mode 100644 index 3cc4944e8..000000000 --- a/src/bo4e/enum/tarifstufen.py +++ /dev/null @@ -1,12 +0,0 @@ -# pylint: disable=missing-module-docstring -from enum import Enum - - -class Tarifstufen(str, Enum): - """ - Tarifstufen wie z.B. HT (Hochtarif), NT (Niedertarif), ST (Standardtarif). - """ - - ST = "ST" - HT = "HT" - NT = "NT" diff --git a/tests/test_tarifzeit.py b/tests/test_tarifzeit.py index 356098372..0602dabcd 100644 --- a/tests/test_tarifzeit.py +++ b/tests/test_tarifzeit.py @@ -2,7 +2,6 @@ from datetime import date from bo4e import Zeitraum -from bo4e.enum.tarifstufen import Tarifstufen from bo4e.com.tarifzeit import Tarifzeit from tests.serialization_helper import assert_serialization_roundtrip @@ -17,7 +16,7 @@ class TestTarifzeit: startdatum=date(2025, 1, 1), enddatum=date(2025, 1, 31), ), - tarifstufe=Tarifstufen("HT"), + tarifstufe="HT", ) ) ] diff --git a/tests/test_tarifzeiten.py b/tests/test_tarifzeiten.py index 1595e4a33..27c83c990 100644 --- a/tests/test_tarifzeiten.py +++ b/tests/test_tarifzeiten.py @@ -6,7 +6,6 @@ from bo4e.bo.tarifzeiten import Tarifzeiten from bo4e.com.tarifzeit import Tarifzeit from bo4e.com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe -from bo4e.enum.tarifstufen import Tarifstufen from tests.serialization_helper import assert_serialization_roundtrip @@ -27,7 +26,7 @@ class TestTarifzeiten: startdatum=date(2025, 1, 1), enddatum=date(2025, 1, 31), ), - tarifstufe=Tarifstufen("HT"), + tarifstufe="HT", )])] ) ) diff --git a/tests/test_tarifzeitenzeitscheibe.py b/tests/test_tarifzeitenzeitscheibe.py index 5cf9558e6..c08f66dc9 100644 --- a/tests/test_tarifzeitenzeitscheibe.py +++ b/tests/test_tarifzeitenzeitscheibe.py @@ -5,7 +5,6 @@ from bo4e import Zeitraum from bo4e.com.tarifzeit import Tarifzeit from bo4e.com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe -from bo4e.enum.tarifstufen import Tarifstufen from tests.serialization_helper import assert_serialization_roundtrip @@ -25,7 +24,7 @@ class TestTarifzeitenZeitscheibe: startdatum=date(2025, 1, 1), enddatum=date(2025, 1, 31), ), - tarifstufe=Tarifstufen("HT"), + tarifstufe="HT", ) ], ) From 20141afaea3b6fe643a54dddf711bddf01f67eac Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 10:28:24 +0100 Subject: [PATCH 09/24] Linting --- src/bo4e/bo/geschaeftsobjekt.py | 2 +- src/bo4e/bo/tarifzeiten.py | 8 ++++---- src/bo4e/com/preisposition.py | 2 +- src/bo4e/com/tarifzeit.py | 4 ++-- src/bo4e/com/tarifzeitenzeitscheibe.py | 13 +++++++------ tests/test_preisposition.py | 3 +-- tests/test_tarifzeit.py | 7 ++++--- tests/test_tarifzeiten.py | 26 +++++++++++++++----------- tests/test_tarifzeitenzeitscheibe.py | 2 +- 9 files changed, 36 insertions(+), 31 deletions(-) diff --git a/src/bo4e/bo/geschaeftsobjekt.py b/src/bo4e/bo/geschaeftsobjekt.py index 451c688a6..f0dccddfc 100644 --- a/src/bo4e/bo/geschaeftsobjekt.py +++ b/src/bo4e/bo/geschaeftsobjekt.py @@ -10,8 +10,8 @@ from bo4e.version import __version__ from bo4e.zusatzattribut import ZusatzAttribut -from ..enum.botyp import BoTyp +from ..enum.botyp import BoTyp from ..utils import postprocess_docstring # pylint: disable=too-few-public-methods diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py index 3bde9fb20..31d3224e2 100644 --- a/src/bo4e/bo/tarifzeiten.py +++ b/src/bo4e/bo/tarifzeiten.py @@ -2,16 +2,16 @@ Contains Tarifzeiten class """ -from typing import List, Optional, Annotated, Literal +from typing import Annotated, List, Literal, Optional + from pydantic import Field +from ..bo.marktteilnehmer import Marktteilnehmer +from ..com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe from ..enum.botyp import BoTyp from ..utils import postprocess_docstring from .geschaeftsobjekt import Geschaeftsobjekt -from ..bo.marktteilnehmer import Marktteilnehmer -from ..com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe - @postprocess_docstring class Tarifzeiten(Geschaeftsobjekt): diff --git a/src/bo4e/com/preisposition.py b/src/bo4e/com/preisposition.py index 41553c4c1..b19f6cd7e 100644 --- a/src/bo4e/com/preisposition.py +++ b/src/bo4e/com/preisposition.py @@ -10,9 +10,9 @@ from pydantic import Field from ..enum.comtyp import ComTyp +from ..enum.tarifzeit import Tarifzeit from ..utils import postprocess_docstring from .com import COM -from ..enum.tarifzeit import Tarifzeit if TYPE_CHECKING: from ..enum.bdewartikelnummer import BDEWArtikelnummer diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeit.py index 19611c11a..fd3a42c2b 100644 --- a/src/bo4e/com/tarifzeit.py +++ b/src/bo4e/com/tarifzeit.py @@ -2,12 +2,12 @@ Contains Tarifzeit class """ -from typing import Optional, Annotated, Literal +from typing import Annotated, Literal, Optional from pydantic import Field from .. import COM, ComTyp -from ..utils import postprocess_docstring from ..com.zeitraum import Zeitraum +from ..utils import postprocess_docstring @postprocess_docstring diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index 97d095037..b112a15ca 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -2,14 +2,14 @@ Contains TarifzeitenZeitscheibe class """ -from typing import Optional, List, Annotated, Literal +from typing import Annotated, List, Literal, Optional + from pydantic import Field from .. import COM, ComTyp -from ..utils import postprocess_docstring - -from ..com.zeitraum import Zeitraum from ..com.tarifzeit import Tarifzeit +from ..com.zeitraum import Zeitraum +from ..utils import postprocess_docstring @postprocess_docstring @@ -17,8 +17,9 @@ class TarifzeitenZeitscheibe(COM): """ Eine Zeitscheibe innerhalb der Tarifzeiten mit zugehöriger Gültigkeit und Tarifzeitabschnitten. """ - typ: Annotated[ - Optional[Literal[ComTyp.TARIFZEITENZEITSCHEIBE]], Field(alias="_typ")] = ComTyp.TARIFZEITENZEITSCHEIBE + typ: Annotated[Optional[Literal[ComTyp.TARIFZEITENZEITSCHEIBE]], Field(alias="_typ")] = ( + ComTyp.TARIFZEITENZEITSCHEIBE + ) """Typ dieser Zeitscheibe - Default 'TARIFZEITENZEITSCHEIBE'""" gueltigkeit: Optional[Zeitraum] = None diff --git a/tests/test_preisposition.py b/tests/test_preisposition.py index eb483f085..ab2638205 100644 --- a/tests/test_preisposition.py +++ b/tests/test_preisposition.py @@ -2,8 +2,6 @@ import pytest -from bo4e.enum.tarifzeit import Tarifzeit - from bo4e import ( BDEWArtikelnummer, Bemessungsgroesse, @@ -14,6 +12,7 @@ Preisstaffel, Waehrungseinheit, ) +from bo4e.enum.tarifzeit import Tarifzeit from tests.serialization_helper import assert_serialization_roundtrip class TestPreisposition: diff --git a/tests/test_tarifzeit.py b/tests/test_tarifzeit.py index 0602dabcd..932493c05 100644 --- a/tests/test_tarifzeit.py +++ b/tests/test_tarifzeit.py @@ -1,6 +1,7 @@ +from datetime import date + import pytest -from datetime import date from bo4e import Zeitraum from bo4e.com.tarifzeit import Tarifzeit from tests.serialization_helper import assert_serialization_roundtrip @@ -19,10 +20,10 @@ class TestTarifzeit: tarifstufe="HT", ) ) - ] + ], ) def test_serialization_roundtrip(self, tarifzeit: Tarifzeit) -> None: """ Test de-/serialisation of Tarifzeit. """ - assert_serialization_roundtrip(tarifzeit) \ No newline at end of file + assert_serialization_roundtrip(tarifzeit) diff --git a/tests/test_tarifzeiten.py b/tests/test_tarifzeiten.py index 27c83c990..39e53a923 100644 --- a/tests/test_tarifzeiten.py +++ b/tests/test_tarifzeiten.py @@ -16,22 +16,26 @@ class TestTarifzeiten: pytest.param( Tarifzeiten( marktteilnehmer=Marktteilnehmer(), - zeitscheiben=[TarifzeitenZeitscheibe( - gueltigkeit=Zeitraum( - startdatum=date(2025, 1, 1), - enddatum=date(2025, 1, 31), - ), - tarifzeiten=[Tarifzeit( - zeitraum=Zeitraum( + zeitscheiben=[ + TarifzeitenZeitscheibe( + gueltigkeit=Zeitraum( startdatum=date(2025, 1, 1), enddatum=date(2025, 1, 31), ), - tarifstufe="HT", - )])] + tarifzeiten=[ + Tarifzeit( + zeitraum=Zeitraum( + startdatum=date(2025, 1, 1), + enddatum=date(2025, 1, 31), + ), + tarifstufe="HT", + ) + ], + ) + ], ) ) - - ] + ], ) def test_serialization_roundtrip(self, tarifzeiten: Tarifzeiten) -> None: """ diff --git a/tests/test_tarifzeitenzeitscheibe.py b/tests/test_tarifzeitenzeitscheibe.py index c08f66dc9..3da36ea74 100644 --- a/tests/test_tarifzeitenzeitscheibe.py +++ b/tests/test_tarifzeitenzeitscheibe.py @@ -29,7 +29,7 @@ class TestTarifzeitenZeitscheibe: ], ) ) - ] + ], ) def test_serialization_roundtrip(self, zeitscheibe: TarifzeitenZeitscheibe) -> None: """ From 3c084cdf21f6b4018094deed025d2dc56ae3c1b4 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 10:41:00 +0100 Subject: [PATCH 10/24] Linting --- src/bo4e/bo/geschaeftsobjekt.py | 1 - src/bo4e/com/tarifzeit.py | 1 + src/bo4e/com/tarifzeitenzeitscheibe.py | 1 + tests/test_preisposition.py | 1 + 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bo4e/bo/geschaeftsobjekt.py b/src/bo4e/bo/geschaeftsobjekt.py index f0dccddfc..6823365e3 100644 --- a/src/bo4e/bo/geschaeftsobjekt.py +++ b/src/bo4e/bo/geschaeftsobjekt.py @@ -2,7 +2,6 @@ from decimal import Decimal from typing import Annotated, Optional - from humps.main import camelize # pylint: disable=no-name-in-module diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeit.py index fd3a42c2b..b3ec4c804 100644 --- a/src/bo4e/com/tarifzeit.py +++ b/src/bo4e/com/tarifzeit.py @@ -3,6 +3,7 @@ """ from typing import Annotated, Literal, Optional + from pydantic import Field from .. import COM, ComTyp diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index b112a15ca..03fb84ee4 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -17,6 +17,7 @@ class TarifzeitenZeitscheibe(COM): """ Eine Zeitscheibe innerhalb der Tarifzeiten mit zugehöriger Gültigkeit und Tarifzeitabschnitten. """ + typ: Annotated[Optional[Literal[ComTyp.TARIFZEITENZEITSCHEIBE]], Field(alias="_typ")] = ( ComTyp.TARIFZEITENZEITSCHEIBE ) diff --git a/tests/test_preisposition.py b/tests/test_preisposition.py index ab2638205..7add808f2 100644 --- a/tests/test_preisposition.py +++ b/tests/test_preisposition.py @@ -15,6 +15,7 @@ from bo4e.enum.tarifzeit import Tarifzeit from tests.serialization_helper import assert_serialization_roundtrip + class TestPreisposition: @pytest.mark.parametrize( "preisposition", From d906faf30b083242c6a7fba57b4b3c5ab8908dfd Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 10:56:02 +0100 Subject: [PATCH 11/24] Testfix: serialization_roundtrip nur mit Toplevel Attributen --- src/bo4e/com/tarifzeit.py | 2 +- src/bo4e/com/tarifzeitenzeitscheibe.py | 4 ++-- tests/test_tarifzeit.py | 8 +++----- tests/test_tarifzeiten.py | 26 +++++--------------------- tests/test_tarifzeitenzeitscheibe.py | 22 ++++++---------------- 5 files changed, 17 insertions(+), 45 deletions(-) diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeit.py index b3ec4c804..017235313 100644 --- a/src/bo4e/com/tarifzeit.py +++ b/src/bo4e/com/tarifzeit.py @@ -20,7 +20,7 @@ class Tarifzeit(COM): typ: Annotated[Optional[Literal[ComTyp.TARIFZEIT]], Field(alias="_typ")] = ComTyp.TARIFZEIT """Typ der Tarifzeit – default 'TARIFZEIT'""" - zeitraum: Optional[Zeitraum] = None + zeitraum: Optional["Zeitraum"] = None """Gültigkeitszeitraum der Tarifzeit""" tarifstufe: Optional[str] = None diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index 03fb84ee4..7b11b3506 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -23,8 +23,8 @@ class TarifzeitenZeitscheibe(COM): ) """Typ dieser Zeitscheibe - Default 'TARIFZEITENZEITSCHEIBE'""" - gueltigkeit: Optional[Zeitraum] = None + gueltigkeit: Optional["Zeitraum"] = None """Zeitraum, in dem diese Zeitscheibe gültig ist""" - tarifzeiten: Optional[List[Tarifzeit]] = None + tarifzeiten: Optional[List["Tarifzeit"]] = None """Liste von Tarifzeiten, z. B. NT, HT oder weitere Zeitmodelle""" diff --git a/tests/test_tarifzeit.py b/tests/test_tarifzeit.py index 932493c05..d55b4b830 100644 --- a/tests/test_tarifzeit.py +++ b/tests/test_tarifzeit.py @@ -13,12 +13,10 @@ class TestTarifzeit: [ pytest.param( Tarifzeit( - zeitraum=Zeitraum( - startdatum=date(2025, 1, 1), - enddatum=date(2025, 1, 31), - ), + zeitraum=Zeitraum(), tarifstufe="HT", - ) + ), + id="all attributes at first level", ) ], ) diff --git a/tests/test_tarifzeiten.py b/tests/test_tarifzeiten.py index 39e53a923..fb5baa798 100644 --- a/tests/test_tarifzeiten.py +++ b/tests/test_tarifzeiten.py @@ -2,9 +2,8 @@ import pytest -from bo4e import Marktteilnehmer, Zeitraum +from bo4e import Marktteilnehmer from bo4e.bo.tarifzeiten import Tarifzeiten -from bo4e.com.tarifzeit import Tarifzeit from bo4e.com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe from tests.serialization_helper import assert_serialization_roundtrip @@ -16,25 +15,10 @@ class TestTarifzeiten: pytest.param( Tarifzeiten( marktteilnehmer=Marktteilnehmer(), - zeitscheiben=[ - TarifzeitenZeitscheibe( - gueltigkeit=Zeitraum( - startdatum=date(2025, 1, 1), - enddatum=date(2025, 1, 31), - ), - tarifzeiten=[ - Tarifzeit( - zeitraum=Zeitraum( - startdatum=date(2025, 1, 1), - enddatum=date(2025, 1, 31), - ), - tarifstufe="HT", - ) - ], - ) - ], - ) - ) + zeitscheiben=[TarifzeitenZeitscheibe()], + ), + id="all attributes at first level", + ), ], ) def test_serialization_roundtrip(self, tarifzeiten: Tarifzeiten) -> None: diff --git a/tests/test_tarifzeitenzeitscheibe.py b/tests/test_tarifzeitenzeitscheibe.py index 3da36ea74..eb84eb2af 100644 --- a/tests/test_tarifzeitenzeitscheibe.py +++ b/tests/test_tarifzeitenzeitscheibe.py @@ -10,25 +10,15 @@ class TestTarifzeitenZeitscheibe: @pytest.mark.parametrize( - "zeitscheibe", + "tarifzeitenzeitscheibe", [ pytest.param( TarifzeitenZeitscheibe( - gueltigkeit=Zeitraum( - startdatum=date(2025, 1, 1), - enddatum=date(2025, 1, 31), - ), - tarifzeiten=[ - Tarifzeit( - zeitraum=Zeitraum( - startdatum=date(2025, 1, 1), - enddatum=date(2025, 1, 31), - ), - tarifstufe="HT", - ) - ], - ) - ) + gueltigkeit=Zeitraum(), + tarifzeiten=[Tarifzeit()], + ), + id="all attributes at first level", + ), ], ) def test_serialization_roundtrip(self, zeitscheibe: TarifzeitenZeitscheibe) -> None: From 53f32fb250dc8192486360fdd5f53d85528ac99b Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 10:59:59 +0100 Subject: [PATCH 12/24] Testfix? --- tests/test_tarifzeitenzeitscheibe.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_tarifzeitenzeitscheibe.py b/tests/test_tarifzeitenzeitscheibe.py index eb84eb2af..98f5379c8 100644 --- a/tests/test_tarifzeitenzeitscheibe.py +++ b/tests/test_tarifzeitenzeitscheibe.py @@ -21,8 +21,8 @@ class TestTarifzeitenZeitscheibe: ), ], ) - def test_serialization_roundtrip(self, zeitscheibe: TarifzeitenZeitscheibe) -> None: + def test_serialization_roundtrip(self, tarifzeitenzeitscheibe: TarifzeitenZeitscheibe) -> None: """ Test de-/serialisation of TarifzeitenZeitscheibe. """ - assert_serialization_roundtrip(zeitscheibe) + assert_serialization_roundtrip(tarifzeitenzeitscheibe) From 5a60968a31db3114b55c1201a59aedde4309fc44 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 11:06:36 +0100 Subject: [PATCH 13/24] Testfix? imports aus bo4e ohne subdirectory --- tests/test_tarifzeit.py | 3 +-- tests/test_tarifzeiten.py | 4 +--- tests/test_tarifzeitenzeitscheibe.py | 4 +--- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/tests/test_tarifzeit.py b/tests/test_tarifzeit.py index d55b4b830..ab947acae 100644 --- a/tests/test_tarifzeit.py +++ b/tests/test_tarifzeit.py @@ -2,8 +2,7 @@ import pytest -from bo4e import Zeitraum -from bo4e.com.tarifzeit import Tarifzeit +from bo4e import Tarifzeit, Zeitraum from tests.serialization_helper import assert_serialization_roundtrip diff --git a/tests/test_tarifzeiten.py b/tests/test_tarifzeiten.py index fb5baa798..5ae8210d0 100644 --- a/tests/test_tarifzeiten.py +++ b/tests/test_tarifzeiten.py @@ -2,9 +2,7 @@ import pytest -from bo4e import Marktteilnehmer -from bo4e.bo.tarifzeiten import Tarifzeiten -from bo4e.com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe +from bo4e import Marktteilnehmer, Tarifzeiten, TarifzeitenZeitscheibe from tests.serialization_helper import assert_serialization_roundtrip diff --git a/tests/test_tarifzeitenzeitscheibe.py b/tests/test_tarifzeitenzeitscheibe.py index 98f5379c8..0497098f3 100644 --- a/tests/test_tarifzeitenzeitscheibe.py +++ b/tests/test_tarifzeitenzeitscheibe.py @@ -2,9 +2,7 @@ import pytest -from bo4e import Zeitraum -from bo4e.com.tarifzeit import Tarifzeit -from bo4e.com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe +from bo4e import Tarifzeit, TarifzeitenZeitscheibe, Zeitraum from tests.serialization_helper import assert_serialization_roundtrip From 5b2f1f3679626af3958ab3669ade5deca6b28dc6 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 11:19:58 +0100 Subject: [PATCH 14/24] imports homogenisiert --- src/bo4e/bo/geschaeftsobjekt.py | 2 -- src/bo4e/com/preisposition.py | 4 ++-- tests/test_preisposition.py | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/bo4e/bo/geschaeftsobjekt.py b/src/bo4e/bo/geschaeftsobjekt.py index 6823365e3..1b5ea648c 100644 --- a/src/bo4e/bo/geschaeftsobjekt.py +++ b/src/bo4e/bo/geschaeftsobjekt.py @@ -10,7 +10,6 @@ from bo4e.version import __version__ from bo4e.zusatzattribut import ZusatzAttribut -from ..enum.botyp import BoTyp from ..utils import postprocess_docstring # pylint: disable=too-few-public-methods @@ -37,7 +36,6 @@ class Geschaeftsobjekt(BaseModel): # pragma: no cover Version der BO-Struktur aka "fachliche Versionierung" """ - typ: Annotated[Optional[BoTyp], Field(alias="_typ")] = BoTyp.GESCHAEFTSOBJEKT zusatz_attribute: Optional[list["ZusatzAttribut"]] = None # zusatz_attribute is a list of ZusatzAttribut objects which are used to store additional information diff --git a/src/bo4e/com/preisposition.py b/src/bo4e/com/preisposition.py index b19f6cd7e..e3504be8e 100644 --- a/src/bo4e/com/preisposition.py +++ b/src/bo4e/com/preisposition.py @@ -10,7 +10,6 @@ from pydantic import Field from ..enum.comtyp import ComTyp -from ..enum.tarifzeit import Tarifzeit from ..utils import postprocess_docstring from .com import COM @@ -20,6 +19,7 @@ from ..enum.kalkulationsmethode import Kalkulationsmethode from ..enum.leistungstyp import Leistungstyp from ..enum.mengeneinheit import Mengeneinheit + from ..enum.tarifzeit import Tarifzeit from ..enum.waehrungseinheit import Waehrungseinheit from .preisstaffel import Preisstaffel @@ -60,7 +60,7 @@ class Preisposition(COM): Die Zeit(dauer) auf die sich der Preis bezieht. Z.B. ein Jahr für einen Leistungspreis der in €/kW/Jahr ausgegeben wird """ - tarifzeit: Optional[Tarifzeit] = None + tarifzeit: Optional["Tarifzeit"] = None """Festlegung, für welche Tarifzeit der Preis hier festgelegt ist""" bdew_artikelnummer: Optional["BDEWArtikelnummer"] = None """ diff --git a/tests/test_preisposition.py b/tests/test_preisposition.py index 7add808f2..def7bd5cf 100644 --- a/tests/test_preisposition.py +++ b/tests/test_preisposition.py @@ -10,9 +10,9 @@ Mengeneinheit, Preisposition, Preisstaffel, + Tarifzeit, Waehrungseinheit, ) -from bo4e.enum.tarifzeit import Tarifzeit from tests.serialization_helper import assert_serialization_roundtrip From bb40dbd13c9672f7f2ae62615c366428c3d04a62 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 11:29:41 +0100 Subject: [PATCH 15/24] Umbau auf TYPE_CHECKING imports --- src/bo4e/bo/tarifzeiten.py | 10 ++++++---- src/bo4e/com/tarifzeit.py | 9 ++++++--- src/bo4e/com/tarifzeitenzeitscheibe.py | 13 ++++++++----- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py index 31d3224e2..232a19f27 100644 --- a/src/bo4e/bo/tarifzeiten.py +++ b/src/bo4e/bo/tarifzeiten.py @@ -2,16 +2,18 @@ Contains Tarifzeiten class """ -from typing import Annotated, List, Literal, Optional +from typing import TYPE_CHECKING, Annotated, Literal, Optional from pydantic import Field -from ..bo.marktteilnehmer import Marktteilnehmer -from ..com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe from ..enum.botyp import BoTyp from ..utils import postprocess_docstring from .geschaeftsobjekt import Geschaeftsobjekt +if TYPE_CHECKING: + from ..bo.marktteilnehmer import Marktteilnehmer + from ..com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe + @postprocess_docstring class Tarifzeiten(Geschaeftsobjekt): @@ -25,5 +27,5 @@ class Tarifzeiten(Geschaeftsobjekt): marktteilnehmer: Optional["Marktteilnehmer"] = None """Optionaler Verweis auf den Anbieter / Marktpartner""" - zeitscheiben: Optional[List["TarifzeitenZeitscheibe"]] = None + zeitscheiben: Optional[list["TarifzeitenZeitscheibe"]] = None """Liste von Zeitabschnitten, die tarifliche Regelungen enthalten""" diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeit.py index 017235313..b93b48e34 100644 --- a/src/bo4e/com/tarifzeit.py +++ b/src/bo4e/com/tarifzeit.py @@ -2,13 +2,16 @@ Contains Tarifzeit class """ -from typing import Annotated, Literal, Optional +from typing import TYPE_CHECKING, Annotated, Literal, Optional from pydantic import Field -from .. import COM, ComTyp -from ..com.zeitraum import Zeitraum +from ..enum.comtyp import ComTyp from ..utils import postprocess_docstring +from .com import COM + +if TYPE_CHECKING: + from ..com.zeitraum import Zeitraum @postprocess_docstring diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index 7b11b3506..4208eeb74 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -2,14 +2,17 @@ Contains TarifzeitenZeitscheibe class """ -from typing import Annotated, List, Literal, Optional +from typing import TYPE_CHECKING, Annotated, Literal, Optional from pydantic import Field -from .. import COM, ComTyp -from ..com.tarifzeit import Tarifzeit -from ..com.zeitraum import Zeitraum +from ..enum.comtyp import ComTyp from ..utils import postprocess_docstring +from .com import COM + +if TYPE_CHECKING: + from ..com.tarifzeit import Tarifzeit + from ..com.zeitraum import Zeitraum @postprocess_docstring @@ -26,5 +29,5 @@ class TarifzeitenZeitscheibe(COM): gueltigkeit: Optional["Zeitraum"] = None """Zeitraum, in dem diese Zeitscheibe gültig ist""" - tarifzeiten: Optional[List["Tarifzeit"]] = None + tarifzeiten: Optional[list["Tarifzeit"]] = None """Liste von Tarifzeiten, z. B. NT, HT oder weitere Zeitmodelle""" From b97a1d959148c7417c859bd197645336ca672700 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 11:45:02 +0100 Subject: [PATCH 16/24] =?UTF-8?q?=5F=5Finit=5F=5F.py=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bo4e/__init__.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/bo4e/__init__.py b/src/bo4e/__init__.py index 910aaac07..46a168870 100644 --- a/src/bo4e/__init__.py +++ b/src/bo4e/__init__.py @@ -42,6 +42,7 @@ "Tarifinfo", "Tarifkosten", "Tarifpreisblatt", + "Tarifzeiten", "TechnischeRessource", "Vertrag", "Zaehler", @@ -97,6 +98,8 @@ "Tarifpreisposition", "TarifpreispositionProOrt", "TarifpreisstaffelProOrt", + "Tarifzeit", + "TarifzeitenZeitscheibe", "Unterschrift", "Verbrauch", "Vertragskonditionen", @@ -242,6 +245,7 @@ from .bo.tarifinfo import Tarifinfo from .bo.tarifkosten import Tarifkosten from .bo.tarifpreisblatt import Tarifpreisblatt +from .bo.tarifzeiten import Tarifzeiten from .bo.technischeressource import TechnischeRessource from .bo.vertrag import Vertrag from .bo.zaehler import Zaehler @@ -300,6 +304,8 @@ from .com.tarifpreisposition import Tarifpreisposition from .com.tarifpreispositionproort import TarifpreispositionProOrt from .com.tarifpreisstaffelproort import TarifpreisstaffelProOrt +from .com.tarifzeit import Tarifzeit +from .com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe from .com.unterschrift import Unterschrift from .com.verbrauch import Verbrauch from .com.vertragskonditionen import Vertragskonditionen From 2e7456ca4b9512e05dc2fc1e494a572c478bfd09 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 11:52:09 +0100 Subject: [PATCH 17/24] rename Tarifzeit to Tarifzeitstufe to prevent ambigious naming --- src/bo4e/__init__.py | 4 ++-- src/bo4e/com/tarifzeitenzeitscheibe.py | 6 +++--- src/bo4e/com/{tarifzeit.py => tarifzeitstufe.py} | 12 ++++++------ src/bo4e/enum/comtyp.py | 2 +- .../{test_tarifzeit.py => test_tarifzeitstufe.py} | 14 +++++++------- 5 files changed, 19 insertions(+), 19 deletions(-) rename src/bo4e/com/{tarifzeit.py => tarifzeitstufe.py} (55%) rename tests/{test_tarifzeit.py => test_tarifzeitstufe.py} (54%) diff --git a/src/bo4e/__init__.py b/src/bo4e/__init__.py index 46a168870..885bd4582 100644 --- a/src/bo4e/__init__.py +++ b/src/bo4e/__init__.py @@ -98,8 +98,8 @@ "Tarifpreisposition", "TarifpreispositionProOrt", "TarifpreisstaffelProOrt", - "Tarifzeit", "TarifzeitenZeitscheibe", + "Tarifzeitstufe", "Unterschrift", "Verbrauch", "Vertragskonditionen", @@ -304,7 +304,7 @@ from .com.tarifpreisposition import Tarifpreisposition from .com.tarifpreispositionproort import TarifpreispositionProOrt from .com.tarifpreisstaffelproort import TarifpreisstaffelProOrt -from .com.tarifzeit import Tarifzeit +from .com.tarifzeitstufe import Tarifzeitstufe from .com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe from .com.unterschrift import Unterschrift from .com.verbrauch import Verbrauch diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index 4208eeb74..acf29cb10 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -11,7 +11,7 @@ from .com import COM if TYPE_CHECKING: - from ..com.tarifzeit import Tarifzeit + from ..com.tarifzeitstufe import Tarifzeitstufe from ..com.zeitraum import Zeitraum @@ -29,5 +29,5 @@ class TarifzeitenZeitscheibe(COM): gueltigkeit: Optional["Zeitraum"] = None """Zeitraum, in dem diese Zeitscheibe gültig ist""" - tarifzeiten: Optional[list["Tarifzeit"]] = None - """Liste von Tarifzeiten, z. B. NT, HT oder weitere Zeitmodelle""" + tarifzeiten: Optional[list["Tarifzeitstufe"]] = None + """Liste von Tarifzeitenstufen, z. B. NT, HT oder weitere Zeitmodelle""" diff --git a/src/bo4e/com/tarifzeit.py b/src/bo4e/com/tarifzeitstufe.py similarity index 55% rename from src/bo4e/com/tarifzeit.py rename to src/bo4e/com/tarifzeitstufe.py index b93b48e34..607942260 100644 --- a/src/bo4e/com/tarifzeit.py +++ b/src/bo4e/com/tarifzeitstufe.py @@ -1,5 +1,5 @@ """ -Contains Tarifzeit class +Contains Tarifzeitstufe class """ from typing import TYPE_CHECKING, Annotated, Literal, Optional @@ -15,16 +15,16 @@ @postprocess_docstring -class Tarifzeit(COM): +class Tarifzeitstufe(COM): """ - Tarifzeit mit Zuordnung zu einem Zeitraum und einer optionalen Tarifstufe. + Tarifzeitstufe mit Zuordnung zu einem Zeitraum und einer optionalen Tarifstufe. """ - typ: Annotated[Optional[Literal[ComTyp.TARIFZEIT]], Field(alias="_typ")] = ComTyp.TARIFZEIT - """Typ der Tarifzeit – default 'TARIFZEIT'""" + typ: Annotated[Optional[Literal[ComTyp.TARIFZEITSTUFE]], Field(alias="_typ")] = ComTyp.TARIFZEITSTUFE + """Typ der Tarifzeitstufe – default 'TARIFZEITSTUFE'""" zeitraum: Optional["Zeitraum"] = None - """Gültigkeitszeitraum der Tarifzeit""" + """Gültigkeitszeitraum der Tarifzeitstufe""" tarifstufe: Optional[str] = None """Optional: Angabe der Tarifstufe, z. B. HT, NT, ST""" diff --git a/src/bo4e/enum/comtyp.py b/src/bo4e/enum/comtyp.py index 5d5671bfd..c155895dd 100644 --- a/src/bo4e/enum/comtyp.py +++ b/src/bo4e/enum/comtyp.py @@ -62,8 +62,8 @@ class ComTyp(StrEnum): TARIFPREISPOSITION = "TARIFPREISPOSITION" TARIFPREISPOSITIONPROORT = "TARIFPREISPOSITIONPROORT" TARIFPREISSTAFFELPROORT = "TARIFPREISSTAFFELPROORT" - TARIFZEIT = "TARIFZEIT" TARIFZEITENZEITSCHEIBE = "TARIFZEITENZEITSCHEIBE" + TARIFZEITSTUFE = "TARIFZEITSTUFE" UNTERSCHRIFT = "UNTERSCHRIFT" VERBRAUCH = "VERBRAUCH" VERTRAGSKONDITIONEN = "VERTRAGSKONDITIONEN" diff --git a/tests/test_tarifzeit.py b/tests/test_tarifzeitstufe.py similarity index 54% rename from tests/test_tarifzeit.py rename to tests/test_tarifzeitstufe.py index ab947acae..e43fe2f35 100644 --- a/tests/test_tarifzeit.py +++ b/tests/test_tarifzeitstufe.py @@ -2,16 +2,16 @@ import pytest -from bo4e import Tarifzeit, Zeitraum +from bo4e import Tarifzeitstufe, Zeitraum from tests.serialization_helper import assert_serialization_roundtrip -class TestTarifzeit: +class TestTarifzeitstufe: @pytest.mark.parametrize( - "tarifzeit", + "tarifzeitstufe", [ pytest.param( - Tarifzeit( + Tarifzeitstufe( zeitraum=Zeitraum(), tarifstufe="HT", ), @@ -19,8 +19,8 @@ class TestTarifzeit: ) ], ) - def test_serialization_roundtrip(self, tarifzeit: Tarifzeit) -> None: + def test_serialization_roundtrip(self, tarifzeitstufe: Tarifzeitstufe) -> None: """ - Test de-/serialisation of Tarifzeit. + Test de-/serialisation of Tarifzeitstufe. """ - assert_serialization_roundtrip(tarifzeit) + assert_serialization_roundtrip(tarifzeitstufe) From bb462f93ed91ee967f1344ff336d1f0dfd6a39e3 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 11:53:48 +0100 Subject: [PATCH 18/24] fix test after renaming --- tests/test_tarifzeitenzeitscheibe.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_tarifzeitenzeitscheibe.py b/tests/test_tarifzeitenzeitscheibe.py index 0497098f3..594ec9dbc 100644 --- a/tests/test_tarifzeitenzeitscheibe.py +++ b/tests/test_tarifzeitenzeitscheibe.py @@ -2,7 +2,7 @@ import pytest -from bo4e import Tarifzeit, TarifzeitenZeitscheibe, Zeitraum +from bo4e import TarifzeitenZeitscheibe, Tarifzeitstufe, Zeitraum from tests.serialization_helper import assert_serialization_roundtrip @@ -13,7 +13,7 @@ class TestTarifzeitenZeitscheibe: pytest.param( TarifzeitenZeitscheibe( gueltigkeit=Zeitraum(), - tarifzeiten=[Tarifzeit()], + tarifzeiten=[Tarifzeitstufe()], ), id="all attributes at first level", ), From 4701fa6f6def2ead51291454c2f1fc506edbbe28 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 12 Nov 2025 11:57:01 +0100 Subject: [PATCH 19/24] Fix Linting --- src/bo4e/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bo4e/__init__.py b/src/bo4e/__init__.py index 885bd4582..4337c95a5 100644 --- a/src/bo4e/__init__.py +++ b/src/bo4e/__init__.py @@ -304,8 +304,8 @@ from .com.tarifpreisposition import Tarifpreisposition from .com.tarifpreispositionproort import TarifpreispositionProOrt from .com.tarifpreisstaffelproort import TarifpreisstaffelProOrt -from .com.tarifzeitstufe import Tarifzeitstufe from .com.tarifzeitenzeitscheibe import TarifzeitenZeitscheibe +from .com.tarifzeitstufe import Tarifzeitstufe from .com.unterschrift import Unterschrift from .com.verbrauch import Verbrauch from .com.vertragskonditionen import Vertragskonditionen From 02182ed69de76269666d4d9440296eccc5703d18 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Tue, 2 Dec 2025 12:56:34 +0100 Subject: [PATCH 20/24] #989 added UML and removed duplication in docs --- src/bo4e/bo/tarifzeiten.py | 6 +++++- src/bo4e/com/tarifzeitenzeitscheibe.py | 6 +++++- src/bo4e/com/tarifzeitstufe.py | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py index 232a19f27..9b9757f6e 100644 --- a/src/bo4e/bo/tarifzeiten.py +++ b/src/bo4e/bo/tarifzeiten.py @@ -19,10 +19,14 @@ class Tarifzeiten(Geschaeftsobjekt): """ Abbildung von Tarifzeiten, wann welche Preise gelten oder unter welchen Bedingungen. + + .. raw:: html + + .. HINT:: + `Tarifzeiten JSON Schema `_ """ typ: Annotated[Optional[Literal[BoTyp.TARIFZEITEN]], Field(alias="_typ")] = BoTyp.TARIFZEITEN - """Typ des Geschäftsobjekts – default 'TARIFZEITEN'""" marktteilnehmer: Optional["Marktteilnehmer"] = None """Optionaler Verweis auf den Anbieter / Marktpartner""" diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index acf29cb10..9d8a5e67e 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -19,12 +19,16 @@ class TarifzeitenZeitscheibe(COM): """ Eine Zeitscheibe innerhalb der Tarifzeiten mit zugehöriger Gültigkeit und Tarifzeitabschnitten. + + .. raw:: html + + .. HINT:: + `TarifzeitenZeitscheibe JSON Schema `_ """ typ: Annotated[Optional[Literal[ComTyp.TARIFZEITENZEITSCHEIBE]], Field(alias="_typ")] = ( ComTyp.TARIFZEITENZEITSCHEIBE ) - """Typ dieser Zeitscheibe - Default 'TARIFZEITENZEITSCHEIBE'""" gueltigkeit: Optional["Zeitraum"] = None """Zeitraum, in dem diese Zeitscheibe gültig ist""" diff --git a/src/bo4e/com/tarifzeitstufe.py b/src/bo4e/com/tarifzeitstufe.py index 607942260..08aa5096c 100644 --- a/src/bo4e/com/tarifzeitstufe.py +++ b/src/bo4e/com/tarifzeitstufe.py @@ -18,10 +18,14 @@ class Tarifzeitstufe(COM): """ Tarifzeitstufe mit Zuordnung zu einem Zeitraum und einer optionalen Tarifstufe. + + .. raw:: html + + .. HINT:: + `Tarifzeitstufe JSON Schema `_ """ typ: Annotated[Optional[Literal[ComTyp.TARIFZEITSTUFE]], Field(alias="_typ")] = ComTyp.TARIFZEITSTUFE - """Typ der Tarifzeitstufe – default 'TARIFZEITSTUFE'""" zeitraum: Optional["Zeitraum"] = None """Gültigkeitszeitraum der Tarifzeitstufe""" From 5666cb71ddac5fc7c2b69adff53036dcb7b2c9ea Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 3 Dec 2025 15:55:55 +0100 Subject: [PATCH 21/24] #989 Doc Linting --- src/bo4e/bo/tarifzeiten.py | 1 + src/bo4e/com/tarifzeitenzeitscheibe.py | 1 + src/bo4e/com/tarifzeitstufe.py | 1 + 3 files changed, 3 insertions(+) diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py index 9b9757f6e..0f58ea0fa 100644 --- a/src/bo4e/bo/tarifzeiten.py +++ b/src/bo4e/bo/tarifzeiten.py @@ -24,6 +24,7 @@ class Tarifzeiten(Geschaeftsobjekt): .. HINT:: `Tarifzeiten JSON Schema `_ + """ typ: Annotated[Optional[Literal[BoTyp.TARIFZEITEN]], Field(alias="_typ")] = BoTyp.TARIFZEITEN diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index 9d8a5e67e..e6cc9a148 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -24,6 +24,7 @@ class TarifzeitenZeitscheibe(COM): .. HINT:: `TarifzeitenZeitscheibe JSON Schema `_ + """ typ: Annotated[Optional[Literal[ComTyp.TARIFZEITENZEITSCHEIBE]], Field(alias="_typ")] = ( diff --git a/src/bo4e/com/tarifzeitstufe.py b/src/bo4e/com/tarifzeitstufe.py index 08aa5096c..f8023bbff 100644 --- a/src/bo4e/com/tarifzeitstufe.py +++ b/src/bo4e/com/tarifzeitstufe.py @@ -23,6 +23,7 @@ class Tarifzeitstufe(COM): .. HINT:: `Tarifzeitstufe JSON Schema `_ + """ typ: Annotated[Optional[Literal[ComTyp.TARIFZEITSTUFE]], Field(alias="_typ")] = ComTyp.TARIFZEITSTUFE From 949f18f94094b97b368cc90a7bdb6afe52c49615 Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 3 Dec 2025 16:00:25 +0100 Subject: [PATCH 22/24] #989 Doc Linting --- src/bo4e/bo/tarifzeiten.py | 1 + src/bo4e/com/tarifzeitenzeitscheibe.py | 1 + src/bo4e/com/tarifzeitstufe.py | 1 + 3 files changed, 3 insertions(+) diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py index 0f58ea0fa..e3249b0d8 100644 --- a/src/bo4e/bo/tarifzeiten.py +++ b/src/bo4e/bo/tarifzeiten.py @@ -21,6 +21,7 @@ class Tarifzeiten(Geschaeftsobjekt): Abbildung von Tarifzeiten, wann welche Preise gelten oder unter welchen Bedingungen. .. raw:: html + .. HINT:: `Tarifzeiten JSON Schema `_ diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index e6cc9a148..3ebd13221 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -21,6 +21,7 @@ class TarifzeitenZeitscheibe(COM): Eine Zeitscheibe innerhalb der Tarifzeiten mit zugehöriger Gültigkeit und Tarifzeitabschnitten. .. raw:: html + .. HINT:: `TarifzeitenZeitscheibe JSON Schema `_ diff --git a/src/bo4e/com/tarifzeitstufe.py b/src/bo4e/com/tarifzeitstufe.py index f8023bbff..e5f1a12e9 100644 --- a/src/bo4e/com/tarifzeitstufe.py +++ b/src/bo4e/com/tarifzeitstufe.py @@ -20,6 +20,7 @@ class Tarifzeitstufe(COM): Tarifzeitstufe mit Zuordnung zu einem Zeitraum und einer optionalen Tarifstufe. .. raw:: html + .. HINT:: `Tarifzeitstufe JSON Schema `_ From 8c07c7eff9e3cae10c506913a6061e538dd31c4d Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 3 Dec 2025 16:04:34 +0100 Subject: [PATCH 23/24] #989 Doc Linting --- src/bo4e/bo/tarifzeiten.py | 1 + src/bo4e/com/tarifzeitenzeitscheibe.py | 1 + src/bo4e/com/tarifzeitstufe.py | 1 + 3 files changed, 3 insertions(+) diff --git a/src/bo4e/bo/tarifzeiten.py b/src/bo4e/bo/tarifzeiten.py index e3249b0d8..795c59abc 100644 --- a/src/bo4e/bo/tarifzeiten.py +++ b/src/bo4e/bo/tarifzeiten.py @@ -23,6 +23,7 @@ class Tarifzeiten(Geschaeftsobjekt): .. raw:: html + .. HINT:: `Tarifzeiten JSON Schema `_ diff --git a/src/bo4e/com/tarifzeitenzeitscheibe.py b/src/bo4e/com/tarifzeitenzeitscheibe.py index 3ebd13221..1d6771caa 100644 --- a/src/bo4e/com/tarifzeitenzeitscheibe.py +++ b/src/bo4e/com/tarifzeitenzeitscheibe.py @@ -23,6 +23,7 @@ class TarifzeitenZeitscheibe(COM): .. raw:: html + .. HINT:: `TarifzeitenZeitscheibe JSON Schema `_ diff --git a/src/bo4e/com/tarifzeitstufe.py b/src/bo4e/com/tarifzeitstufe.py index e5f1a12e9..4bc8ab55e 100644 --- a/src/bo4e/com/tarifzeitstufe.py +++ b/src/bo4e/com/tarifzeitstufe.py @@ -22,6 +22,7 @@ class Tarifzeitstufe(COM): .. raw:: html + .. HINT:: `Tarifzeitstufe JSON Schema `_ From f03f598bb5010a82b5e609805f72778d3dc91ccc Mon Sep 17 00:00:00 2001 From: Simon Blank Date: Wed, 3 Dec 2025 16:09:16 +0100 Subject: [PATCH 24/24] #989 Doc Linting --- src/bo4e/com/tarifzeitstufe.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bo4e/com/tarifzeitstufe.py b/src/bo4e/com/tarifzeitstufe.py index 4bc8ab55e..343a7b0c6 100644 --- a/src/bo4e/com/tarifzeitstufe.py +++ b/src/bo4e/com/tarifzeitstufe.py @@ -19,7 +19,7 @@ class Tarifzeitstufe(COM): """ Tarifzeitstufe mit Zuordnung zu einem Zeitraum und einer optionalen Tarifstufe. - .. raw:: html + .. raw:: html