diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..9fb855272 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,23 @@ +name: "Test Doc Creation (Sphinx)" +on: [push] +jobs: + docbuild: + name: Check Docs + runs-on: ${{ matrix.os }} + strategy: + matrix: + python-version: ["3.10"] + os: [ubuntu-latest] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox + - name: Check Docs + run: | + tox -e docs diff --git a/README.rst b/README.rst index 3def9201c..1e5d4d615 100644 --- a/README.rst +++ b/README.rst @@ -50,7 +50,7 @@ The created venv should be located somewhere around .tox/dev/Scripts. Regular Expression for Enumerations ----------------------------------- -If you want to add a new enumeration from the `BO4E website`_ then you can use the following regular expression pattern: +If you want to add a new enumeration from the `BO4E website`_ then you can copy paste HTML table content and use the following regular expression pattern: .. code-block:: Shell @@ -60,7 +60,7 @@ In combination with this substitution: .. code-block:: Shell - "$wert": "$wert", # $bedeutung + "$wert": "$wert", #: $bedeutung This substitution can directly used on the website `regex101`_. @@ -144,4 +144,4 @@ Applications of talented developers are welcome at any time! Please consider vis .. _`open new PR develop→master`: https://github.com/Hochfrequenz/BO4E-python/compare/master...develop .. _`Draft a new release`: https://github.com/Hochfrequenz/BO4E-python/releases/new .. _`Retrieving package version at runtime`: https://pypi.org/project/setuptools-scm/ -.. _`regex101`: https://regex101.com/r/JWeb51/1 +.. _`regex101`: https://regex101.com/r/JWeb51/2 diff --git a/docs/api/bo4e.enum.rst b/docs/api/bo4e.enum.rst index e12bf356c..d45e2284b 100644 --- a/docs/api/bo4e.enum.rst +++ b/docs/api/bo4e.enum.rst @@ -148,6 +148,14 @@ bo4e.enum.sparte module :undoc-members: :show-inheritance: +bo4e.enum.strenum module +------------------------ + +.. automodule:: bo4e.enum.strenum + :members: + :undoc-members: + :show-inheritance: + bo4e.enum.tarifart module ------------------------- diff --git a/src/bo4e/enum/anrede.py b/src/bo4e/enum/anrede.py index 3a2250149..9d7a92551 100644 --- a/src/bo4e/enum/anrede.py +++ b/src/bo4e/enum/anrede.py @@ -1,14 +1,14 @@ # pylint: disable=missing-module-docstring -from bo4e.enum.strenum import DocumentedStrEnum +from bo4e.enum.strenum import StrEnum -class Anrede(DocumentedStrEnum): +class Anrede(StrEnum): """ Übersicht möglicher Anreden, z.B. eines Geschäftspartners. """ - HERR = "HERR", "Herr" - FRAU = "FRAU", "Frau" - EHELEUTE = "EHELEUTE", "Eheleute" - FIRMA = "FIRMA", "Firma" - INDIVIDUELL = "INDIVIDUELL", 'Individuell (z.B. "Profx")' + HERR = "HERR" #: "Herr + FRAU = "FRAU" #: Frau + EHELEUTE = "EHELEUTE" #: Eheleute + FIRMA = "FIRMA" #: Firma + INDIVIDUELL = "INDIVIDUELL" #: Individuell (z.B. "Profx") diff --git a/src/bo4e/enum/bilanzierungsmethode.py b/src/bo4e/enum/bilanzierungsmethode.py index 3296b0ce7..21e2f0e5e 100644 --- a/src/bo4e/enum/bilanzierungsmethode.py +++ b/src/bo4e/enum/bilanzierungsmethode.py @@ -7,8 +7,8 @@ class Bilanzierungsmethode(StrEnum): Mit dieser Aufzählung kann zwischen den Bilanzierungsmethoden bzw. -grundlagen unterschieden werden. """ - 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) + 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/dienstleistungstyp.py b/src/bo4e/enum/dienstleistungstyp.py index 9b4c280cb..1bc015dba 100644 --- a/src/bo4e/enum/dienstleistungstyp.py +++ b/src/bo4e/enum/dienstleistungstyp.py @@ -9,46 +9,46 @@ class Dienstleistungstyp(StrEnum): Auflistung möglicher abzurechnender Dienstleistungen. """ - 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_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_STUENDLICH = "DATENBEREITSTELLUNG_STUENDLICH" #: Datenbereitstellung stündlich DATENBEREITSTELLUNG_VIERTELJAEHRLICH = "DATENBEREITSTELLUNG_VIERTELJAEHRLICH" # Datenbereitstellung vierteljährlich - DATENBEREITSTELLUNG_HALBJAEHRLICH = "DATENBEREITSTELLUNG_HALBJAEHRLICH" # Datenbereitstellung halbjährlich + DATENBEREITSTELLUNG_HALBJAEHRLICH = "DATENBEREITSTELLUNG_HALBJAEHRLICH" #: Datenbereitstellung halbjährlich DATENBEREITSTELLUNG_MONATLICH_ZUSAETZLICH = "DATENBEREITSTELLUNG_MONATLICH_ZUSAETZLICH" # Datenbereitstellung monatlich zusätzlich - DATENBEREITSTELLUNG_EINMALIG = "DATENBEREITSTELLUNG_EINMALIG" # Datenbereitstellung einmalig + 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_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_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_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 + 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 6fd1646fb..bc279eb4b 100644 --- a/src/bo4e/enum/energierichtung.py +++ b/src/bo4e/enum/energierichtung.py @@ -8,5 +8,5 @@ class Energierichtung(StrEnum): Spezifiziert die Energierichtung einer Markt- und/oder Messlokation """ - AUSSP = "AUSSP" # Ausspeisung - EINSP = "EINSP" # Einspeisung + AUSSP = "AUSSP" #: Ausspeisung + EINSP = "EINSP" #: Einspeisung diff --git a/src/bo4e/enum/gasqualitaet.py b/src/bo4e/enum/gasqualitaet.py index 1c4498bf8..1f6ab6eae 100644 --- a/src/bo4e/enum/gasqualitaet.py +++ b/src/bo4e/enum/gasqualitaet.py @@ -8,5 +8,5 @@ class Gasqualitaet(StrEnum): Unterscheidung für hoch- und niedrig-kalorisches Gas. """ - H_GAS = "H_GAS" # High Caloric Gas - L_GAS = "L_GAS" # Low Caloric Gas + H_GAS = "H_GAS" #: High Caloric Gas + L_GAS = "L_GAS" #: Low Caloric Gas diff --git a/src/bo4e/enum/geraetetyp.py b/src/bo4e/enum/geraetetyp.py index e1a9d23f8..da18fc607 100644 --- a/src/bo4e/enum/geraetetyp.py +++ b/src/bo4e/enum/geraetetyp.py @@ -9,47 +9,47 @@ class Geraetetyp(StrEnum): Auflistung möglicher abzurechnender Gerätetypen. """ - 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 + 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/marktrolle.py b/src/bo4e/enum/marktrolle.py index ac0f33f53..d0bfd7de9 100644 --- a/src/bo4e/enum/marktrolle.py +++ b/src/bo4e/enum/marktrolle.py @@ -8,17 +8,17 @@ class Marktrolle(StrEnum): Diese Rollen kann ein Marktteilnehmer einnehmen. """ - 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 + 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 + BTR = "BTR" #: Betreiber einer technischen Ressource diff --git a/src/bo4e/enum/mengeneinheit.py b/src/bo4e/enum/mengeneinheit.py index 4caaa83d1..1b6f86695 100644 --- a/src/bo4e/enum/mengeneinheit.py +++ b/src/bo4e/enum/mengeneinheit.py @@ -8,17 +8,17 @@ class Mengeneinheit(StrEnum): Einheit: Messgrößen, die per Messung oder Vorgabe ermittelt werden können. """ - 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 + 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 0479c1bd8..312e852e0 100644 --- a/src/bo4e/enum/netzebene.py +++ b/src/bo4e/enum/netzebene.py @@ -8,13 +8,13 @@ class Netzebene(StrEnum): Auflistung möglicher Netzebenen innerhalb der Energiearten Strom und Gas. """ - 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 + 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 fe46d6849..d918c3a39 100644 --- a/src/bo4e/enum/rollencodetyp.py +++ b/src/bo4e/enum/rollencodetyp.py @@ -8,6 +8,6 @@ class Rollencodetyp(StrEnum): Gibt den Codetyp einer Rolle, beispielsweise einer Marktrolle, an. """ - BDEW = "BDEW" # Bundesverband der Energie- u. Wasserwirtschaft - DVG = "DVG" # Deutscher Verein des Gas- und Wasserfaches - GLN = "GLN" # Global Location Number + 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 5b1928dfd..1236c105c 100644 --- a/src/bo4e/enum/rufnummernart.py +++ b/src/bo4e/enum/rufnummernart.py @@ -8,12 +8,12 @@ class Rufnummernart(StrEnum): Abbildung verschiedener Rufnummerntypen. """ - 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 + 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/strenum.py b/src/bo4e/enum/strenum.py index 3b9273844..d43169921 100644 --- a/src/bo4e/enum/strenum.py +++ b/src/bo4e/enum/strenum.py @@ -12,25 +12,3 @@ class StrEnum(str, Enum): """ # see https://docs.python.org/3/library/enum.html?highlight=strenum#others - - -# pylint: disable=too-few-public-methods -class DocumentedStrEnum(StrEnum): - """ - A StrEnum that has docstrings attached to its members. - Use it like this: - class MyDocumentedEnum(DocumentedStrEnum): - Foo = "Serialized Foo", "my good docstring of Foo" - Bar = "Serialized Bar", "bar is not foo (this is a docstring)" - Then wherever MyDocumentedEnum is used in BOs or COMs, the attribute will serialize as either "Serialized Foo" - or "Serialized Bar". And inspect.getdocs(MyDocumentedEnum.Foo) will return the respective docstring. - This is unittested. - """ - - # see https://stackoverflow.com/a/50473952/10009545 - def __new__(cls, value, doc=None): - self = str.__new__(cls, value) # calling super().__new__(value) here would fail - self._value_ = value - if doc is not None: - self.__doc__ = doc - return self diff --git a/src/bo4e/enum/tarifart.py b/src/bo4e/enum/tarifart.py index 43835491b..8b4c11b2f 100644 --- a/src/bo4e/enum/tarifart.py +++ b/src/bo4e/enum/tarifart.py @@ -8,8 +8,8 @@ class Tarifart(StrEnum): Die Tarifart wird verwendet zur Charakterisierung von Zählern und daraus resultierenden Tarifen. """ - EINTARIF = "EINTARIF" # Eintarif - ZWEITARIF = "ZWEITARIF" # Zweitarif - MEHRTARIF = "MEHRTARIF" # Mehrtarif - SMART_METER = "SMART_METER" # Smart Meter Tarif - LEISTUNGSGEMESSEN = "LEISTUNGSGEMESSEN" # Leistungsgemessener Tarif + 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 5f343d034..127bc3f12 100644 --- a/src/bo4e/enum/themengebiet.py +++ b/src/bo4e/enum/themengebiet.py @@ -8,64 +8,64 @@ class Themengebiet(StrEnum): Über dieses ENUM kann eine thematische Zuordnung, beispielsweise eines Ansprechpartners, vorgenommen werden. """ - 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 + 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 + "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 + 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 dc48ab6a6..169cbdfdc 100644 --- a/src/bo4e/enum/titel.py +++ b/src/bo4e/enum/titel.py @@ -8,6 +8,6 @@ class Titel(StrEnum): Übersicht möglicher Titel, z.B. eines Geschäftspartners. """ - DR = "DR" # Doktor*In - PROF = "PROF" # Professor*In - PROF_DR = "PROF_DR" # Professor*In Dr. + 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 8cec4704a..4ccdb1b95 100644 --- a/src/bo4e/enum/verbrauchsart.py +++ b/src/bo4e/enum/verbrauchsart.py @@ -8,8 +8,8 @@ class Verbrauchsart(StrEnum): Verbrauchsart einer Marktlokation. """ - 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 + 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 94b8853ca..347c061c7 100644 --- a/src/bo4e/enum/vertragsart.py +++ b/src/bo4e/enum/vertragsart.py @@ -8,8 +8,8 @@ class Vertragsart(StrEnum): Aufzählung der Vertragsarten. """ - ENERGIELIEFERVERTRAG = "ENERGIELIEFERVERTRAG" # Energieliefervertrag - NETZNUTZUNGSVERTRAG = "NETZNUTZUNGSVERTRAG" # Netznutzungsvertrag - BILANZIERUNGSVERTRAG = "BILANZIERUNGSVERTRAG" # Bilanzierungsvertrag - MESSSTELLENBETRIEBSVERTRAG = "MESSSTELLENBETRIEBSVERTRAG" # Messstellenabetriebsvertrag - BUENDELVERTRAG = "BUENDELVERTRAG" # Bündelvertrag + 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 aa676fd7d..b744cd348 100644 --- a/src/bo4e/enum/vertragsstatus.py +++ b/src/bo4e/enum/vertragsstatus.py @@ -8,12 +8,12 @@ class Vertragsstatus(StrEnum): Abbildung einer Statusinformation für Verträge. """ - 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 + 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 809f83326..7c23e290e 100644 --- a/src/bo4e/enum/zaehlerauspraegung.py +++ b/src/bo4e/enum/zaehlerauspraegung.py @@ -8,5 +8,5 @@ class Zaehlerauspraegung(StrEnum): Gibt an, ob es sich um einen Einrichtungs- oder Zweirichtungszähler handelt. """ - EINRICHTUNGSZAEHLER = "EINRICHTUNGSZAEHLER" # Einrichtungszaehler - ZWEIRICHTUNGSZAEHLER = "ZWEIRICHTUNGSZAEHLER" # Zweirichtungszaehler + EINRICHTUNGSZAEHLER = "EINRICHTUNGSZAEHLER" #: Einrichtungszaehler + ZWEIRICHTUNGSZAEHLER = "ZWEIRICHTUNGSZAEHLER" #: Zweirichtungszaehler diff --git a/src/bo4e/enum/zaehlertyp.py b/src/bo4e/enum/zaehlertyp.py index d8b6c52b8..690d67eff 100644 --- a/src/bo4e/enum/zaehlertyp.py +++ b/src/bo4e/enum/zaehlertyp.py @@ -8,12 +8,12 @@ class Zaehlertyp(StrEnum): Bei diesem Enum handelt es sich um die Abbildung von Zählertypen der Sparten Strom und Gas. """ - 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 + 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 8adb68449..7a036e776 100644 --- a/src/bo4e/enum/zeiteinheit.py +++ b/src/bo4e/enum/zeiteinheit.py @@ -8,13 +8,13 @@ class Zeiteinheit(StrEnum): Auflistung möglicher Einheiten zur Verwendung in zeitbezogenen Angaben. """ - 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 + 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/tests/test_enums.py b/tests/test_enums.py index 66bfe1db1..b33c0aeed 100644 --- a/tests/test_enums.py +++ b/tests/test_enums.py @@ -4,9 +4,7 @@ from typing import List, Optional, TypeVar import pytest # type:ignore[import] - from bo4e.enum import anrede -from bo4e.enum.anrede import Anrede from bo4e.enum.strenum import StrEnum @@ -56,36 +54,3 @@ def test_enum_classes_docstrings(self): assert docstring is not None assert not TestEnums.starts_with_whitespace_pattern.match(docstring) assert not TestEnums.ends_with_whitespace_pattern.match(docstring) - - @pytest.mark.parametrize( - "enum_member, expected_docstring", - [ - pytest.param(Anrede.HERR, "Herr"), - pytest.param(Anrede.INDIVIDUELL, 'Individuell (z.B. "Profx")'), - ], - ) - def test_enum_member_docstrings_explicitly(self, enum_member: TEnum, expected_docstring: Optional[str]): - """ - Test the docstrings of the enum members explicitly. - if the general approach (using DocumentedStrEnum) works for single members, it will also work for all enums, - which are constructed similarly. - """ - assert inspect.getdoc(enum_member) == expected_docstring - - def test_enum_members_are_all_documented(self): - """ - The class docstrings are enforced using pylint but the docstrings of enum members are not covered by pylint. - """ - all_enums = self._get_all_enum_classes() - for enum_class in all_enums: - class_docstring = TestEnums._get_class_doc(enum_class) - for enum_member in enum_class: - member_docstring = inspect.getdoc(enum_member) - assert ( - member_docstring != class_docstring - ), f"Docstring of Enum member {enum_member} must not be the same as the class docstring" - assert member_docstring is not None - assert member_docstring != "" - assert not TestEnums.starts_with_whitespace_pattern.match(member_docstring) - assert not TestEnums.ends_with_whitespace_pattern.match(member_docstring) - break # proof this works just for the wip anrede diff --git a/tox.ini b/tox.ini index 64287bad4..3cba024e0 100644 --- a/tox.ini +++ b/tox.ini @@ -54,6 +54,7 @@ deps = {[testenv:linting]deps} {[testenv:type_check]deps} {[testenv:coverage]deps} + {[testenv:docs]deps} black==21.5b2 # Replace by any tag/version: https://github.com/psf/black/tags # and change the pre-commit-config.yaml accordingly