diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 3a64a265c..df55b62d5 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -8,6 +8,7 @@ jobs: matrix: python-version: [ 3.8 ] os: [ ubuntu-latest ] + linter-env: ["linting", "type_check"] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} @@ -18,6 +19,6 @@ jobs: run: | python -m pip install --upgrade pip pip install tox - - name: Linting bo4e + - name: Run ${{ matrix.linter-env }} run: | - tox -e linting + tox -e ${{ matrix.linter-env }} diff --git a/pyproject.toml b/pyproject.toml index 4ff0d6ae3..79a35cb2b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,4 +15,4 @@ markers = ["datafiles: load datafiles"] max-line-length = 120 [tool.isort] -line_length = 120 \ No newline at end of file +line_length = 120 diff --git a/src/bo4e/bo/ansprechpartner.py b/src/bo4e/bo/ansprechpartner.py index bd745b5b6..b87f0853f 100644 --- a/src/bo4e/bo/ansprechpartner.py +++ b/src/bo4e/bo/ansprechpartner.py @@ -4,16 +4,18 @@ """ import attr from marshmallow import fields -from marshmallow_enum import EnumField -from bo4e.com.rufnummer import Rufnummer, RufnummerSchema -from bo4e.com.adresse import Adresse, AdresseSchema +from marshmallow_enum import EnumField # type:ignore + from bo4e.bo.geschaeftsobjekt import Geschaeftsobjekt, GeschaeftsobjektSchema from bo4e.bo.geschaeftspartner import Geschaeftspartner, GeschaeftspartnerSchema +from bo4e.com.adresse import Adresse, AdresseSchema +from bo4e.com.rufnummer import Rufnummer, RufnummerSchema from bo4e.com.zustaendigkeit import Zustaendigkeit, ZustaendigkeitSchema from bo4e.enum.anrede import Anrede from bo4e.enum.botyp import BoTyp from bo4e.enum.titel import Titel + # pylint: disable=too-many-instance-attributes, too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Ansprechpartner(Geschaeftsobjekt): diff --git a/src/bo4e/bo/geschaeftsobjekt.py b/src/bo4e/bo/geschaeftsobjekt.py index b0b04614f..33efb3ed4 100644 --- a/src/bo4e/bo/geschaeftsobjekt.py +++ b/src/bo4e/bo/geschaeftsobjekt.py @@ -3,16 +3,26 @@ and corresponding marshmallow schema for de-/serialization """ # pylint: disable=unused-argument, too-few-public-methods -from typing import List, Optional +from typing import List, Optional, Type import attr from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore + from bo4e.com.externereferenz import ExterneReferenz, ExterneReferenzSchema from bo4e.enum.botyp import BoTyp from bo4e.schemata.caseconverterschema import CaseConverterSchema +def _create_empty_referenzen_list() -> List[ExterneReferenz]: + """ + A method with a type hint to please mypy + https://stackoverflow.com/a/61281305/10009545 + :return: + """ + return [] + + @attr.s(auto_attribs=True, kw_only=True) class Geschaeftsobjekt: """ @@ -25,7 +35,7 @@ class Geschaeftsobjekt: # optional attributes externe_referenzen: Optional[List[ExterneReferenz]] = attr.ib( - default=[], validator=attr.validators.instance_of(List) + default=_create_empty_referenzen_list(), validator=attr.validators.instance_of(List) # type:ignore ) @@ -36,7 +46,7 @@ class GeschaeftsobjektSchema(CaseConverterSchema): """ # class_name is needed to use the correct schema for deserialization. - class_name = Geschaeftsobjekt + class_name: Type[Geschaeftsobjekt] = Geschaeftsobjekt # required attributes versionstruktur = fields.String() diff --git a/src/bo4e/bo/geschaeftspartner.py b/src/bo4e/bo/geschaeftspartner.py index cc996c3d1..a223f81fc 100644 --- a/src/bo4e/bo/geschaeftspartner.py +++ b/src/bo4e/bo/geschaeftspartner.py @@ -3,11 +3,12 @@ and corresponding marshmallow schema for de-/serialization """ # pylint: disable=too-many-instance-attributes, too-few-public-methods -from typing import List +from typing import List, Optional, Type import attr from marshmallow import fields -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore + from bo4e.bo.geschaeftsobjekt import Geschaeftsobjekt, GeschaeftsobjektSchema from bo4e.com.adresse import Adresse, AdresseSchema from bo4e.enum.anrede import Anrede @@ -30,15 +31,15 @@ class Geschaeftspartner(Geschaeftsobjekt): # optional attributes anrede: Anrede = attr.ib(default=None) - name2: str = attr.ib(default=None) - name3: str = attr.ib(default=None) - hrnummer: str = attr.ib(default=None) - amtsgericht: str = attr.ib(default=None) + name2: Optional[str] = attr.ib(default=None) + name3: Optional[str] = attr.ib(default=None) + hrnummer: Optional[str] = attr.ib(default=None) + amtsgericht: Optional[str] = attr.ib(default=None) kontaktweg: List[Kontaktart] = attr.ib(default=[]) - umsatzsteuer_id: str = attr.ib(default=None) - glaeubiger_id: str = attr.ib(default=None) - e_mail_adresse: str = attr.ib(default=None) - website: str = attr.ib(default=None) + umsatzsteuer_id: Optional[str] = attr.ib(default=None) + glaeubiger_id: Optional[str] = attr.ib(default=None) + e_mail_adresse: Optional[str] = attr.ib(default=None) + website: Optional[str] = attr.ib(default=None) partneradresse: Adresse = attr.ib(default=None) @@ -49,7 +50,7 @@ class GeschaeftspartnerSchema(GeschaeftsobjektSchema): # class_name is needed to use the correct schema for deserialisation. # see function `deserialize` in geschaeftsobjekt.py - class_name = Geschaeftspartner + class_name: Type[Geschaeftspartner] = Geschaeftspartner # required attributes name1 = fields.Str() diff --git a/src/bo4e/bo/marktlokation.py b/src/bo4e/bo/marktlokation.py index 93f8075db..7c7682728 100644 --- a/src/bo4e/bo/marktlokation.py +++ b/src/bo4e/bo/marktlokation.py @@ -6,7 +6,8 @@ import attr from marshmallow import fields -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore + from bo4e.bo.geschaeftsobjekt import Geschaeftsobjekt, GeschaeftsobjektSchema from bo4e.bo.geschaeftspartner import Geschaeftspartner, GeschaeftspartnerSchema from bo4e.com.adresse import Adresse, AdresseSchema @@ -22,7 +23,6 @@ from bo4e.enum.sparte import Sparte from bo4e.enum.verbrauchsart import Verbrauchsart - _malo_id_pattern = re.compile(r"^[1-9][\d]{10}$") diff --git a/src/bo4e/bo/marktteilnehmer.py b/src/bo4e/bo/marktteilnehmer.py index c253a428f..d031bfc30 100644 --- a/src/bo4e/bo/marktteilnehmer.py +++ b/src/bo4e/bo/marktteilnehmer.py @@ -3,9 +3,10 @@ and corresponding marshmallow schema for de-/serialization """ import attr -from marshmallow import fields -from marshmallow_enum import EnumField from attr.validators import matches_re +from marshmallow import fields +from marshmallow_enum import EnumField # type:ignore + from bo4e.bo.geschaeftspartner import Geschaeftspartner, GeschaeftspartnerSchema from bo4e.enum.botyp import BoTyp from bo4e.enum.marktrolle import Marktrolle diff --git a/src/bo4e/bo/messlokation.py b/src/bo4e/bo/messlokation.py index 518df6c59..84eea07cb 100644 --- a/src/bo4e/bo/messlokation.py +++ b/src/bo4e/bo/messlokation.py @@ -6,9 +6,9 @@ from typing import List, Optional import attr -from iso3166 import countries +from iso3166 import countries # type:ignore from marshmallow import fields -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore from bo4e.bo.geschaeftsobjekt import Geschaeftsobjekt, GeschaeftsobjektSchema from bo4e.bo.zaehler import Zaehler, ZaehlerSchema diff --git a/src/bo4e/bo/vertrag.py b/src/bo4e/bo/vertrag.py index 6b55b703c..0b16bb98f 100644 --- a/src/bo4e/bo/vertrag.py +++ b/src/bo4e/bo/vertrag.py @@ -4,19 +4,21 @@ """ from datetime import datetime from typing import List, Optional + import attr from marshmallow import fields -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore from bo4e.bo.geschaeftsobjekt import Geschaeftsobjekt, GeschaeftsobjektSchema from bo4e.bo.geschaeftspartner import Geschaeftspartner, GeschaeftspartnerSchema -from bo4e.com.vertragsteil import Vertragsteil, VertragsteilSchema -from bo4e.com.vertragskonditionen import Vertragskonditionen, VertragskonditionenSchema from bo4e.com.unterschrift import Unterschrift, UnterschriftSchema +from bo4e.com.vertragskonditionen import Vertragskonditionen, VertragskonditionenSchema +from bo4e.com.vertragsteil import Vertragsteil, VertragsteilSchema from bo4e.enum.botyp import BoTyp +from bo4e.enum.sparte import Sparte from bo4e.enum.vertragsart import Vertragsart from bo4e.enum.vertragsstatus import Vertragsstatus -from bo4e.enum.sparte import Sparte + # pylint: disable=unused-argument def at_least_one_vertragsteil(instance, attribute, value): diff --git a/src/bo4e/bo/zaehler.py b/src/bo4e/bo/zaehler.py index 70eba8a55..3f5dd144b 100644 --- a/src/bo4e/bo/zaehler.py +++ b/src/bo4e/bo/zaehler.py @@ -8,7 +8,7 @@ import attr from marshmallow import fields -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore from bo4e.bo.geschaeftsobjekt import Geschaeftsobjekt, GeschaeftsobjektSchema from bo4e.bo.geschaeftspartner import Geschaeftspartner, GeschaeftspartnerSchema @@ -19,6 +19,7 @@ from bo4e.enum.zaehlerauspraegung import Zaehlerauspraegung from bo4e.enum.zaehlertyp import Zaehlertyp + # pylint: disable=unused-argument def at_least_one_zaehlwerk(instance, attribute, value): """ diff --git a/src/bo4e/com/adresse.py b/src/bo4e/com/adresse.py index fcccea202..0efb013da 100644 --- a/src/bo4e/com/adresse.py +++ b/src/bo4e/com/adresse.py @@ -5,7 +5,8 @@ import attr from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore + from bo4e.com.com import COM, COMSchema from bo4e.enum.landescode import Landescode @@ -42,7 +43,7 @@ class Adresse(COM): postfach: str = attr.ib(default=None, validator=strasse_xor_postfach) adresszusatz: str = attr.ib(default=None) co_ergaenzung: str = attr.ib(default=None) - landescode: Landescode = attr.ib(default=Landescode.DE) + landescode: Landescode = attr.ib(default=Landescode.DE) # type:ignore class AdresseSchema(COMSchema): diff --git a/src/bo4e/com/com.py b/src/bo4e/com/com.py index 59c8397cd..c946a5676 100644 --- a/src/bo4e/com/com.py +++ b/src/bo4e/com/com.py @@ -2,8 +2,10 @@ Contains base class for all components """ import attr + from bo4e.schemata.caseconverterschema import CaseConverterSchema + # pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class COM: diff --git a/src/bo4e/com/dienstleistung.py b/src/bo4e/com/dienstleistung.py index 5ecb3778f..ce06b17a0 100644 --- a/src/bo4e/com/dienstleistung.py +++ b/src/bo4e/com/dienstleistung.py @@ -5,10 +5,12 @@ import attr from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore + from bo4e.com.com import COM, COMSchema from bo4e.enum.dienstleistungstyp import Dienstleistungstyp + # pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Dienstleistung(COM): diff --git a/src/bo4e/com/externereferenz.py b/src/bo4e/com/externereferenz.py index 68037822c..3f03266c1 100644 --- a/src/bo4e/com/externereferenz.py +++ b/src/bo4e/com/externereferenz.py @@ -4,6 +4,7 @@ """ import attr from marshmallow import fields, post_load + from bo4e.com.com import COM, COMSchema diff --git a/src/bo4e/com/hardware.py b/src/bo4e/com/hardware.py index 296982c16..701fc8f50 100644 --- a/src/bo4e/com/hardware.py +++ b/src/bo4e/com/hardware.py @@ -5,10 +5,12 @@ import attr from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore + from bo4e.com.com import COM, COMSchema from bo4e.enum.geraetetyp import Geraetetyp + # pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Hardware(COM): diff --git a/src/bo4e/com/katasteradresse.py b/src/bo4e/com/katasteradresse.py index 0ac480d04..2b393e08f 100644 --- a/src/bo4e/com/katasteradresse.py +++ b/src/bo4e/com/katasteradresse.py @@ -4,6 +4,7 @@ """ import attr from marshmallow import fields, post_load + from bo4e.com.com import COM, COMSchema diff --git a/src/bo4e/com/menge.py b/src/bo4e/com/menge.py index 00792fe25..c93c1cb0b 100644 --- a/src/bo4e/com/menge.py +++ b/src/bo4e/com/menge.py @@ -7,11 +7,12 @@ import attr from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore from bo4e.com.com import COM, COMSchema from bo4e.enum.mengeneinheit import Mengeneinheit + # pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Menge(COM): diff --git a/src/bo4e/com/messlokationszuordnung.py b/src/bo4e/com/messlokationszuordnung.py index e9514abac..ff5493a3b 100644 --- a/src/bo4e/com/messlokationszuordnung.py +++ b/src/bo4e/com/messlokationszuordnung.py @@ -6,7 +6,8 @@ import attr from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore + from bo4e.com.com import COM, COMSchema from bo4e.enum.arithmetische_operation import ArithmetischeOperation diff --git a/src/bo4e/com/rufnummer.py b/src/bo4e/com/rufnummer.py index a8ab61a6f..1acee7dea 100644 --- a/src/bo4e/com/rufnummer.py +++ b/src/bo4e/com/rufnummer.py @@ -5,10 +5,12 @@ import attr from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore + from bo4e.com.com import COM, COMSchema from bo4e.enum.rufnummernart import Rufnummernart + # pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Rufnummer(COM): diff --git a/src/bo4e/com/unterschrift.py b/src/bo4e/com/unterschrift.py index 865cbcc2c..c2fc5a655 100644 --- a/src/bo4e/com/unterschrift.py +++ b/src/bo4e/com/unterschrift.py @@ -3,10 +3,13 @@ and corresponding marshmallow schema for de-/serialization """ from datetime import datetime + import attr from marshmallow import fields, post_load + from bo4e.com.com import COM, COMSchema + # pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Unterschrift(COM): diff --git a/src/bo4e/com/vertragskonditionen.py b/src/bo4e/com/vertragskonditionen.py index eac11af48..c439df4f9 100644 --- a/src/bo4e/com/vertragskonditionen.py +++ b/src/bo4e/com/vertragskonditionen.py @@ -3,11 +3,14 @@ and corresponding marshmallow schema for de-/serialization """ from decimal import Decimal + import attr from marshmallow import fields, post_load + from bo4e.com.com import COM, COMSchema from bo4e.com.zeitraum import Zeitraum, ZeitraumSchema + # pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Vertragskonditionen(COM): diff --git a/src/bo4e/com/vertragsteil.py b/src/bo4e/com/vertragsteil.py index 6e689a934..2336510e0 100644 --- a/src/bo4e/com/vertragsteil.py +++ b/src/bo4e/com/vertragsteil.py @@ -2,13 +2,16 @@ Contains Vertragsteil class and corresponding marshmallow schema for de-/serialization """ -from typing import Optional from datetime import datetime +from typing import Optional + import attr from marshmallow import fields, post_load + from bo4e.com.com import COM, COMSchema from bo4e.com.menge import Menge, MengeSchema + # pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Vertragsteil(COM): diff --git a/src/bo4e/com/zaehlwerk.py b/src/bo4e/com/zaehlwerk.py index bdf787446..c140f7033 100644 --- a/src/bo4e/com/zaehlwerk.py +++ b/src/bo4e/com/zaehlwerk.py @@ -7,7 +7,7 @@ import attr from attr.validators import matches_re from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore from bo4e.com.com import COM, COMSchema from bo4e.enum.energierichtung import Energierichtung diff --git a/src/bo4e/com/zeitraum.py b/src/bo4e/com/zeitraum.py index ecef8f67f..258589b07 100644 --- a/src/bo4e/com/zeitraum.py +++ b/src/bo4e/com/zeitraum.py @@ -3,17 +3,18 @@ and corresponding marshmallow schema for de-/serialization """ -from typing import Optional -from decimal import Decimal from datetime import datetime +from decimal import Decimal +from typing import Optional import attr from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore from bo4e.com.com import COM, COMSchema from bo4e.enum.zeiteinheit import Zeiteinheit + # pylint: disable=unused-argument def time_range_possibilities(instance, attribute, value): """ diff --git a/src/bo4e/com/zustaendigkeit.py b/src/bo4e/com/zustaendigkeit.py index c64a86079..df682afe4 100644 --- a/src/bo4e/com/zustaendigkeit.py +++ b/src/bo4e/com/zustaendigkeit.py @@ -5,10 +5,12 @@ import attr from marshmallow import fields, post_load -from marshmallow_enum import EnumField +from marshmallow_enum import EnumField # type:ignore + from bo4e.com.com import COM, COMSchema from bo4e.enum.themengebiet import Themengebiet + # pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Zustaendigkeit(COM): @@ -33,8 +35,8 @@ class ZustaendigkeitSchema(COMSchema): themengebiet = EnumField(Themengebiet) # optional attributes - jobtitel: str = fields.Str(missing=None) - abteilung: str = fields.Str(missing=None) + jobtitel = fields.Str(missing=None) + abteilung = fields.Str(missing=None) # pylint: disable=no-self-use, unused-argument @post_load diff --git a/src/bo4e/enum/anrede.py b/src/bo4e/enum/anrede.py index f708f0b12..d98321ced 100644 --- a/src/bo4e/enum/anrede.py +++ b/src/bo4e/enum/anrede.py @@ -4,11 +4,13 @@ from enum import Enum -_anrede = { - "HERR": "HERR", - "FRAU": "FRAU", - "EHELEUTE": "EHELEUTE", - "FIRMA": "FIRMA", - "INDIVIDUELL": "INDIVIDUELL", -} -Anrede = Enum("Anrede", _anrede) +Anrede = Enum( + "Anrede", + { + "HERR": "HERR", + "FRAU": "FRAU", + "EHELEUTE": "EHELEUTE", + "FIRMA": "FIRMA", + "INDIVIDUELL": "INDIVIDUELL", + }, +) diff --git a/src/bo4e/enum/arithmetische_operation.py b/src/bo4e/enum/arithmetische_operation.py index 93c9da026..797cccad3 100644 --- a/src/bo4e/enum/arithmetische_operation.py +++ b/src/bo4e/enum/arithmetische_operation.py @@ -4,10 +4,12 @@ from enum import Enum -_arithmetische_operation = { - "ADDITION": "ADDITION", - "SUBTRAKTION": "SUBTRAKTION", - "MULTIPLIKATION": "MULTIPLIKATION", - "DIVISION": "DIVISION", -} -ArithmetischeOperation = Enum("ArithmetischeOperation", _arithmetische_operation) +ArithmetischeOperation = Enum( + "ArithmetischeOperation", + { + "ADDITION": "ADDITION", + "SUBTRAKTION": "SUBTRAKTION", + "MULTIPLIKATION": "MULTIPLIKATION", + "DIVISION": "DIVISION", + }, +) diff --git a/src/bo4e/enum/bilanzierungsmethode.py b/src/bo4e/enum/bilanzierungsmethode.py index cee56bf3e..53690fc66 100644 --- a/src/bo4e/enum/bilanzierungsmethode.py +++ b/src/bo4e/enum/bilanzierungsmethode.py @@ -3,11 +3,13 @@ """ from enum import Enum -_bilanzierungsmethode = { - "RLM": "RLM", # Registrierende Leistungsmessung - "SLP": "SLP", # Standard Lastprofil - "TLP_GEMEINSAM": "TLP_GEMEINSAM", # TLP gemeinsame Messung - "TLP_GETRENNT": "TLP_GETRENNT", # TLP getrennte Messung - "PAUSCHAL": "PAUSCHAL", # Pauschale Betrachtung (Band) -} -Bilanzierungsmethode = Enum("Bilanzierungsmethode", _bilanzierungsmethode) +Bilanzierungsmethode = Enum( + "Bilanzierungsmethode", + { + "RLM": "RLM", # Registrierende Leistungsmessung + "SLP": "SLP", # Standard Lastprofil + "TLP_GEMEINSAM": "TLP_GEMEINSAM", # TLP gemeinsame Messung + "TLP_GETRENNT": "TLP_GETRENNT", # TLP getrennte Messung + "PAUSCHAL": "PAUSCHAL", # Pauschale Betrachtung (Band) + }, +) diff --git a/src/bo4e/enum/botyp.py b/src/bo4e/enum/botyp.py index fb6063df1..ea852a3b9 100644 --- a/src/bo4e/enum/botyp.py +++ b/src/bo4e/enum/botyp.py @@ -4,34 +4,36 @@ from enum import Enum -_boTyp = { - "ANGEBOT": "ANGEBOT", - "ANSPRECHPARTNER": "ANSPRECHPARTNER", - "AUSSCHREIBUNG": "AUSSCHREIUNG", - "ENERGIEMENGE": "ENERGIEMENGE", - # It is practical to use the BoTyp Enum as discriminator in the database. - # Therefore we added one additional entry for GESCHAEFTSOBJEKT - # This is not defined by the documentation! - "GESCHAEFTSOBJEKT": "GESCHAEFTSOBJEKT", - "GESCHAEFTSPARTNER": "GESCHAEFTSPARTNER", - "KOSTEN": "KOSTEN", - "MARKTLOKATION": "MARKTLOKATION", - "MESSLOKATION": "MESSLOKATION", - "MARKTTEILNEHMER": "MARKTTEILNEHMER", - "NETZNUTZUNGSRECHNUNG": "NETZNUTZUNGSRECHNUNG", - "PREISBLATT": "PREISBLATT", - "PREISBLATTDIENSTLEISTUNG": "PREISBLATTDIENSTLEISTUNG", - "PREISBLATTKONZESSIONSABGABE": "PREISBLATTKONZESSIONSABGABE", - "PREISBLATTMESSUNG": "PREISBLATTMESSUNG", - "PREISBLATTNETZNUTZUNG": "PREISBLATTNETZNUTZUNG", - "PREISBLATTUMLAGEN": "PREISBLATTUMLAGEN", - "RECHNUNG": "RECHNUNG", - "REGIONALTARIF": "REGIONALTARIF", - "TARIFINFO": "TARIFINFO", - "TARIFKOSTEN": "TARIFKOSTEN", - "TARIFPREISBLATT": "TARIFPREISBLATT", - "VERTRAG": "VERTRAG", - "ZAEHLER": "ZAEHLER", - "ZEITREIHE": "ZEITREIHE", -} -BoTyp = Enum("BoTyp", _boTyp) +BoTyp = Enum( + "BoTyp", + { + "ANGEBOT": "ANGEBOT", + "ANSPRECHPARTNER": "ANSPRECHPARTNER", + "AUSSCHREIBUNG": "AUSSCHREIUNG", + "ENERGIEMENGE": "ENERGIEMENGE", + # It is practical to use the BoTyp Enum as discriminator in the database. + # Therefore we added one additional entry for GESCHAEFTSOBJEKT + # This is not defined by the documentation! + "GESCHAEFTSOBJEKT": "GESCHAEFTSOBJEKT", + "GESCHAEFTSPARTNER": "GESCHAEFTSPARTNER", + "KOSTEN": "KOSTEN", + "MARKTLOKATION": "MARKTLOKATION", + "MESSLOKATION": "MESSLOKATION", + "MARKTTEILNEHMER": "MARKTTEILNEHMER", + "NETZNUTZUNGSRECHNUNG": "NETZNUTZUNGSRECHNUNG", + "PREISBLATT": "PREISBLATT", + "PREISBLATTDIENSTLEISTUNG": "PREISBLATTDIENSTLEISTUNG", + "PREISBLATTKONZESSIONSABGABE": "PREISBLATTKONZESSIONSABGABE", + "PREISBLATTMESSUNG": "PREISBLATTMESSUNG", + "PREISBLATTNETZNUTZUNG": "PREISBLATTNETZNUTZUNG", + "PREISBLATTUMLAGEN": "PREISBLATTUMLAGEN", + "RECHNUNG": "RECHNUNG", + "REGIONALTARIF": "REGIONALTARIF", + "TARIFINFO": "TARIFINFO", + "TARIFKOSTEN": "TARIFKOSTEN", + "TARIFPREISBLATT": "TARIFPREISBLATT", + "VERTRAG": "VERTRAG", + "ZAEHLER": "ZAEHLER", + "ZEITREIHE": "ZEITREIHE", + }, +) diff --git a/src/bo4e/enum/dienstleistungstyp.py b/src/bo4e/enum/dienstleistungstyp.py index cd62eeb7d..e9d14e43f 100644 --- a/src/bo4e/enum/dienstleistungstyp.py +++ b/src/bo4e/enum/dienstleistungstyp.py @@ -4,41 +4,52 @@ from enum import Enum # pylint: disable=line-too-long -_dienstleistungstyp = { - "DATENBEREITSTELLUNG_TAEGLICH": "DATENBEREITSTELLUNG_TAEGLICH", # Datenbereitstellung täglich - "DATENBEREITSTELLUNG_WOECHENTLICH": "DATENBEREITSTELLUNG_WOECHENTLICH", # Datenbereitstellung wöchentlich - "DATENBEREITSTELLUNG_MONATLICH": "DATENBEREITSTELLUNG_MONATLICH", # Datenbereitstellung monatlich - "DATENBEREITSTELLUNG_JAEHRLICH": "DATENBEREITSTELLUNG_JAEHRLICH", # Datenbereitstellung jährlich - "DATENBEREITSTELLUNG_HISTORISCHE_LG": "DATENBEREITSTELLUNG_HISTORISCHE_LG", # Datenbereitstellung historischer Lastgänge - "DATENBEREITSTELLUNG_STUENDLICH": "DATENBEREITSTELLUNG_STUENDLICH", # Datenbereitstellung stündlich - "DATENBEREITSTELLUNG_VIERTELJAEHRLICH": "DATENBEREITSTELLUNG_VIERTELJAEHRLICH", # Datenbereitstellung vierteljährlich - "DATENBEREITSTELLUNG_HALBJAEHRLICH": "DATENBEREITSTELLUNG_HALBJAEHRLICH", # Datenbereitstellung halbjährlich - "DATENBEREITSTELLUNG_MONATLICH_ZUSAETZLICH": "DATENBEREITSTELLUNG_MONATLICH_ZUSAETZLICH", # Datenbereitstellung monatlich zusätzlich - "DATENBEREITSTELLUNG_EINMALIG": "DATENBEREITSTELLUNG_EINMALIG", # Datenbereitstellung einmalig - "AUSLESUNG_2X_TAEGLICH_FERNAUSLESUNG": "AUSLESUNG_2X_TAEGLICH_FERNAUSLESUNG", # Auslesung 2x täglich mittels Fernauslesung - "AUSLESUNG_TAEGLICH_FERNAUSLESUNG": "AUSLESUNG_TAEGLICH_FERNAUSLESUNG", # Auslesung täglich mittels Fernauslesung - "AUSLESUNG_MANUELL_MSB": "AUSLESUNG_MANUELL_MSB", # Auslesung, manuell vom Messstellenbetreiber vorgenommen - "AUSLESUNG_MONATLICH_FERNAUSLESUNG": "AUSLESUNG_MONATLICH_FERNAUSLESUNG", # Auslesung monatlich bei mittels Fernauslesung - "AUSLESUNG_JAEHRLICH_FERNAUSLESUNG": "AUSLESUNG_JAEHRLICH_FERNAUSLESUNG", # Auslesung jährlich bei SLP mittels Fernauslesung - "AUSLESUNG_MDE": "AUSLESUNG_MDE", # Auslesung mit mobiler Daten Erfassung (MDE) - "ABLESUNG_MONATLICH": "ABLESUNG_MONATLICH", # Ablesung monatlich - "ABLESUNG_VIERTELJAEHRLICH": "ABLESUNG_VIERTELJAEHRLICH", # Ablesung vierteljährlich - "ABLESUNG_HALBJAEHRLICH": "ABLESUNG_HALBJAEHRLICH", # Ablesung halbjährlich - "ABLESUNG_JAEHRLICH": "ABLESUNG_JAEHRLICH", # Ablesung jährlich - "AUSLESUNG_FERNAUSLESUNG": "AUSLESUNG_FERNAUSLESUNG", # Auslesung mittels Fernauslesung - "ABLESUNG_ZUSAETZLICH_MSB": "ABLESUNG_ZUSAETZLICH_MSB", # Ablesung, zusätzlich vom Messstellenbetreiber vorgenommen - "ABLESUNG_ZUSAETZLICH_KUNDE": "ABLESUNG_ZUSAETZLICH_KUNDE", # Ablesung SLP, zusätzlich vom Kunden vorgenommen - "AUSLESUNG_FERNAUSLESUNG_ZUSAETZLICH_MSB": "AUSLESUNG_FERNAUSLESUNG_ZUSAETZLICH_MSB", # Auslesung, mittels Fernauslesung, zusätzlich vom Messstellenbetreiber vorgenommen - "AUSLESUNG_MOATLICH_FERNAUSLESUNG": "AUSLESUNG_MOATLICH_FERNAUSLESUNG", # Auslesung monatlich mittels Fernauslesung - "AUSLESUNG_STUENDLICH_FERNAUSLESUNG": "AUSLESUNG_STUENDLICH_FERNAUSLESUNG", # Auslesung stündlich mittels Fernauslesung - "AUSLESUNG_TEMPERATURMENGENUMWERTER": "AUSLESUNG_TEMPERATURMENGENUMWERTER", # Auslesung Temperaturmengenumwerter - "AUSLESUNG_ZUSTANDSMENGENUMWERTER": "AUSLESUNG_ZUSTANDSMENGENUMWERTER", # Auslesung Zustandsmengenumwerter - "AUSLESUNG_SYSTEMMENGENUMWERTER": "AUSLESUNG_SYSTEMMENGENUMWERTER", # Auslesung Systemmengenumwerter - "AUSLESUNG_VORGANG": "AUSLESUNG_VORGANG", # Auslesung je Vorgang - "AUSLESUNG_KOMPAKTMENGENUMWERTER": "AUSLESUNG_KOMPAKTMENGENUMWERTER", # Auslesung Kompaktmengenumwerter - "SPERRUNG": "SPERRUNG", # Sperrung einer Abnahmestelle - "ENTSPERRUNG": "ENTSPERRUNG", # Entsperrung einer Abnahmestelle - "MAHNKOSTEN": "MAHNKOSTEN", # Mahnkosten - "INKASSOKOSTEN": "INKASSOKOSTEN", # Inkassokosten -} -Dienstleistungstyp: Enum = Enum("Dienstleistungstyp", _dienstleistungstyp) + +Dienstleistungstyp: Enum = Enum( + "Dienstleistungstyp", + { + "DATENBEREITSTELLUNG_TAEGLICH": "DATENBEREITSTELLUNG_TAEGLICH", # Datenbereitstellung täglich + "DATENBEREITSTELLUNG_WOECHENTLICH": "DATENBEREITSTELLUNG_WOECHENTLICH", # Datenbereitstellung wöchentlich + "DATENBEREITSTELLUNG_MONATLICH": "DATENBEREITSTELLUNG_MONATLICH", # Datenbereitstellung monatlich + "DATENBEREITSTELLUNG_JAEHRLICH": "DATENBEREITSTELLUNG_JAEHRLICH", # Datenbereitstellung jährlich + "DATENBEREITSTELLUNG_HISTORISCHE_LG": "DATENBEREITSTELLUNG_HISTORISCHE_LG", + # Datenbereitstellung historischer Lastgänge + "DATENBEREITSTELLUNG_STUENDLICH": "DATENBEREITSTELLUNG_STUENDLICH", # Datenbereitstellung stündlich + "DATENBEREITSTELLUNG_VIERTELJAEHRLICH": "DATENBEREITSTELLUNG_VIERTELJAEHRLICH", + # Datenbereitstellung vierteljährlich + "DATENBEREITSTELLUNG_HALBJAEHRLICH": "DATENBEREITSTELLUNG_HALBJAEHRLICH", # Datenbereitstellung halbjährlich + "DATENBEREITSTELLUNG_MONATLICH_ZUSAETZLICH": "DATENBEREITSTELLUNG_MONATLICH_ZUSAETZLICH", + # Datenbereitstellung monatlich zusätzlich + "DATENBEREITSTELLUNG_EINMALIG": "DATENBEREITSTELLUNG_EINMALIG", # Datenbereitstellung einmalig + "AUSLESUNG_2X_TAEGLICH_FERNAUSLESUNG": "AUSLESUNG_2X_TAEGLICH_FERNAUSLESUNG", + # Auslesung 2x täglich mittels Fernauslesung + "AUSLESUNG_TAEGLICH_FERNAUSLESUNG": "AUSLESUNG_TAEGLICH_FERNAUSLESUNG", # Auslesung täglich mittels Fernauslesung + "AUSLESUNG_MANUELL_MSB": "AUSLESUNG_MANUELL_MSB", # Auslesung, manuell vom Messstellenbetreiber vorgenommen + "AUSLESUNG_MONATLICH_FERNAUSLESUNG": "AUSLESUNG_MONATLICH_FERNAUSLESUNG", + # Auslesung monatlich bei mittels Fernauslesung + "AUSLESUNG_JAEHRLICH_FERNAUSLESUNG": "AUSLESUNG_JAEHRLICH_FERNAUSLESUNG", + # Auslesung jährlich bei SLP mittels Fernauslesung + "AUSLESUNG_MDE": "AUSLESUNG_MDE", # Auslesung mit mobiler Daten Erfassung (MDE) + "ABLESUNG_MONATLICH": "ABLESUNG_MONATLICH", # Ablesung monatlich + "ABLESUNG_VIERTELJAEHRLICH": "ABLESUNG_VIERTELJAEHRLICH", # Ablesung vierteljährlich + "ABLESUNG_HALBJAEHRLICH": "ABLESUNG_HALBJAEHRLICH", # Ablesung halbjährlich + "ABLESUNG_JAEHRLICH": "ABLESUNG_JAEHRLICH", # Ablesung jährlich + "AUSLESUNG_FERNAUSLESUNG": "AUSLESUNG_FERNAUSLESUNG", # Auslesung mittels Fernauslesung + "ABLESUNG_ZUSAETZLICH_MSB": "ABLESUNG_ZUSAETZLICH_MSB", # Ablesung, zusätzlich vom Messstellenbetreiber vorgenommen + "ABLESUNG_ZUSAETZLICH_KUNDE": "ABLESUNG_ZUSAETZLICH_KUNDE", # Ablesung SLP, zusätzlich vom Kunden vorgenommen + "AUSLESUNG_FERNAUSLESUNG_ZUSAETZLICH_MSB": "AUSLESUNG_FERNAUSLESUNG_ZUSAETZLICH_MSB", + # Auslesung, mittels Fernauslesung, zusätzlich vom Messstellenbetreiber vorgenommen + "AUSLESUNG_MOATLICH_FERNAUSLESUNG": "AUSLESUNG_MOATLICH_FERNAUSLESUNG", # Auslesung monatlich mittels Fernauslesung + "AUSLESUNG_STUENDLICH_FERNAUSLESUNG": "AUSLESUNG_STUENDLICH_FERNAUSLESUNG", + # Auslesung stündlich mittels Fernauslesung + "AUSLESUNG_TEMPERATURMENGENUMWERTER": "AUSLESUNG_TEMPERATURMENGENUMWERTER", # Auslesung Temperaturmengenumwerter + "AUSLESUNG_ZUSTANDSMENGENUMWERTER": "AUSLESUNG_ZUSTANDSMENGENUMWERTER", # Auslesung Zustandsmengenumwerter + "AUSLESUNG_SYSTEMMENGENUMWERTER": "AUSLESUNG_SYSTEMMENGENUMWERTER", # Auslesung Systemmengenumwerter + "AUSLESUNG_VORGANG": "AUSLESUNG_VORGANG", # Auslesung je Vorgang + "AUSLESUNG_KOMPAKTMENGENUMWERTER": "AUSLESUNG_KOMPAKTMENGENUMWERTER", # Auslesung Kompaktmengenumwerter + "SPERRUNG": "SPERRUNG", # Sperrung einer Abnahmestelle + "ENTSPERRUNG": "ENTSPERRUNG", # Entsperrung einer Abnahmestelle + "MAHNKOSTEN": "MAHNKOSTEN", # Mahnkosten + "INKASSOKOSTEN": "INKASSOKOSTEN", # Inkassokosten + }, +) diff --git a/src/bo4e/enum/energierichtung.py b/src/bo4e/enum/energierichtung.py index 1b929019b..ffca6eb58 100644 --- a/src/bo4e/enum/energierichtung.py +++ b/src/bo4e/enum/energierichtung.py @@ -3,5 +3,4 @@ """ from enum import Enum -_energierichtung = {"AUSSP": "AUSSP", "EINSP": "EINSP"} # Ausspeisung # Einspeisung -Energierichtung = Enum("Energierichtung", _energierichtung) +Energierichtung = Enum("Energierichtung", {"AUSSP": "AUSSP", "EINSP": "EINSP"}) # Ausspeisung # Einspeisung diff --git a/src/bo4e/enum/gasqualitaet.py b/src/bo4e/enum/gasqualitaet.py index 464203484..8e70e8eeb 100644 --- a/src/bo4e/enum/gasqualitaet.py +++ b/src/bo4e/enum/gasqualitaet.py @@ -3,8 +3,10 @@ """ from enum import Enum -_gasqualitaet = { - "H_GAS": "H_GAS", # High Caloric Gas - "L_GAS": "L_GAS", # Low Caloric Gas -} -Gasqualitaet = Enum("Gasqualitaet", _gasqualitaet) +Gasqualitaet = Enum( + "Gasqualitaet", + { + "H_GAS": "H_GAS", # High Caloric Gas + "L_GAS": "L_GAS", # Low Caloric Gas + }, +) # type: ignore diff --git a/src/bo4e/enum/gebiettyp.py b/src/bo4e/enum/gebiettyp.py index d42baedb8..7ed104c30 100644 --- a/src/bo4e/enum/gebiettyp.py +++ b/src/bo4e/enum/gebiettyp.py @@ -3,15 +3,17 @@ """ from enum import Enum -_gebiettyp = { - "REGELZONE": "REGELZONE", - "MARKTGEBIET": "MARKTGEBIET", - "BILANZIERUNGSGEBIET": "BILANZIERUNGSGEBIET", - "VERTEILNETZ": "VERTEILNETZ", - "TRANSPORTNETZ": "TRANSPORTNETZ", - "REGIONALNETZ": "REGIONALNETZ", - "AREALNETZ": "AREALNETZ", - "GRUNDVERSORGUNGSGEBIET": "GRUNDVERSORGUNGSGEBIET", - "VERSORGUNGSGEBIET": "VERSORGUNGSGEBIET", -} -Gebiettyp = Enum("Gebiettyp", _gebiettyp) +Gebiettyp = Enum( + "Gebiettyp", + { + "REGELZONE": "REGELZONE", + "MARKTGEBIET": "MARKTGEBIET", + "BILANZIERUNGSGEBIET": "BILANZIERUNGSGEBIET", + "VERTEILNETZ": "VERTEILNETZ", + "TRANSPORTNETZ": "TRANSPORTNETZ", + "REGIONALNETZ": "REGIONALNETZ", + "AREALNETZ": "AREALNETZ", + "GRUNDVERSORGUNGSGEBIET": "GRUNDVERSORGUNGSGEBIET", + "VERSORGUNGSGEBIET": "VERSORGUNGSGEBIET", + }, +) diff --git a/src/bo4e/enum/geraetetyp.py b/src/bo4e/enum/geraetetyp.py index 0e168fa63..70dc369b7 100644 --- a/src/bo4e/enum/geraetetyp.py +++ b/src/bo4e/enum/geraetetyp.py @@ -4,50 +4,53 @@ from enum import Enum # pylint: disable=line-too-long -_geraetetyp = { - "WECHSELSTROMZAEHLER": "WECHSELSTROMZAEHLER", # Wechselstromzähler - "DREHSTROMZAEHLER": "DREHSTROMZAEHLER", # Drehstromzähler - "ZWEIRICHTUNGSZAEHLER": "ZWEIRICHTUNGSZAEHLER", # Zweirichtungszähler - "RLM_ZAEHLER": "RLM_ZAEHLER", # RLM-Zähler - "BALGENGASZAEHLER": "BALGENGASZAEHLER", # Balgengaszähler - "MAXIMUMZAEHLER": "MAXIMUMZAEHLER", # Maximumzähler (Schleppzähler) - "MULTIPLEXANLAGE": "MULTIPLEXANLAGE", # Multiplexeranlage - "PAUSCHALANLAGE": "PAUSCHALANLAGE", # Pauschalanlagen - "VERSTAERKERANLAGE": "VERSTAERKERANLAGE", # Verstärkeranlage - "SUMMATIONSGERAET": "SUMMATIONSGERAET", # Summationsgerät - "IMPULSGEBER": "IMPULSGEBER", # Impulsgeber - "EDL_21_ZAEHLERAUFSATZ": "EDL_21_ZAEHLERAUFSATZ", # EDL 21 Zähleraufsatz für Zähler - "VIER_QUADRANTEN_LASTGANGZAEHLER": "VIER_QUADRANTEN_LASTGANGZAEHLER", # Vier-Quadranten-Lastgangzähler - "MENGENUMWERTER": "MENGENUMWERTER", # Mengenumwerter - "STROMWANDLER": "STROMWANDLER", # Stromwandler - "SPANNUNGSWANDLER": "SPANNUNGSWANDLER", # Spannungs-Wandler - "KOMBIMESSWANDLER": "KOMBIMESSWANDLER", # Kombimesswandler - "BLOCKSTROMWANDLER": "BLOCKSTROMWANDLER", # Blockstromwandler - "DATENLOGGER": "DATENLOGGER", # Datenlogger - "KOMMUNIKATIONSANSCHLUSS": "KOMMUNIKATIONSANSCHLUSS", # Kommunikationsanschluss - "MODEM": "MODEM", # Modem - "TELEKOMMUNIKATIONSEINRICHTUNG": "TELEKOMMUNIKATIONSEINRICHTUNG", # vom Messstellenbetreiber beigestellte Telekommunikationseinrichtung (Telefonanschluss) - "DREHKOLBENGASZAEHLER": "DREHKOLBENGASZAEHLER", # Drehkolbengaszähler - "TURBINENRADGASZAEHLER": "TURBINENRADGASZAEHLER", # Turbinenradgaszähler - "ULTRASCHALLZAEHLER": "ULTRASCHALLZAEHLER", # Ultraschallzähler - "WIRBELGASZAEHLER": "WIRBELGASZAEHLER", # Wirbelgaszähler - "MODERNE_MESSEINRICHTUNG": "MODERNE_MESSEINRICHTUNG", # moderne Messeinrichtung - "INTELLIGENTES_MESSYSTEM": "INTELLIGENTES_MESSYSTEM", # Intelligentes Messystem - "ELEKTRONISCHER_HAUSHALTSZAEHLER": "ELEKTRONISCHER_HAUSHALTSZAEHLER", # elektronischer Haushaltszähler - "STEUEREINRICHTUNG": "STEUEREINRICHTUNG", # Steuereinrichtung - "TARIFSCHALTGERAET": "TARIFSCHALTGERAET", # Tarifschaltgerät - "RUNDSTEUEREMPFAENGER": "RUNDSTEUEREMPFAENGER", # Rundsteuerempfänger - "OPTIONALE_ZUS_ZAEHLEINRICHTUNG": "OPTIONALE_ZUS_ZAEHLEINRICHTUNG", # optionale zusätzliche Zähleinrichtung - "MESSWANDLERSATZ_IMS_MME": "MESSWANDLERSATZ_IMS_MME", # Messwandlersatz Strom iMS und mME, NSP - "KOMBIMESSWANDLER_IMS_MME": "KOMBIMESSWANDLER_IMS_MME", # Kombimesswandlersatz (Strom u. Spg) iMS und mME - "TARIFSCHALTGERAET_IMS_MME": "TARIFSCHALTGERAET_IMS_MME", # Tarifschaltung iMS und mME - "RUNDSTEUEREMPFAENGER_IMS_MME": "RUNDSTEUEREMPFAENGER_IMS_MME", # Rundsteuerempfänger iMS und mME - "TEMPERATUR_KOMPENSATION": "TEMPERATUR_KOMPENSATION", # Temperaturkompensation - "HOECHSTBELASTUNGS_ANZEIGER": "HOECHSTBELASTUNGS_ANZEIGER", # Höchsbelastungsanzeiger - "SONSTIGES_GERAET": "SONSTIGES_GERAET", # Sonstiges Gerät - "PREPAYMENTZAEHLER": "PREPAYMENTZAEHLER", # Prepaymentzähler - "EDL_21": "EDL_21", # EDL21 - "96_H_ZAEHLER": "96_H_ZAEHLER", # 96 h Zähler - "EDL_40_ZAEHLERAUFSATZ": "EDL_40_ZAEHLERAUFSATZ", # EDL 40 Zähleraufsatz für Zähler -} -Geraetetyp = Enum("Geraetetyp", _geraetetyp) +Geraetetyp = Enum( + "Geraetetyp", + { + "WECHSELSTROMZAEHLER": "WECHSELSTROMZAEHLER", # Wechselstromzähler + "DREHSTROMZAEHLER": "DREHSTROMZAEHLER", # Drehstromzähler + "ZWEIRICHTUNGSZAEHLER": "ZWEIRICHTUNGSZAEHLER", # Zweirichtungszähler + "RLM_ZAEHLER": "RLM_ZAEHLER", # RLM-Zähler + "BALGENGASZAEHLER": "BALGENGASZAEHLER", # Balgengaszähler + "MAXIMUMZAEHLER": "MAXIMUMZAEHLER", # Maximumzähler (Schleppzähler) + "MULTIPLEXANLAGE": "MULTIPLEXANLAGE", # Multiplexeranlage + "PAUSCHALANLAGE": "PAUSCHALANLAGE", # Pauschalanlagen + "VERSTAERKERANLAGE": "VERSTAERKERANLAGE", # Verstärkeranlage + "SUMMATIONSGERAET": "SUMMATIONSGERAET", # Summationsgerät + "IMPULSGEBER": "IMPULSGEBER", # Impulsgeber + "EDL_21_ZAEHLERAUFSATZ": "EDL_21_ZAEHLERAUFSATZ", # EDL 21 Zähleraufsatz für Zähler + "VIER_QUADRANTEN_LASTGANGZAEHLER": "VIER_QUADRANTEN_LASTGANGZAEHLER", # Vier-Quadranten-Lastgangzähler + "MENGENUMWERTER": "MENGENUMWERTER", # Mengenumwerter + "STROMWANDLER": "STROMWANDLER", # Stromwandler + "SPANNUNGSWANDLER": "SPANNUNGSWANDLER", # Spannungs-Wandler + "KOMBIMESSWANDLER": "KOMBIMESSWANDLER", # Kombimesswandler + "BLOCKSTROMWANDLER": "BLOCKSTROMWANDLER", # Blockstromwandler + "DATENLOGGER": "DATENLOGGER", # Datenlogger + "KOMMUNIKATIONSANSCHLUSS": "KOMMUNIKATIONSANSCHLUSS", # Kommunikationsanschluss + "MODEM": "MODEM", # Modem + "TELEKOMMUNIKATIONSEINRICHTUNG": "TELEKOMMUNIKATIONSEINRICHTUNG", + # vom Messstellenbetreiber beigestellte Telekommunikationseinrichtung (Telefonanschluss) + "DREHKOLBENGASZAEHLER": "DREHKOLBENGASZAEHLER", # Drehkolbengaszähler + "TURBINENRADGASZAEHLER": "TURBINENRADGASZAEHLER", # Turbinenradgaszähler + "ULTRASCHALLZAEHLER": "ULTRASCHALLZAEHLER", # Ultraschallzähler + "WIRBELGASZAEHLER": "WIRBELGASZAEHLER", # Wirbelgaszähler + "MODERNE_MESSEINRICHTUNG": "MODERNE_MESSEINRICHTUNG", # moderne Messeinrichtung + "INTELLIGENTES_MESSYSTEM": "INTELLIGENTES_MESSYSTEM", # Intelligentes Messystem + "ELEKTRONISCHER_HAUSHALTSZAEHLER": "ELEKTRONISCHER_HAUSHALTSZAEHLER", # elektronischer Haushaltszähler + "STEUEREINRICHTUNG": "STEUEREINRICHTUNG", # Steuereinrichtung + "TARIFSCHALTGERAET": "TARIFSCHALTGERAET", # Tarifschaltgerät + "RUNDSTEUEREMPFAENGER": "RUNDSTEUEREMPFAENGER", # Rundsteuerempfänger + "OPTIONALE_ZUS_ZAEHLEINRICHTUNG": "OPTIONALE_ZUS_ZAEHLEINRICHTUNG", # optionale zusätzliche Zähleinrichtung + "MESSWANDLERSATZ_IMS_MME": "MESSWANDLERSATZ_IMS_MME", # Messwandlersatz Strom iMS und mME, NSP + "KOMBIMESSWANDLER_IMS_MME": "KOMBIMESSWANDLER_IMS_MME", # Kombimesswandlersatz (Strom u. Spg) iMS und mME + "TARIFSCHALTGERAET_IMS_MME": "TARIFSCHALTGERAET_IMS_MME", # Tarifschaltung iMS und mME + "RUNDSTEUEREMPFAENGER_IMS_MME": "RUNDSTEUEREMPFAENGER_IMS_MME", # Rundsteuerempfänger iMS und mME + "TEMPERATUR_KOMPENSATION": "TEMPERATUR_KOMPENSATION", # Temperaturkompensation + "HOECHSTBELASTUNGS_ANZEIGER": "HOECHSTBELASTUNGS_ANZEIGER", # Höchsbelastungsanzeiger + "SONSTIGES_GERAET": "SONSTIGES_GERAET", # Sonstiges Gerät + "PREPAYMENTZAEHLER": "PREPAYMENTZAEHLER", # Prepaymentzähler + "EDL_21": "EDL_21", # EDL21 + "96_H_ZAEHLER": "96_H_ZAEHLER", # 96 h Zähler + "EDL_40_ZAEHLERAUFSATZ": "EDL_40_ZAEHLERAUFSATZ", # EDL 40 Zähleraufsatz für Zähler + }, +) diff --git a/src/bo4e/enum/geschaeftspartnerrolle.py b/src/bo4e/enum/geschaeftspartnerrolle.py index 560bd8a35..9233e979c 100644 --- a/src/bo4e/enum/geschaeftspartnerrolle.py +++ b/src/bo4e/enum/geschaeftspartnerrolle.py @@ -3,11 +3,13 @@ """ from enum import Enum -_geschaeftspartnerrolle = { - "LIEFERANT": "LIEFERANT", - "DIENSTLEISTER": "DIENSTLEISTER", - "KUNDE": "KUNDE", - "INTERESSENT": "INTERESSENT", - "MARKTPARTNER": "MARKTPARTNER", -} -Geschaeftspartnerrolle = Enum("Geschaeftspartnerrolle", _geschaeftspartnerrolle) +Geschaeftspartnerrolle = Enum( + "Geschaeftspartnerrolle", + { + "LIEFERANT": "LIEFERANT", + "DIENSTLEISTER": "DIENSTLEISTER", + "KUNDE": "KUNDE", + "INTERESSENT": "INTERESSENT", + "MARKTPARTNER": "MARKTPARTNER", + }, +) diff --git a/src/bo4e/enum/kontaktart.py b/src/bo4e/enum/kontaktart.py index f0b5942bb..518508fc5 100644 --- a/src/bo4e/enum/kontaktart.py +++ b/src/bo4e/enum/kontaktart.py @@ -3,11 +3,13 @@ """ from enum import Enum -_kontaktart = { - "ANSCHREIBEN": "ANSCHREIBEN", - "TELEFONAT": "TELEFONAT", - "FAX": "FAX", - "E_MAIL": "E_MAIL", - "SMS": "SMS", -} -Kontaktart = Enum("Kontaktart", _kontaktart) +Kontaktart = Enum( + "Kontaktart", + { + "ANSCHREIBEN": "ANSCHREIBEN", + "TELEFONAT": "TELEFONAT", + "FAX": "FAX", + "E_MAIL": "E_MAIL", + "SMS": "SMS", + }, +) diff --git a/src/bo4e/enum/landescode.py b/src/bo4e/enum/landescode.py index f8a9fd5a5..a21211c0f 100644 --- a/src/bo4e/enum/landescode.py +++ b/src/bo4e/enum/landescode.py @@ -3,8 +3,8 @@ """ from enum import Enum -from iso3166 import countries +from iso3166 import countries # type: ignore alpha2codes = {c.alpha2: c.alpha2 for c in countries} -Landescode = Enum("Landescode", alpha2codes) +Landescode = Enum("Landescode", alpha2codes) # type: ignore diff --git a/src/bo4e/enum/marktrolle.py b/src/bo4e/enum/marktrolle.py index 9682e9cf0..bbbefe919 100644 --- a/src/bo4e/enum/marktrolle.py +++ b/src/bo4e/enum/marktrolle.py @@ -3,20 +3,22 @@ """ from enum import Enum -_marktrolle = { - "NB": "NB", # Grid Operator - "LF": "LF", # Supplier - "MSB": "MSB", # Messstellenbetreiber - "DL": "DL", # Dienstleister - "BKV": "BKV", # Bilanzkreisverantwortlicher, - "BKO": "BKO", # Bilanzkoordinator / Marktgebietsverantwortlicher - "UENB": "UENB", # Übertragungsnetzbetreiber - "KUNDE_SELBST_NN": "KUNDE_SELBST_NN", # Kunden, die Netznutzungsentgelte selbst zahlen - "MGV": "MGV", # Marktgebietsverantwortlicher - "EIV": "EIV", # Einsatzverantwortlicher - "RB": "RB", # Registerbetreiber - "KUNDE": "KUNDE", - "INTERESSENT": "INTERESSENT", - "BTR": "BTR", # Betreiber einer technischen Ressource -} -Marktrolle = Enum("Marktrolle", _marktrolle) +Marktrolle = Enum( + "Marktrolle", + { + "NB": "NB", # Grid Operator + "LF": "LF", # Supplier + "MSB": "MSB", # Messstellenbetreiber + "DL": "DL", # Dienstleister + "BKV": "BKV", # Bilanzkreisverantwortlicher, + "BKO": "BKO", # Bilanzkoordinator / Marktgebietsverantwortlicher + "UENB": "UENB", # Übertragungsnetzbetreiber + "KUNDE_SELBST_NN": "KUNDE_SELBST_NN", # Kunden, die Netznutzungsentgelte selbst zahlen + "MGV": "MGV", # Marktgebietsverantwortlicher + "EIV": "EIV", # Einsatzverantwortlicher + "RB": "RB", # Registerbetreiber + "KUNDE": "KUNDE", + "INTERESSENT": "INTERESSENT", + "BTR": "BTR", # Betreiber einer technischen Ressource + }, +) diff --git a/src/bo4e/enum/mengeneinheit.py b/src/bo4e/enum/mengeneinheit.py index 1eb29136e..aceb96759 100644 --- a/src/bo4e/enum/mengeneinheit.py +++ b/src/bo4e/enum/mengeneinheit.py @@ -3,20 +3,22 @@ """ from enum import Enum -_mengeneinheit = { - "W": "W", # Watt - "WH": "WH", # Wattstunde - "KW": "KW", # Kilowatt - "KWH": "KWH", # Kilowattstunde - "KVARH": "KVARH", # Kilovarstunde - "MW": "MW", # Megawatt - "MWH": "MWH", # Megawattstunde - "STUECK": "STUECK", # Stückzahl - "KUBIKMETER": "KUBIKMETER", # Kubikmeter (Gas) - "STUNDE": "STUNDE", # Stunde - "TAG": "TAG", # Tage - "MONAT": "MONAT", # Monat - "JAHR": "JAHR", # Jahr - "PROZENT": "PROZENT", # Prozent -} -Mengeneinheit = Enum("Mengeneinheit", _mengeneinheit) +Mengeneinheit = Enum( + "Mengeneinheit", + { + "W": "W", # Watt + "WH": "WH", # Wattstunde + "KW": "KW", # Kilowatt + "KWH": "KWH", # Kilowattstunde + "KVARH": "KVARH", # Kilovarstunde + "MW": "MW", # Megawatt + "MWH": "MWH", # Megawattstunde + "STUECK": "STUECK", # Stückzahl + "KUBIKMETER": "KUBIKMETER", # Kubikmeter (Gas) + "STUNDE": "STUNDE", # Stunde + "TAG": "TAG", # Tage + "MONAT": "MONAT", # Monat + "JAHR": "JAHR", # Jahr + "PROZENT": "PROZENT", # Prozent + }, +) diff --git a/src/bo4e/enum/netzebene.py b/src/bo4e/enum/netzebene.py index e15094875..c31ad07c5 100644 --- a/src/bo4e/enum/netzebene.py +++ b/src/bo4e/enum/netzebene.py @@ -4,16 +4,18 @@ from enum import Enum -_netzebene = { - "NSP": "NSP", # Niederspannung; Strom - "MSP": "MSP", # Mittelspannung; Strom - "HSP": "HSP", # Hochspannung; Strom - "HSS": "HSS", # Hoechstspannung; Strom - "MSP_NSP_UMSP": "MSP_NSP_UMSP", # MS/NS Umspannung; Strom - "HSP_MSP_UMSP": "HSP_MSP_UMSP", # HS/MS Umspannung; Strom - "HSS_HSP_UMSP": "HSS_HSP_UMSP", # HOES/HS Umspannung; Strom - "HD": "HD", # Hochdruck; Gas - "MD": "MD", # Mitteldruck; Gas - "ND": "ND", # Niederdruck; Gas -} -Netzebene = Enum("Netzebene", _netzebene) +Netzebene = Enum( + "Netzebene", + { + "NSP": "NSP", # Niederspannung; Strom + "MSP": "MSP", # Mittelspannung; Strom + "HSP": "HSP", # Hochspannung; Strom + "HSS": "HSS", # Hoechstspannung; Strom + "MSP_NSP_UMSP": "MSP_NSP_UMSP", # MS/NS Umspannung; Strom + "HSP_MSP_UMSP": "HSP_MSP_UMSP", # HS/MS Umspannung; Strom + "HSS_HSP_UMSP": "HSS_HSP_UMSP", # HOES/HS Umspannung; Strom + "HD": "HD", # Hochdruck; Gas + "MD": "MD", # Mitteldruck; Gas + "ND": "ND", # Niederdruck; Gas + }, +) diff --git a/src/bo4e/enum/rollencodetyp.py b/src/bo4e/enum/rollencodetyp.py index f9a84147f..3c3311903 100644 --- a/src/bo4e/enum/rollencodetyp.py +++ b/src/bo4e/enum/rollencodetyp.py @@ -4,9 +4,11 @@ from enum import Enum -_rollenrodetyp = { - "BDEW": "BDEW", # Bundesverband der Energie- u. Wasserwirtschaft - "DVG": "DVG", # Deutscher Verein des Gas- und Wasserfaches - "GLN": "GLN", # Global Location Number -} -Rollencodetyp = Enum("Rollencodetyp", _rollenrodetyp) +Rollencodetyp = Enum( + "Rollencodetyp", + { + "BDEW": "BDEW", # Bundesverband der Energie- u. Wasserwirtschaft + "DVG": "DVG", # Deutscher Verein des Gas- und Wasserfaches + "GLN": "GLN", # Global Location Number + }, +) diff --git a/src/bo4e/enum/rufnummernart.py b/src/bo4e/enum/rufnummernart.py index 24733be44..e5b3484dc 100644 --- a/src/bo4e/enum/rufnummernart.py +++ b/src/bo4e/enum/rufnummernart.py @@ -4,15 +4,17 @@ from enum import Enum -_rufnummernart = { - "RUF_ZENTRALE": "RUF_ZENTRALE", # Rufnummer Zentrale - "FAX_ZENTRALE": "FAX_ZENTRALE", # Faxnummer Zentrale - "SAMMELRUF": "SAMMELRUF", # Sammelrufnummer - "SAMMELFAX": "SAMMELFAX", # Sammelfaxnummer - "ABTEILUNGRUF": "ABTEILUNGRUF", # Rufnummer Abteilung - "ABTEILUNGFAX": "ABTEILUNGFAX", # Faxnummer Abteilung - "RUF_DURCHWAHL": "RUF_DURCHWAHL", # Rufnummer Durchwahl - "FAX_DURCHWAHL": "FAX_DURCHWAHL", # Faxnummer Durchwahl - "MOBIL_NUMMER": "MOBIL_NUMMER", # Nummer des mobilen Telefons -} -Rufnummernart = Enum("Rufnummernart", _rufnummernart) +Rufnummernart = Enum( + "Rufnummernart", + { + "RUF_ZENTRALE": "RUF_ZENTRALE", # Rufnummer Zentrale + "FAX_ZENTRALE": "FAX_ZENTRALE", # Faxnummer Zentrale + "SAMMELRUF": "SAMMELRUF", # Sammelrufnummer + "SAMMELFAX": "SAMMELFAX", # Sammelfaxnummer + "ABTEILUNGRUF": "ABTEILUNGRUF", # Rufnummer Abteilung + "ABTEILUNGFAX": "ABTEILUNGFAX", # Faxnummer Abteilung + "RUF_DURCHWAHL": "RUF_DURCHWAHL", # Rufnummer Durchwahl + "FAX_DURCHWAHL": "FAX_DURCHWAHL", # Faxnummer Durchwahl + "MOBIL_NUMMER": "MOBIL_NUMMER", # Nummer des mobilen Telefons + }, +) diff --git a/src/bo4e/enum/sparte.py b/src/bo4e/enum/sparte.py index 9bd628b6d..b38b3fc80 100644 --- a/src/bo4e/enum/sparte.py +++ b/src/bo4e/enum/sparte.py @@ -3,12 +3,14 @@ """ from enum import Enum -_sparte = { - "STROM": "STROM", - "GAS": "GAS", - "FERNWAERME": "FERNWAERME", - "NAHWAERME": "NAHWAERME", - "WASSER": "WASSER", - "ABWASSER": "ABWASSER", -} -Sparte = Enum("Sparte", _sparte) +Sparte = Enum( + "Sparte", + { + "STROM": "STROM", + "GAS": "GAS", + "FERNWAERME": "FERNWAERME", + "NAHWAERME": "NAHWAERME", + "WASSER": "WASSER", + "ABWASSER": "ABWASSER", + }, +) diff --git a/src/bo4e/enum/tarifart.py b/src/bo4e/enum/tarifart.py index 95d661932..0d557ed61 100644 --- a/src/bo4e/enum/tarifart.py +++ b/src/bo4e/enum/tarifart.py @@ -4,11 +4,13 @@ from enum import Enum -_tarifart = { - "EINTARIF": "EINTARIF", # Eintarif - "ZWEITARIF": "ZWEITARIF", # Zweitarif - "MEHRTARIF": "MEHRTARIF", # Mehrtarif - "SMART_METER": "SMART_METER", # Smart Meter Tarif - "LEISTUNGSGEMESSEN": "LEISTUNGSGEMESSEN", # Leistungsgemessener Tarif -} -Tarifart = Enum("Tarifart", _tarifart) +Tarifart = Enum( + "Tarifart", + { + "EINTARIF": "EINTARIF", # Eintarif + "ZWEITARIF": "ZWEITARIF", # Zweitarif + "MEHRTARIF": "MEHRTARIF", # Mehrtarif + "SMART_METER": "SMART_METER", # Smart Meter Tarif + "LEISTUNGSGEMESSEN": "LEISTUNGSGEMESSEN", # Leistungsgemessener Tarif + }, +) diff --git a/src/bo4e/enum/themengebiet.py b/src/bo4e/enum/themengebiet.py index b6dbbb386..5ec2bd5ad 100644 --- a/src/bo4e/enum/themengebiet.py +++ b/src/bo4e/enum/themengebiet.py @@ -4,68 +4,68 @@ from enum import Enum - -_themengebiet = { - "ALLGEMEINER_INFORMATIONSAUSTAUSCH": "ALLGEMEINER_INFORMATIONSAUSTAUSCH", # Allgemeiner Informationsaustausch - "AN_UND_ABMELDUNG": "AN_UND_ABMELDUNG", # An- und Abmeldung - "ANSPRECHPARTNER_ALLGEMEIN": "ANSPRECHPARTNER_ALLGEMEIN", # Ansprechpartner Allgemein - "ANSPRECHPARTNER_BDEW_DVGW": "ANSPRECHPARTNER_BDEW_DVGW", # Ansprechpartner BDEW/DVGW - "ANSPRECHPARTNER_IT_TECHNIK": "ANSPRECHPARTNER_IT_TECHNIK", # Ansprechpartner IT/Technik - "BILANZIERUNG": "BILANZIERUNG", # Bilanzierung - "BILANZKREISKOORDINATOR": "BILANZKREISKOORDINATOR", # Bilanzkreiskoordinator - "BILANZKREISVERANTWORTLICHER": "BILANZKREISVERANTWORTLICHER", # Bilanzkreisverantwortlicher - "DATENFORMATE_ZERTIFIKATE_VERSCHLUESSELUNGEN": "DATENFORMATE_ZERTIFIKATE_VERSCHLUESSELUNGEN", - # Datenformate, Zertifikate, Verschlüsselungen - "DEBITORENMANAGEMENT": "DEBITORENMANAGEMENT", # Debitorenmanagement - "DEMAND_SIDE_MANAGEMENT": "DEMAND_SIDE_MANAGEMENT", # Demand-Side-Management - "EDI_VEREINBARUNG": "EDI_VEREINBARUNG", # EDI-Vereinbarung - "EDIFACT": "EDIFACT", # EDIFACT - "ENERGIEDATENMANAGEMENT": "ENERGIEDATENMANAGEMENT", # Energiedatenmanagement - "FAHRPLANMANAGEMENT": "FAHRPLANMANAGEMENT", # Fahrplanmanagement - "ALOCAT": "ALOCAT", # Format:ALOCAT - "APERAK": "APERAK", # Format:APERAK - "CONTRL": "CONTRL", # Format:CONTRL - "INVOIC": "INVOIC", # Format:INVOIC - "MSCONS": "MSCONS", # Format:MSCONS - "ORDERS": "ORDERS", # Format:ORDERS - "ORDERSP": "ORDERSP", # Format:ORDERSP - "REMADV": "REMADV", # Format:REMADV - "UTILMD": "UTILMD", # Format:UTILMD - "GABI": "GABI", # GaBi Gas - "GELI": "GELI", # GeLi Gas - "GERAETERUECKGABE": "GERAETERUECKGABE", # Geräterückgabe - "GERAETEWECHSEL": "GERAETEWECHSEL", # Gerätewechsel - "GPKE": "GPKE", # GPKE - "INBETRIEBNAHME": "INBETRIEBNAHME", # Inbetriebnahme - "KAPAZITAETSMANAGEMENT": "KAPAZITAETSMANAGEMENT", # Kapazitätsmanagement - "KLAERFAELLE": "KLAERFAELLE", # Klärfälle - "LASTGAENGE_RLM": "LASTGAENGE_RLM", # Lastgänge RLM - "LIEFERANTENRAHMENVERTRAG": "LIEFERANTENRAHMENVERTRAG", # Lieferantenrahmenvertrag - "LIEFERANTENWECHSEL": "LIEFERANTENWECHSEL", # Lieferantenwechsel - "MABIS": "MABIS", # MaBiS - "MAHNWESEN": "MAHNWESEN", # Mahnwesen - "MARKTGEBIETSVERANTWORTLICHER": "MARKTGEBIETSVERANTWORTLICHER", # Marktgebietsverantwortlicher - "MARKTKOMMUNIKATION": "MARKTKOMMUNIKATION", # Marktkommunikation - "MEHR_MINDERMENGEN": "MEHR_MINDERMENGEN", # Mehr- Mindermengen - "MSB_MDL": "MSB_MDL", # MSB - MDL - "NETZABRECHNUNG": "NETZABRECHNUNG", # Netzabrechnung - "NETZENTGELTE": "NETZENTGELTE", # Netzentgelte - "NETZMANAGEMENT": "NETZMANAGEMENT", # Netzmanagement - "RECHT": "RECHT", # Recht - "REGULIERUNGSMANAGEMENT": "REGULIERUNGSMANAGEMENT", # Regulierungsmanagement - "REKLAMATIONEN": "REKLAMATIONEN", # Reklamationen - "SPERREN_ENTSPERREN_INKASSO": "SPERREN_ENTSPERREN_INKASSO", # Sperren/Entsperren/Inkasso - "STAMMDATEN": "STAMMDATEN", # Stammdaten - "STOERUNGSFAELLE": "STOERUNGSFAELLE", # Übermittlung_Störungsfälle - "TECHNISCHE_FRAGEN": "TECHNISCHE_FRAGEN", # Technische Fragen - "UMSTELLUNG_INVOIC": "UMSTELLUNG_INVOIC", # Umstellung INVOIC - "VERSCHLUESSELUNG_SIGNATUR": "VERSCHLUESSELUNG_SIGNATUR", # Verschlüsselung/Signatur - "VERTRAGSMANAGEMENT": "VERTRAGSMANAGEMENT", # Vertragsmanagement - "VERTRIEB": "VERTRIEB", # Vertrieb - "WIM": "WIM", # WiM - "ZAEHLERSTAENDE_SLP": "ZAEHLERSTAENDE_SLP", # Zählerstände SLP - "ZAHLUNGSVERKEHR": "ZAHLUNGSVERKEHR", # Zahlungsverkehr - "ZUORDNUNGSVEREINBARUNG": "ZUORDNUNGSVEREINBARUNG", # Zuordnungsvereinbarung -} - -Themengebiet = Enum("Themengebiet", _themengebiet) +Themengebiet = Enum( + "Themengebiet", + { + "ALLGEMEINER_INFORMATIONSAUSTAUSCH": "ALLGEMEINER_INFORMATIONSAUSTAUSCH", # Allgemeiner Informationsaustausch + "AN_UND_ABMELDUNG": "AN_UND_ABMELDUNG", # An- und Abmeldung + "ANSPRECHPARTNER_ALLGEMEIN": "ANSPRECHPARTNER_ALLGEMEIN", # Ansprechpartner Allgemein + "ANSPRECHPARTNER_BDEW_DVGW": "ANSPRECHPARTNER_BDEW_DVGW", # Ansprechpartner BDEW/DVGW + "ANSPRECHPARTNER_IT_TECHNIK": "ANSPRECHPARTNER_IT_TECHNIK", # Ansprechpartner IT/Technik + "BILANZIERUNG": "BILANZIERUNG", # Bilanzierung + "BILANZKREISKOORDINATOR": "BILANZKREISKOORDINATOR", # Bilanzkreiskoordinator + "BILANZKREISVERANTWORTLICHER": "BILANZKREISVERANTWORTLICHER", # Bilanzkreisverantwortlicher + "DATENFORMATE_ZERTIFIKATE_VERSCHLUESSELUNGEN": "DATENFORMATE_ZERTIFIKATE_VERSCHLUESSELUNGEN", + # Datenformate, Zertifikate, Verschlüsselungen + "DEBITORENMANAGEMENT": "DEBITORENMANAGEMENT", # Debitorenmanagement + "DEMAND_SIDE_MANAGEMENT": "DEMAND_SIDE_MANAGEMENT", # Demand-Side-Management + "EDI_VEREINBARUNG": "EDI_VEREINBARUNG", # EDI-Vereinbarung + "EDIFACT": "EDIFACT", # EDIFACT + "ENERGIEDATENMANAGEMENT": "ENERGIEDATENMANAGEMENT", # Energiedatenmanagement + "FAHRPLANMANAGEMENT": "FAHRPLANMANAGEMENT", # Fahrplanmanagement + "ALOCAT": "ALOCAT", # Format:ALOCAT + "APERAK": "APERAK", # Format:APERAK + "CONTRL": "CONTRL", # Format:CONTRL + "INVOIC": "INVOIC", # Format:INVOIC + "MSCONS": "MSCONS", # Format:MSCONS + "ORDERS": "ORDERS", # Format:ORDERS + "ORDERSP": "ORDERSP", # Format:ORDERSP + "REMADV": "REMADV", # Format:REMADV + "UTILMD": "UTILMD", # Format:UTILMD + "GABI": "GABI", # GaBi Gas + "GELI": "GELI", # GeLi Gas + "GERAETERUECKGABE": "GERAETERUECKGABE", # Geräterückgabe + "GERAETEWECHSEL": "GERAETEWECHSEL", # Gerätewechsel + "GPKE": "GPKE", # GPKE + "INBETRIEBNAHME": "INBETRIEBNAHME", # Inbetriebnahme + "KAPAZITAETSMANAGEMENT": "KAPAZITAETSMANAGEMENT", # Kapazitätsmanagement + "KLAERFAELLE": "KLAERFAELLE", # Klärfälle + "LASTGAENGE_RLM": "LASTGAENGE_RLM", # Lastgänge RLM + "LIEFERANTENRAHMENVERTRAG": "LIEFERANTENRAHMENVERTRAG", # Lieferantenrahmenvertrag + "LIEFERANTENWECHSEL": "LIEFERANTENWECHSEL", # Lieferantenwechsel + "MABIS": "MABIS", # MaBiS + "MAHNWESEN": "MAHNWESEN", # Mahnwesen + "MARKTGEBIETSVERANTWORTLICHER": "MARKTGEBIETSVERANTWORTLICHER", # Marktgebietsverantwortlicher + "MARKTKOMMUNIKATION": "MARKTKOMMUNIKATION", # Marktkommunikation + "MEHR_MINDERMENGEN": "MEHR_MINDERMENGEN", # Mehr- Mindermengen + "MSB_MDL": "MSB_MDL", # MSB - MDL + "NETZABRECHNUNG": "NETZABRECHNUNG", # Netzabrechnung + "NETZENTGELTE": "NETZENTGELTE", # Netzentgelte + "NETZMANAGEMENT": "NETZMANAGEMENT", # Netzmanagement + "RECHT": "RECHT", # Recht + "REGULIERUNGSMANAGEMENT": "REGULIERUNGSMANAGEMENT", # Regulierungsmanagement + "REKLAMATIONEN": "REKLAMATIONEN", # Reklamationen + "SPERREN_ENTSPERREN_INKASSO": "SPERREN_ENTSPERREN_INKASSO", # Sperren/Entsperren/Inkasso + "STAMMDATEN": "STAMMDATEN", # Stammdaten + "STOERUNGSFAELLE": "STOERUNGSFAELLE", # Übermittlung_Störungsfälle + "TECHNISCHE_FRAGEN": "TECHNISCHE_FRAGEN", # Technische Fragen + "UMSTELLUNG_INVOIC": "UMSTELLUNG_INVOIC", # Umstellung INVOIC + "VERSCHLUESSELUNG_SIGNATUR": "VERSCHLUESSELUNG_SIGNATUR", # Verschlüsselung/Signatur + "VERTRAGSMANAGEMENT": "VERTRAGSMANAGEMENT", # Vertragsmanagement + "VERTRIEB": "VERTRIEB", # Vertrieb + "WIM": "WIM", # WiM + "ZAEHLERSTAENDE_SLP": "ZAEHLERSTAENDE_SLP", # Zählerstände SLP + "ZAHLUNGSVERKEHR": "ZAHLUNGSVERKEHR", # Zahlungsverkehr + "ZUORDNUNGSVEREINBARUNG": "ZUORDNUNGSVEREINBARUNG", # Zuordnungsvereinbarung + }, +) diff --git a/src/bo4e/enum/titel.py b/src/bo4e/enum/titel.py index 8fa6b92ed..c3b06b9d4 100644 --- a/src/bo4e/enum/titel.py +++ b/src/bo4e/enum/titel.py @@ -4,9 +4,11 @@ from enum import Enum -_titel = { - "DR": "DR", # Doktor - "PROF": "PROF", # Professor - "PROF_DR": "PROF_DR", # Professor Dr. -} -Titel = Enum("Titel", _titel) +Titel = Enum( + "Titel", + { + "DR": "DR", # Doktor*In + "PROF": "PROF", # Professor*In + "PROF_DR": "PROF_DR", # Professor*In Dr. + }, +) diff --git a/src/bo4e/enum/verbrauchsart.py b/src/bo4e/enum/verbrauchsart.py index 010ffc7b3..d8de65444 100644 --- a/src/bo4e/enum/verbrauchsart.py +++ b/src/bo4e/enum/verbrauchsart.py @@ -3,11 +3,13 @@ """ from enum import Enum -_verbrauchsart = { - "KL": "KL", # Kraft/Licht - "KLW": "KLW", # Kraft/Licht/Wärme - "KLWS": "KLWS", # Kraft/Licht/Wärme/Speicherheizung - "W": "W", # Wärme - "WS": "WS", # Wärme/Speicherheizung -} -Verbrauchsart = Enum("Verbrauchsart", _verbrauchsart) +Verbrauchsart = Enum( + "Verbrauchsart", + { + "KL": "KL", # Kraft/Licht + "KLW": "KLW", # Kraft/Licht/Wärme + "KLWS": "KLWS", # Kraft/Licht/Wärme/Speicherheizung + "W": "W", # Wärme + "WS": "WS", # Wärme/Speicherheizung + }, +) diff --git a/src/bo4e/enum/vertragsart.py b/src/bo4e/enum/vertragsart.py index d96128459..e243dfc32 100644 --- a/src/bo4e/enum/vertragsart.py +++ b/src/bo4e/enum/vertragsart.py @@ -3,11 +3,13 @@ """ from enum import Enum -_vertragsart = { - "ENERGIELIEFERVERTRAG": "ENERGIELIEFERVERTRAG", # Energieliefervertrag - "NETZNUTZUNGSVERTRAG": "NETZNUTZUNGSVERTRAG", # Netznutzungsvertrag - "BILANZIERUNGSVERTRAG": "BILANZIERUNGSVERTRAG", # Bilanzierungsvertrag - "MESSSTELLENBETRIEBSVERTRAG": "MESSSTELLENBETRIEBSVERTRAG", # Messstellenabetriebsvertrag - "BUENDELVERTRAG": "BUENDELVERTRAG", # Bündelvertrag -} -Vertragsart = Enum("Vertragsart", _vertragsart) +Vertragsart = Enum( + "Vertragsart", + { + "ENERGIELIEFERVERTRAG": "ENERGIELIEFERVERTRAG", # Energieliefervertrag + "NETZNUTZUNGSVERTRAG": "NETZNUTZUNGSVERTRAG", # Netznutzungsvertrag + "BILANZIERUNGSVERTRAG": "BILANZIERUNGSVERTRAG", # Bilanzierungsvertrag + "MESSSTELLENBETRIEBSVERTRAG": "MESSSTELLENBETRIEBSVERTRAG", # Messstellenabetriebsvertrag + "BUENDELVERTRAG": "BUENDELVERTRAG", # Bündelvertrag + }, +) diff --git a/src/bo4e/enum/vertragsstatus.py b/src/bo4e/enum/vertragsstatus.py index b6912241b..a4843f684 100644 --- a/src/bo4e/enum/vertragsstatus.py +++ b/src/bo4e/enum/vertragsstatus.py @@ -3,15 +3,17 @@ """ from enum import Enum -_vertragsstatus = { - "IN_ARBEIT": "IN_ARBEIT", # in Arbeit - "UEBERMITTELT": "UEBERMITTELT", # übermittelt - "ANGENOMMEN": "ANGENOMMEN", # angenommen - "AKTIV": "AKTIV", # aktiv - "ABGELEHNT": "ABGELEHNT", # abgelehnt - "WIDERRUFEN": "WIDERRUFEN", # widerrufen - "STORNIERT": "STORNIERT", # storniert - "GEKUENDIGT": "GEKUENDIGT", # gekündigt - "BEENDET": "BEENDET", # beendet -} -Vertragsstatus = Enum("Vertragsstatus", _vertragsstatus) +Vertragsstatus = Enum( + "Vertragsstatus", + { + "IN_ARBEIT": "IN_ARBEIT", # in Arbeit + "UEBERMITTELT": "UEBERMITTELT", # übermittelt + "ANGENOMMEN": "ANGENOMMEN", # angenommen + "AKTIV": "AKTIV", # aktiv + "ABGELEHNT": "ABGELEHNT", # abgelehnt + "WIDERRUFEN": "WIDERRUFEN", # widerrufen + "STORNIERT": "STORNIERT", # storniert + "GEKUENDIGT": "GEKUENDIGT", # gekündigt + "BEENDET": "BEENDET", # beendet + }, +) diff --git a/src/bo4e/enum/zaehlerauspraegung.py b/src/bo4e/enum/zaehlerauspraegung.py index 0594873aa..4d8103092 100644 --- a/src/bo4e/enum/zaehlerauspraegung.py +++ b/src/bo4e/enum/zaehlerauspraegung.py @@ -4,8 +4,10 @@ from enum import Enum -_zaehlerauspraegung = { - "EINRICHTUNGSZAEHLER": "EINRICHTUNGSZAEHLER", # Einrichtungszaehler - "ZWEIRICHTUNGSZAEHLER": "ZWEIRICHTUNGSZAEHLER", # Zweirichtungszaehler -} -Zaehlerauspraegung = Enum("Zaehlerauspraegung", _zaehlerauspraegung) +Zaehlerauspraegung = Enum( + "Zaehlerauspraegung", + { + "EINRICHTUNGSZAEHLER": "EINRICHTUNGSZAEHLER", # Einrichtungszaehler + "ZWEIRICHTUNGSZAEHLER": "ZWEIRICHTUNGSZAEHLER", # Zweirichtungszaehler + }, +) diff --git a/src/bo4e/enum/zaehlertyp.py b/src/bo4e/enum/zaehlertyp.py index e3c8e7cd5..e5bd9223e 100644 --- a/src/bo4e/enum/zaehlertyp.py +++ b/src/bo4e/enum/zaehlertyp.py @@ -4,15 +4,17 @@ from enum import Enum -_zaehlertyp = { - "DREHSTROMZAEHLER": "DREHSTROMZAEHLER", # Drehstromzähler - "BALGENGASZAEHLER": "BALGENGASZAEHLER", # Balgengaszähler - "DREHKOLBENZAEHLER": "DREHKOLBENZAEHLER", # Drehkolbengaszähler - "SMARTMETER": "SMARTMETER", # Smart Meter Zähler - "LEISTUNGSZAEHLER": "LEISTUNGSZAEHLER", # leistungsmessender Zähler - "MAXIMUMZAEHLER": "MAXIMUMZAEHLER", # Maximumzähler - "TURBINENRADGASZAEHLER": "TURBINENRADGASZAEHLER", # Turbinenradgaszähler - "ULTRASCHALLGASZAEHLER": "ULTRASCHALLGASZAEHLER", # Ultraschallgaszähler - "WECHSELSTROMZAEHLER": "WECHSELSTROMZAEHLER", # Wechselstromzähler -} -Zaehlertyp = Enum("Zaehlertyp", _zaehlertyp) +Zaehlertyp = Enum( + "Zaehlertyp", + { + "DREHSTROMZAEHLER": "DREHSTROMZAEHLER", # Drehstromzähler + "BALGENGASZAEHLER": "BALGENGASZAEHLER", # Balgengaszähler + "DREHKOLBENZAEHLER": "DREHKOLBENZAEHLER", # Drehkolbengaszähler + "SMARTMETER": "SMARTMETER", # Smart Meter Zähler + "LEISTUNGSZAEHLER": "LEISTUNGSZAEHLER", # leistungsmessender Zähler + "MAXIMUMZAEHLER": "MAXIMUMZAEHLER", # Maximumzähler + "TURBINENRADGASZAEHLER": "TURBINENRADGASZAEHLER", # Turbinenradgaszähler + "ULTRASCHALLGASZAEHLER": "ULTRASCHALLGASZAEHLER", # Ultraschallgaszähler + "WECHSELSTROMZAEHLER": "WECHSELSTROMZAEHLER", # Wechselstromzähler + }, +) diff --git a/src/bo4e/enum/zeiteinheit.py b/src/bo4e/enum/zeiteinheit.py index afcbabd62..4019b0b43 100644 --- a/src/bo4e/enum/zeiteinheit.py +++ b/src/bo4e/enum/zeiteinheit.py @@ -4,16 +4,18 @@ from enum import Enum -_zeiteinheit = { - "SEKUNDE": "SEKUNDE", # Sekunde - "MINUTE": "MINUTE", # Minute - "STUNDE": "STUNDE", # Stunde - "VIERTEL_STUNDE": "VIERTEL_STUNDE", # Viertelstunde - "TAG": "TAG", # Tag - "WOCHE": "WOCHE", # Woche - "MONAT": "MONAT", # Monat - "QUARTAL": "QUARTAL", # Quartal - "HALBJAHR": "HALBJAHR", # Halbjahr - "JAHR": "JAHR", # Jahr -} -Zeiteinheit = Enum("Zeiteinheit", _zeiteinheit) +Zeiteinheit = Enum( + "Zeiteinheit", + { + "SEKUNDE": "SEKUNDE", # Sekunde + "MINUTE": "MINUTE", # Minute + "STUNDE": "STUNDE", # Stunde + "VIERTEL_STUNDE": "VIERTEL_STUNDE", # Viertelstunde + "TAG": "TAG", # Tag + "WOCHE": "WOCHE", # Woche + "MONAT": "MONAT", # Monat + "QUARTAL": "QUARTAL", # Quartal + "HALBJAHR": "HALBJAHR", # Halbjahr + "JAHR": "JAHR", # Jahr + }, +) diff --git a/src/bo4e/schemata/caseconverterschema.py b/src/bo4e/schemata/caseconverterschema.py index 2fc93092b..efdabd445 100644 --- a/src/bo4e/schemata/caseconverterschema.py +++ b/src/bo4e/schemata/caseconverterschema.py @@ -4,7 +4,7 @@ import re from typing import Pattern -from marshmallow import Schema, pre_load, post_dump +from marshmallow import Schema, post_dump, pre_load def snake_to_lower_camel_case(string: str) -> str: diff --git a/tests/test_adresse.py b/tests/test_adresse.py index 29eceddfb..1bf324420 100644 --- a/tests/test_adresse.py +++ b/tests/test_adresse.py @@ -1,6 +1,7 @@ import json import pytest + from bo4e.com.adresse import Adresse, AdresseSchema from bo4e.enum.landescode import Landescode diff --git a/tests/test_case_conversions.py b/tests/test_case_conversions.py index 72e10c7ee..9fd316d67 100644 --- a/tests/test_case_conversions.py +++ b/tests/test_case_conversions.py @@ -2,9 +2,10 @@ import attr import pytest -from bo4e.schemata.caseconverterschema import to_snake_case, snake_to_lower_camel_case, CaseConverterSchema from marshmallow import fields, post_load +from bo4e.schemata.caseconverterschema import CaseConverterSchema, snake_to_lower_camel_case, to_snake_case + @attr.s(auto_attribs=True) class MyClass: diff --git a/tests/test_geokoordinaten.py b/tests/test_geokoordinaten.py index e213ec69e..93853e80a 100644 --- a/tests/test_geokoordinaten.py +++ b/tests/test_geokoordinaten.py @@ -1,6 +1,7 @@ from decimal import Decimal import pytest + from bo4e.com.geokoordinaten import Geokoordinaten, GeokoordinatenSchema diff --git a/tests/test_geschaeftsobjekt.py b/tests/test_geschaeftsobjekt.py index 4731682cf..bea614208 100644 --- a/tests/test_geschaeftsobjekt.py +++ b/tests/test_geschaeftsobjekt.py @@ -1,4 +1,5 @@ import pytest + from bo4e.bo.geschaeftsobjekt import Geschaeftsobjekt, GeschaeftsobjektSchema from bo4e.com.externereferenz import ExterneReferenz from bo4e.enum.botyp import BoTyp diff --git a/tests/test_geschaeftspartner.py b/tests/test_geschaeftspartner.py index f045f16f0..9f84682da 100644 --- a/tests/test_geschaeftspartner.py +++ b/tests/test_geschaeftspartner.py @@ -1,6 +1,7 @@ import json import pytest + from bo4e.bo.geschaeftspartner import Geschaeftspartner, GeschaeftspartnerSchema from bo4e.com.adresse import Adresse from bo4e.enum.anrede import Anrede diff --git a/tests/test_marktlokation.py b/tests/test_marktlokation.py index cc28c1e52..4ab864003 100644 --- a/tests/test_marktlokation.py +++ b/tests/test_marktlokation.py @@ -2,6 +2,7 @@ from typing import Tuple import pytest + from bo4e.bo.geschaeftspartner import Geschaeftspartner from bo4e.bo.marktlokation import Marktlokation, MarktlokationSchema from bo4e.com.adresse import Adresse diff --git a/tests/test_menge.py b/tests/test_menge.py index 9232aa81b..eab8e5c2f 100644 --- a/tests/test_menge.py +++ b/tests/test_menge.py @@ -1,5 +1,7 @@ from decimal import Decimal + import pytest + from bo4e.com.menge import Menge, MengeSchema from bo4e.enum.mengeneinheit import Mengeneinheit diff --git a/tests/test_messlokationszuordnung.py b/tests/test_messlokationszuordnung.py index 5b00a40fb..57d85d7c3 100644 --- a/tests/test_messlokationszuordnung.py +++ b/tests/test_messlokationszuordnung.py @@ -1,9 +1,6 @@ from datetime import datetime -from bo4e.com.messlokationszuordnung import ( - Messlokationszuordnung, - MesslokationszuordnungSchema, -) +from bo4e.com.messlokationszuordnung import Messlokationszuordnung, MesslokationszuordnungSchema from bo4e.enum.arithmetische_operation import ArithmetischeOperation diff --git a/tests/test_unterschrift.py b/tests/test_unterschrift.py index 92fad6324..20e2f7e35 100644 --- a/tests/test_unterschrift.py +++ b/tests/test_unterschrift.py @@ -1,5 +1,7 @@ from datetime import datetime, timezone + import pytest + from bo4e.com.unterschrift import Unterschrift, UnterschriftSchema diff --git a/tests/test_vertrag.py b/tests/test_vertrag.py index 77c1abca5..7396bf4e2 100644 --- a/tests/test_vertrag.py +++ b/tests/test_vertrag.py @@ -1,18 +1,20 @@ from datetime import datetime, timezone + import pytest + from bo4e.bo.geschaeftspartner import Geschaeftspartner from bo4e.bo.vertrag import Vertrag, VertragSchema +from bo4e.com.adresse import Adresse from bo4e.com.unterschrift import Unterschrift from bo4e.com.vertragskonditionen import Vertragskonditionen from bo4e.com.vertragsteil import Vertragsteil -from bo4e.enum.botyp import BoTyp -from bo4e.enum.sparte import Sparte -from bo4e.enum.vertragsstatus import Vertragsstatus from bo4e.enum.anrede import Anrede -from bo4e.enum.kontaktart import Kontaktart +from bo4e.enum.botyp import BoTyp from bo4e.enum.geschaeftspartnerrolle import Geschaeftspartnerrolle -from bo4e.com.adresse import Adresse +from bo4e.enum.kontaktart import Kontaktart +from bo4e.enum.sparte import Sparte from bo4e.enum.vertragsart import Vertragsart +from bo4e.enum.vertragsstatus import Vertragsstatus class TestVertrag: diff --git a/tests/test_vertragskonditionen.py b/tests/test_vertragskonditionen.py index 5403a3441..cf21cef4c 100644 --- a/tests/test_vertragskonditionen.py +++ b/tests/test_vertragskonditionen.py @@ -1,5 +1,6 @@ from datetime import datetime, timezone from decimal import Decimal + from bo4e.com.vertragskonditionen import Vertragskonditionen, VertragskonditionenSchema from bo4e.com.zeitraum import Zeitraum from bo4e.enum.zeiteinheit import Zeiteinheit diff --git a/tests/test_vertragsteil.py b/tests/test_vertragsteil.py index c367839cf..d6f0212e9 100644 --- a/tests/test_vertragsteil.py +++ b/tests/test_vertragsteil.py @@ -1,6 +1,8 @@ from datetime import datetime, timezone from decimal import Decimal + import pytest + from bo4e.com.menge import Menge from bo4e.com.vertragsteil import Vertragsteil, VertragsteilSchema from bo4e.enum.mengeneinheit import Mengeneinheit diff --git a/tests/test_zaehler.py b/tests/test_zaehler.py index be6509253..1aa3c93cd 100644 --- a/tests/test_zaehler.py +++ b/tests/test_zaehler.py @@ -2,6 +2,7 @@ from decimal import Decimal import pytest + from bo4e.bo.zaehler import Zaehler, ZaehlerSchema from bo4e.com.externereferenz import ExterneReferenz from bo4e.com.zaehlwerk import Zaehlwerk diff --git a/tox.ini b/tox.ini index d4e14b461..21914027f 100644 --- a/tox.ini +++ b/tox.ini @@ -4,6 +4,7 @@ envlist = linting coverage docs + type_check skip_missing_interpreters = True isolated_build = True @@ -25,6 +26,14 @@ deps = pylint commands = pylint src/bo4e +[testenv:type_check] +# the type_check environment checks the type hints using mypy +deps = + -rrequirements.txt + mypy +commands = + mypy src/bo4e + # add single files (ending with .py) or packages here [testenv:coverage] usedevelop = True @@ -42,6 +51,7 @@ usedevelop = True deps = {[testenv:tests]deps} {[testenv:linting]deps} + {[testenv:type_check]deps} {[testenv:coverage]deps} black==21.5b2 # Replace by any tag/version: https://github.com/psf/black/tags