diff --git a/src/bo4e/com/adresse.py b/src/bo4e/com/adresse.py index 996e1b52e..3ba401693 100644 --- a/src/bo4e/com/adresse.py +++ b/src/bo4e/com/adresse.py @@ -4,7 +4,7 @@ """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -51,6 +51,8 @@ class AdresseSchema(COMSchema): Schema for de-/serialization of Adresse. """ + class_name = Adresse + # required attributes postleitzahl = fields.Str() ort = fields.Str() @@ -62,9 +64,3 @@ class AdresseSchema(COMSchema): adresszusatz = fields.Str(load_default=None) co_ergaenzung = fields.Str(load_default=None) landescode = EnumField(Landescode) - - # pylint: disable=no-self-use - @post_load - def deserialize(self, data, **kwargs) -> Adresse: - """Deserialize JSON to Adresse object""" - return Adresse(**data) diff --git a/src/bo4e/com/angebotsposition.py b/src/bo4e/com/angebotsposition.py index d0537fc2b..ad990f031 100644 --- a/src/bo4e/com/angebotsposition.py +++ b/src/bo4e/com/angebotsposition.py @@ -4,7 +4,7 @@ """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.betrag import Betrag, BetragSchema from bo4e.com.com import COM, COMSchema @@ -44,14 +44,9 @@ class AngebotspositionSchema(COMSchema): Schema for de-/serialization of Angebotsposition. """ + class_name = Angebotsposition # required attributes positionsbezeichnung = fields.String() positionspreis = fields.Nested(PreisSchema) positionsmenge = fields.Nested(MengeSchema, load_default=None) positionskosten = fields.Nested(BetragSchema, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Angebotsposition: - """Deserialize JSON to Angebotsposition object""" - return Angebotsposition(**data) diff --git a/src/bo4e/com/angebotsteil.py b/src/bo4e/com/angebotsteil.py index 72cd5d947..a6261bd7f 100644 --- a/src/bo4e/com/angebotsteil.py +++ b/src/bo4e/com/angebotsteil.py @@ -6,7 +6,7 @@ from typing import List, Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.bo.marktlokation import Marktlokation, MarktlokationSchema from bo4e.com.angebotsposition import Angebotsposition, AngebotspositionSchema @@ -77,6 +77,7 @@ class AngebotsteilSchema(COMSchema): Schema for de-/serialization of Angebotsteil. """ + class_name = Angebotsteil # required attributes positionen = fields.List(fields.Nested(AngebotspositionSchema)) @@ -86,9 +87,3 @@ class AngebotsteilSchema(COMSchema): gesamtmengeangebotsteil = fields.Nested(MengeSchema, load_default=None) gesamtkostenangebotsteil = fields.Nested(BetragSchema, load_default=None) lieferzeitraum = fields.Nested(ZeitraumSchema, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Angebotsteil: - """Deserialize JSON to Angebotsteil object""" - return Angebotsteil(**data) diff --git a/src/bo4e/com/aufabschlag.py b/src/bo4e/com/aufabschlag.py index 62b6f836a..6f46c1908 100644 --- a/src/bo4e/com/aufabschlag.py +++ b/src/bo4e/com/aufabschlag.py @@ -6,7 +6,7 @@ from typing import List, Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -64,9 +64,10 @@ class AufAbschlag(COM): class AufAbschlagSchema(COMSchema): """ - Schema for de-/serialization of AufAbschlag. + Schema for de-/serialization of AufAbschlag """ + class_name = AufAbschlag # required attributes bezeichnung = fields.Str() staffeln = fields.List(fields.Nested(PreisstaffelSchema)) @@ -78,9 +79,3 @@ class AufAbschlagSchema(COMSchema): einheit = EnumField(Waehrungseinheit, allow_none=True) website = fields.Str(load_default=None) gueltigkeitszeitraum = fields.Nested(ZeitraumSchema, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> AufAbschlag: - """Deserialize JSON to AufAbschlag object""" - return AufAbschlag(**data) diff --git a/src/bo4e/com/aufabschlagproort.py b/src/bo4e/com/aufabschlagproort.py index 0a4256c49..1a0ca2400 100644 --- a/src/bo4e/com/aufabschlagproort.py +++ b/src/bo4e/com/aufabschlagproort.py @@ -6,7 +6,7 @@ from typing import List import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.aufabschlagstaffelproort import AufAbschlagstaffelProOrt, AufAbschlagstaffelProOrtSchema from bo4e.com.com import COM, COMSchema @@ -36,17 +36,12 @@ class AufAbschlagProOrt(COM): class AufAbschlagProOrtSchema(COMSchema): """ - Schema for de-/serialization of AufAbschlagProOrt. + Schema for de-/serialization of AufAbschlagProOrt """ + class_name = AufAbschlagProOrt # required attributes postleitzahl = fields.Str() ort = fields.Str() netznr = fields.Str() staffeln = fields.List(fields.Nested(AufAbschlagstaffelProOrtSchema)) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> AufAbschlagProOrt: - """Deserialize JSON to AufAbschlagstaffelProOrt object""" - return AufAbschlagProOrt(**data) diff --git a/src/bo4e/com/aufabschlagregional.py b/src/bo4e/com/aufabschlagregional.py index 84f0f1c5f..7a772714b 100644 --- a/src/bo4e/com/aufabschlagregional.py +++ b/src/bo4e/com/aufabschlagregional.py @@ -5,7 +5,7 @@ from typing import List, Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.aufabschlagproort import AufAbschlagProOrt, AufAbschlagProOrtSchema @@ -119,6 +119,7 @@ class AufAbschlagRegionalSchema(COMSchema): Schema for de-/serialization of AufAbschlagRegional. """ + class_name = AufAbschlagRegional # required attributes bezeichnung = fields.Str() betraege = fields.List(fields.Nested(AufAbschlagProOrtSchema)) @@ -137,9 +138,3 @@ class AufAbschlagRegionalSchema(COMSchema): vertagskonditionsaenderung = fields.Nested(VertragskonditionenSchema, load_default=None) garantieaenderung = fields.Nested(PreisgarantieSchema, load_default=None) einschraenkungsaenderung = fields.Nested(TarifeinschraenkungSchema, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> AufAbschlagRegional: - """Deserialize JSON to AufAbschlagRegional object""" - return AufAbschlagRegional(**data) diff --git a/src/bo4e/com/aufabschlagstaffelproort.py b/src/bo4e/com/aufabschlagstaffelproort.py index 4a88d6f14..7b862ddd7 100644 --- a/src/bo4e/com/aufabschlagstaffelproort.py +++ b/src/bo4e/com/aufabschlagstaffelproort.py @@ -6,7 +6,7 @@ from decimal import Decimal import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema @@ -32,13 +32,8 @@ class AufAbschlagstaffelProOrtSchema(COMSchema): Schema for de-/serialization of AufAbschlagstaffelProOrt. """ + class_name = AufAbschlagstaffelProOrt # required attributes wert = fields.Decimal(as_string=True) staffelgrenze_von = fields.Decimal(as_string=True) staffelgrenze_bis = fields.Decimal(as_string=True) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> AufAbschlagstaffelProOrt: - """Deserialize JSON to AufAbschlagstaffelProOrt object""" - return AufAbschlagstaffelProOrt(**data) diff --git a/src/bo4e/com/ausschreibungsdetail.py b/src/bo4e/com/ausschreibungsdetail.py index 2b7fa6355..622df158b 100644 --- a/src/bo4e/com/ausschreibungsdetail.py +++ b/src/bo4e/com/ausschreibungsdetail.py @@ -5,7 +5,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.adresse import Adresse, AdresseSchema @@ -87,6 +87,7 @@ class AusschreibungsdetailSchema(COMSchema): Schema for de-/serialization of Ausschreibungsdetail """ + class_name = Ausschreibungsdetail # required attributes lokations_id = fields.Str() netzebene_lieferung = EnumField(Netzebene) @@ -105,9 +106,3 @@ class AusschreibungsdetailSchema(COMSchema): prognose_arbeit_lieferzeitraum = fields.Nested(MengeSchema, allow_none=True) prognose_leistung = fields.Nested(MengeSchema, allow_none=True) rechnungsadresse = fields.Nested(AdresseSchema, allow_none=True) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Ausschreibungsdetail: - """Deserialize JSON to Ausschreibungsdetail object""" - return Ausschreibungsdetail(**data) diff --git a/src/bo4e/com/betrag.py b/src/bo4e/com/betrag.py index 30276d277..b71837706 100644 --- a/src/bo4e/com/betrag.py +++ b/src/bo4e/com/betrag.py @@ -6,15 +6,14 @@ from decimal import Decimal import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema - -# pylint: disable=too-few-public-methods from bo4e.enum.waehrungscode import Waehrungscode +# pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Betrag(COM): """ @@ -31,15 +30,10 @@ class Betrag(COM): class BetragSchema(COMSchema): """ - Schema for de-/serialization of Betrag. + Schema for de-/serialization of Betrag """ + class_name = Betrag # required attributes wert = fields.Decimal(as_string=True) waehrung = EnumField(Waehrungscode) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Betrag: - """Deserialize JSON to Betrag object""" - return Betrag(**data) diff --git a/src/bo4e/com/com.py b/src/bo4e/com/com.py index c946a5676..c1ed8d3c1 100644 --- a/src/bo4e/com/com.py +++ b/src/bo4e/com/com.py @@ -1,7 +1,10 @@ """ Contains base class for all components """ +from typing import TypeVar, Generic, Type + import attr +from marshmallow import post_load from bo4e.schemata.caseconverterschema import CaseConverterSchema @@ -14,8 +17,22 @@ class COM: """ -class COMSchema(CaseConverterSchema): +#: Any type derived from COM including those that do not directly inherit from COM +TCom = TypeVar("TCom", bound=Type[COM]) +# todo: find out if this way of typing is correct + + +class COMSchema(CaseConverterSchema, Generic[TCom]): """ This is a base class. All components objects schemata are inherited from this class. """ + + #: class_name is needed to use the correct schema for deserialization + class_name: TCom + + @post_load + # pylint:disable=unused-argument + def deserialize(self, data, **kwargs) -> TCom: + """Deserialize JSON to python object.""" + return type(self).class_name(**data) # type:ignore[return-value,call-arg] diff --git a/src/bo4e/com/dienstleistung.py b/src/bo4e/com/dienstleistung.py index 51af480f8..2d2b3fc43 100644 --- a/src/bo4e/com/dienstleistung.py +++ b/src/bo4e/com/dienstleistung.py @@ -4,7 +4,7 @@ """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -28,12 +28,7 @@ class DienstleistungSchema(COMSchema): Schema for de-/serialization of Dienstleistung. """ + class_name = Dienstleistung # required attributes dienstleistungstyp = EnumField(Dienstleistungstyp) bezeichnung = fields.Str() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Dienstleistung: - """Deserialize JSON to Dienstleistung object""" - return Dienstleistung(**data) diff --git a/src/bo4e/com/energieherkunft.py b/src/bo4e/com/energieherkunft.py index d8a16a785..33d05c369 100644 --- a/src/bo4e/com/energieherkunft.py +++ b/src/bo4e/com/energieherkunft.py @@ -6,7 +6,7 @@ from decimal import Decimal import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -39,12 +39,7 @@ class EnergieherkunftSchema(COMSchema): Schema for de-/serialization of Energieherkunft. """ + class_name = Energieherkunft # required attributes erzeugungsart = EnumField(Erzeugungsart) anteil_prozent = fields.Decimal(as_string=True) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Energieherkunft: - """Deserialize JSON to Energieherkunft object""" - return Energieherkunft(**data) diff --git a/src/bo4e/com/energiemix.py b/src/bo4e/com/energiemix.py index 6858ea66b..9e4a0994b 100644 --- a/src/bo4e/com/energiemix.py +++ b/src/bo4e/com/energiemix.py @@ -7,7 +7,7 @@ from typing import List import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -61,6 +61,7 @@ class EnergiemixSchema(COMSchema): Schema for de-/serialization of Energiemix. """ + class_name = Energiemix # required attributes energiemixnummer = fields.Int() energieart = EnumField(Sparte) @@ -76,9 +77,3 @@ class EnergiemixSchema(COMSchema): oekolabel = fields.List(EnumField(Oekolabel), load_default=None) oeko_top_ten = fields.Bool(load_default=None) website = fields.Str(load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Energiemix: - """Deserialize JSON to Energiemix object""" - return Energiemix(**data) diff --git a/src/bo4e/com/externereferenz.py b/src/bo4e/com/externereferenz.py index 3f03266c1..1e73030a7 100644 --- a/src/bo4e/com/externereferenz.py +++ b/src/bo4e/com/externereferenz.py @@ -3,7 +3,7 @@ and corresponding marshmallow schema for de-/serialization """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema @@ -28,11 +28,6 @@ class ExterneReferenzSchema(COMSchema): Inherits from Schema and JavaScriptMixin. """ + class_name = ExterneReferenz ex_ref_name = fields.Str() ex_ref_wert = fields.Str() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> ExterneReferenz: - """Deserialize JSON to ExterneReferenz object""" - return ExterneReferenz(**data) diff --git a/src/bo4e/com/fremdkostenposition.py b/src/bo4e/com/fremdkostenposition.py index e4a0101a1..3a35cd482 100644 --- a/src/bo4e/com/fremdkostenposition.py +++ b/src/bo4e/com/fremdkostenposition.py @@ -5,7 +5,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.betrag import Betrag, BetragSchema from bo4e.com.com import COM, COMSchema @@ -91,6 +91,7 @@ class FremdkostenpositionSchema(COMSchema): Schema for de-/serialization of Fremdkostenposition """ + class_name = Fremdkostenposition # required attributes positionstitel = fields.Str() betrag_kostenposition = fields.Nested(BetragSchema) @@ -107,9 +108,3 @@ class FremdkostenpositionSchema(COMSchema): marktpartnercode = fields.Str(allow_none=True) gebietcode_eic = fields.Str(allow_none=True) link_preisblatt = fields.Str(allow_none=True) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Fremdkostenposition: - """Deserialize JSON to Fremdkostenposition object""" - return Fremdkostenposition(**data) diff --git a/src/bo4e/com/geokoordinaten.py b/src/bo4e/com/geokoordinaten.py index 31193180b..57c526d21 100644 --- a/src/bo4e/com/geokoordinaten.py +++ b/src/bo4e/com/geokoordinaten.py @@ -5,7 +5,7 @@ from decimal import Decimal import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema @@ -33,11 +33,7 @@ class GeokoordinatenSchema(COMSchema): https://marshmallow.readthedocs.io/en/latest/api_reference.html?highlight=function#marshmallow.fields.Decimal """ + class_name = Geokoordinaten + breitengrad = fields.Decimal(as_string=True) laengengrad = fields.Decimal(as_string=True) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Geokoordinaten: - """Deserialize JSON to Geokoordinaten object""" - return Geokoordinaten(**data) diff --git a/src/bo4e/com/geraet.py b/src/bo4e/com/geraet.py index e1de2dd4f..d2db5c27e 100644 --- a/src/bo4e/com/geraet.py +++ b/src/bo4e/com/geraet.py @@ -6,7 +6,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema from bo4e.com.geraeteeigenschaften import Geraeteeigenschaften, GeraeteeigenschaftenSchema @@ -35,12 +35,7 @@ class GeraetSchema(COMSchema): Schema for de-/serialization of Geraet. """ + class_name = Geraet # optional attributes geraetenummer = fields.Str(missing=None) geraeteeigenschaften = fields.Nested(GeraeteeigenschaftenSchema, missing=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Geraet: - """Deserialize JSON to Geraet object""" - return Geraet(**data) diff --git a/src/bo4e/com/geraeteeigenschaften.py b/src/bo4e/com/geraeteeigenschaften.py index 3a1d078b0..afe98a709 100644 --- a/src/bo4e/com/geraeteeigenschaften.py +++ b/src/bo4e/com/geraeteeigenschaften.py @@ -4,16 +4,14 @@ from typing import Optional import attr -from marshmallow import post_load from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema - -# pylint: disable=too-few-public-methods from bo4e.enum.geraetemerkmal import Geraetemerkmal from bo4e.enum.geraetetyp import Geraetetyp +# pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Geraeteeigenschaften(COM): """ @@ -36,14 +34,9 @@ class GeraeteeigenschaftenSchema(COMSchema): Schema for de-/serialization of Geraeteeigenschaften """ + class_name = Geraeteeigenschaften # required attributes geraetetyp = EnumField(Geraetetyp) # optional attributes geraetemerkmal = EnumField(Geraetemerkmal, allow_none=True) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Geraeteeigenschaften: - """Deserialize JSON to Geraeteeigenschaften object""" - return Geraeteeigenschaften(**data) diff --git a/src/bo4e/com/hardware.py b/src/bo4e/com/hardware.py index 4ab4ca400..ea47b6b2a 100644 --- a/src/bo4e/com/hardware.py +++ b/src/bo4e/com/hardware.py @@ -4,7 +4,7 @@ """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -28,12 +28,7 @@ class HardwareSchema(COMSchema): Schema for de-/serialization of Hardware. """ + class_name = Hardware # required attributes geraetetyp = EnumField(Geraetetyp) bezeichnung = fields.Str() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Hardware: - """Deserialize JSON to Hardware object""" - return Hardware(**data) diff --git a/src/bo4e/com/katasteradresse.py b/src/bo4e/com/katasteradresse.py index 2b393e08f..b9ba59d19 100644 --- a/src/bo4e/com/katasteradresse.py +++ b/src/bo4e/com/katasteradresse.py @@ -3,7 +3,7 @@ and corresponding marshmallow schema for de-/serialization """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema @@ -24,11 +24,6 @@ class KatasteradresseSchema(COMSchema): Schema for de-/serialization of Katasteradresse. """ + class_name = Katasteradresse gemarkung_flur = fields.Str() flurstueck = fields.Str() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Katasteradresse: - """Deserialize JSON to Katasteradresse object""" - return Katasteradresse(**data) diff --git a/src/bo4e/com/kriteriumwert.py b/src/bo4e/com/kriteriumwert.py index 58a9e2108..603eaef70 100644 --- a/src/bo4e/com/kriteriumwert.py +++ b/src/bo4e/com/kriteriumwert.py @@ -4,7 +4,7 @@ """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -31,12 +31,7 @@ class KriteriumWertSchema(COMSchema): Schema for de-/serialization of KriteriumWert. """ + class_name = KriteriumWert # required attributes kriterium = EnumField(Tarifregionskriterium) wert = fields.Str() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> KriteriumWert: - """Deserialize JSON to KriteriumWert object""" - return KriteriumWert(**data) diff --git a/src/bo4e/com/marktgebietinfo.py b/src/bo4e/com/marktgebietinfo.py index 175a663ae..81f463344 100644 --- a/src/bo4e/com/marktgebietinfo.py +++ b/src/bo4e/com/marktgebietinfo.py @@ -3,7 +3,7 @@ and corresponding marshmallow schema for de-/serialization """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema @@ -25,12 +25,7 @@ class MarktgebietInfoSchema(COMSchema): Schema for de-/serialization of Marktgebietinfo. """ + class_name = MarktgebietInfo # required attributes marktgebiet = fields.Str() marktgebietcode = fields.Str() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> MarktgebietInfo: - """Deserialize JSON to Marktgebietinfo object""" - return MarktgebietInfo(**data) diff --git a/src/bo4e/com/menge.py b/src/bo4e/com/menge.py index 7fa3482fa..a9e65555c 100644 --- a/src/bo4e/com/menge.py +++ b/src/bo4e/com/menge.py @@ -6,7 +6,7 @@ from decimal import Decimal import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -30,12 +30,7 @@ class MengeSchema(COMSchema): Schema for de-/serialization of Menge. """ + class_name = Menge # required attributes wert = fields.Decimal(as_string=True) einheit = EnumField(Mengeneinheit) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Menge: - """Deserialize JSON to Menge object""" - return Menge(**data) diff --git a/src/bo4e/com/messlokationszuordnung.py b/src/bo4e/com/messlokationszuordnung.py index 6cb8b4934..3e4f2b439 100644 --- a/src/bo4e/com/messlokationszuordnung.py +++ b/src/bo4e/com/messlokationszuordnung.py @@ -5,7 +5,7 @@ from datetime import datetime import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -35,6 +35,7 @@ class MesslokationszuordnungSchema(COMSchema): Schema for de-/serialization of Katasteradresse. """ + class_name = Messlokationszuordnung # required attributes messlokations_id = fields.Str() arithmetik = EnumField(ArithmetischeOperation) @@ -42,9 +43,3 @@ class MesslokationszuordnungSchema(COMSchema): # optional attributes gueltig_seit = fields.DateTime(load_default=None) gueltig_bis = fields.DateTime(load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Messlokationszuordnung: - """Deserialize JSON to Messlokationszuordnung object""" - return Messlokationszuordnung(**data) diff --git a/src/bo4e/com/positionsaufabschlag.py b/src/bo4e/com/positionsaufabschlag.py index 534ccc00b..07b348182 100644 --- a/src/bo4e/com/positionsaufabschlag.py +++ b/src/bo4e/com/positionsaufabschlag.py @@ -4,16 +4,15 @@ from decimal import Decimal import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema - -# pylint: disable=too-few-public-methods from bo4e.enum.aufabschlagstyp import AufAbschlagstyp from bo4e.enum.waehrungseinheit import Waehrungseinheit +# pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class PositionsAufAbschlag(COM): """ @@ -41,15 +40,10 @@ class PositionsAufAbschlagSchema(COMSchema): Schema for de-/serialization of PositionsAufAbschlag """ + class_name = PositionsAufAbschlag # required attributes bezeichnung = fields.Str() beschreibung = fields.Str() auf_abschlagstyp = EnumField(AufAbschlagstyp) auf_abschlagswert = fields.Decimal(as_string=True) auf_abschlagswaehrung = EnumField(Waehrungseinheit) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> PositionsAufAbschlag: - """Deserialize JSON to PositionsAufAbschlag object""" - return PositionsAufAbschlag(**data) diff --git a/src/bo4e/com/preis.py b/src/bo4e/com/preis.py index 452e0d3bb..394eaf958 100644 --- a/src/bo4e/com/preis.py +++ b/src/bo4e/com/preis.py @@ -7,7 +7,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -24,15 +24,15 @@ class Preis(COM): """ # required attributes - #: Gibt die nomiale Höhe des Preises an. + #: Gibt die nominale Höhe des Preises an. wert: Decimal = attr.ib(validator=attr.validators.instance_of(Decimal)) - #: Währungseinheit für den Preis, z.B. Euro oder Ct. + #: Währungseinheit für den Preis, z.B. Euro oder Ct. einheit: Waehrungseinheit = attr.ib(validator=attr.validators.in_(Waehrungseinheit)) - #: Angabe, für welche Bezugsgröße der Preis gilt. Z.B. kWh. + #: Angabe, für welche Bezugsgröße der Preis gilt. Z.B. kWh. bezugswert: Mengeneinheit = attr.ib(validator=attr.validators.in_(Mengeneinheit)) # optional attributes - #: Gibt den Status des veröffentlichten Preises an + #: Gibt den Status des veröffentlichten Preises an status: Optional[Preisstatus] = attr.ib(default=None) @@ -41,6 +41,7 @@ class PreisSchema(COMSchema): Schema for de-/serialization of Preis. """ + class_name = Preis # required attributes wert = fields.Decimal(as_string=True) einheit = EnumField(Waehrungseinheit) @@ -48,9 +49,3 @@ class PreisSchema(COMSchema): # optional attributes status = EnumField(Preisstatus, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Preis: - """Deserialize JSON to Preis object""" - return Preis(**data) diff --git a/src/bo4e/com/preisgarantie.py b/src/bo4e/com/preisgarantie.py index fa608b249..ea070f414 100644 --- a/src/bo4e/com/preisgarantie.py +++ b/src/bo4e/com/preisgarantie.py @@ -6,7 +6,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -40,15 +40,10 @@ class PreisgarantieSchema(COMSchema): Schema for de-/serialization of Preisgarantie. """ + class_name = Preisgarantie # required attributes preisgarantietyp = EnumField(Preisgarantietyp) zeitliche_gueltigkeit = fields.Nested(ZeitraumSchema) # optionale attributes beschreibung = fields.Str(load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Preisgarantie: - """Deserialize JSON to Preisgarantie object""" - return Preisgarantie(**data) diff --git a/src/bo4e/com/preisstaffel.py b/src/bo4e/com/preisstaffel.py index 5532f3512..c4efded5e 100644 --- a/src/bo4e/com/preisstaffel.py +++ b/src/bo4e/com/preisstaffel.py @@ -6,7 +6,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema from bo4e.com.sigmoidparameter import Sigmoidparameter, SigmoidparameterSchema @@ -39,6 +39,7 @@ class PreisstaffelSchema(COMSchema): Schema for de-/serialization of Preisstaffel """ + class_name = Preisstaffel # required attributes einheitspreis = fields.Decimal(as_string=True) staffelgrenze_von = fields.Decimal(as_string=True) @@ -46,9 +47,3 @@ class PreisstaffelSchema(COMSchema): # optional attributes sigmoidparameter = fields.Nested(SigmoidparameterSchema, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Preisstaffel: - """Deserialize JSON to Preisstaffel object""" - return Preisstaffel(**data) diff --git a/src/bo4e/com/regionalegueltigkeit.py b/src/bo4e/com/regionalegueltigkeit.py index 42ec7b194..a5b0cf419 100644 --- a/src/bo4e/com/regionalegueltigkeit.py +++ b/src/bo4e/com/regionalegueltigkeit.py @@ -6,7 +6,7 @@ from typing import List import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -44,12 +44,7 @@ class RegionaleGueltigkeitSchema(COMSchema): Schema for de-/serialization of RegionaleGueltigkeit. """ + class_name = RegionaleGueltigkeit # required attributes gueltigkeitstyp = EnumField(Gueltigkeitstyp) kriteriums_werte = fields.List(fields.Nested(KriteriumWertSchema)) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> RegionaleGueltigkeit: - """Deserialize JSON to RegionaleGueltigkeit object""" - return RegionaleGueltigkeit(**data) diff --git a/src/bo4e/com/regionalepreisgarantie.py b/src/bo4e/com/regionalepreisgarantie.py index 00d963f8d..94ce74f8b 100644 --- a/src/bo4e/com/regionalepreisgarantie.py +++ b/src/bo4e/com/regionalepreisgarantie.py @@ -4,7 +4,7 @@ """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.preisgarantie import Preisgarantie, PreisgarantieSchema from bo4e.com.regionalegueltigkeit import RegionaleGueltigkeit, RegionaleGueltigkeitSchema @@ -27,11 +27,6 @@ class RegionalePreisgarantieSchema(PreisgarantieSchema): Schema for de-/serialization of RegionalePreisgarantie. """ + class_name = RegionalePreisgarantie # type:ignore[assignment] # required attributes regionale_gueltigkeit = fields.Nested(RegionaleGueltigkeitSchema) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> RegionalePreisgarantie: - """Deserialize JSON to Energiemix object""" - return RegionalePreisgarantie(**data) diff --git a/src/bo4e/com/regionalepreisstaffel.py b/src/bo4e/com/regionalepreisstaffel.py index 11ff72335..2241db909 100644 --- a/src/bo4e/com/regionalepreisstaffel.py +++ b/src/bo4e/com/regionalepreisstaffel.py @@ -3,7 +3,7 @@ """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.preisstaffel import Preisstaffel, PreisstaffelSchema from bo4e.com.regionalegueltigkeit import RegionaleGueltigkeit, RegionaleGueltigkeitSchema @@ -26,11 +26,6 @@ class RegionalePreisstaffelSchema(PreisstaffelSchema): Schema for de-/serialization of RegionalePreisgarantie. """ + class_name = RegionalePreisstaffel # type:ignore[assignment] # required attributes regionale_gueltigkeit = fields.Nested(RegionaleGueltigkeitSchema) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> RegionalePreisstaffel: - """Deserialize JSON to Energiemix object""" - return RegionalePreisstaffel(**data) diff --git a/src/bo4e/com/regionskriterium.py b/src/bo4e/com/regionskriterium.py index 8818ced25..77cba9bf1 100644 --- a/src/bo4e/com/regionskriterium.py +++ b/src/bo4e/com/regionskriterium.py @@ -3,9 +3,8 @@ """ -# pylint: disable=too-few-public-methods import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -13,6 +12,7 @@ from bo4e.enum.regionskriteriumtyp import Regionskriteriumtyp +# pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Regionskriterium(COM): """ @@ -38,13 +38,8 @@ class RegionskriteriumSchema(COMSchema): Schema for de-/serialization of Regionskriterium. """ + class_name = Regionskriterium # required attributes gueltigkeitstyp = EnumField(Gueltigkeitstyp) regionskriteriumtyp = EnumField(Regionskriteriumtyp) wert = fields.String() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Regionskriterium: - """Deserialize JSON to Regionskriterium object""" - return Regionskriterium(**data) diff --git a/src/bo4e/com/rufnummer.py b/src/bo4e/com/rufnummer.py index 551eab737..b3b19729e 100644 --- a/src/bo4e/com/rufnummer.py +++ b/src/bo4e/com/rufnummer.py @@ -1,10 +1,9 @@ """ -Contains Rufnummer class -and corresponding marshmallow schema for de-/serialization +Contains Rufnummer class and corresponding marshmallow schema for de-/serialization """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -28,12 +27,7 @@ class RufnummerSchema(COMSchema): Schema for de-/serialization of Rufnummer. """ + class_name = Rufnummer # required attributes nummerntyp = EnumField(Rufnummernart) rufnummer = fields.Str() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Rufnummer: - """Deserialize JSON to Rufnummer object""" - return Rufnummer(**data) diff --git a/src/bo4e/com/sigmoidparameter.py b/src/bo4e/com/sigmoidparameter.py index 8bc8f6799..c6468a73e 100644 --- a/src/bo4e/com/sigmoidparameter.py +++ b/src/bo4e/com/sigmoidparameter.py @@ -2,16 +2,15 @@ Contains Sigmoidparameter class and corresponding marshmallow schema for de-/serialization """ -# pylint: disable=too-few-public-methods from decimal import Decimal import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema -# pylint:disable=invalid-name +# pylint:disable=invalid-name, too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Sigmoidparameter(COM): """ @@ -39,14 +38,9 @@ class SigmoidparameterSchema(COMSchema): Schema for de-/serialization of Sigmoidparameter. """ + class_name = Sigmoidparameter # required attributes A = fields.Decimal(as_string=True) B = fields.Decimal(as_string=True) C = fields.Decimal(as_string=True) D = fields.Decimal(as_string=True) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Sigmoidparameter: - """Deserialize JSON to Sigmoidparameter object""" - return Sigmoidparameter(**data) diff --git a/src/bo4e/com/standorteigenschaftenallgemein.py b/src/bo4e/com/standorteigenschaftenallgemein.py index afa7da568..d1e556458 100644 --- a/src/bo4e/com/standorteigenschaftenallgemein.py +++ b/src/bo4e/com/standorteigenschaftenallgemein.py @@ -5,7 +5,7 @@ import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema @@ -39,6 +39,7 @@ class StandorteigenschaftenAllgemeinSchema(COMSchema): Schema for de-/serialization of StandorteigenschaftenAllgemein. """ + class_name = StandorteigenschaftenAllgemein # required attributes postleitzahl = fields.Str() ort = fields.Str() @@ -47,9 +48,3 @@ class StandorteigenschaftenAllgemeinSchema(COMSchema): gemeindekennziffer = fields.Str() gemeindeeinwohner = fields.Int() bundesland = fields.Str() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> StandorteigenschaftenAllgemein: - """Deserialize JSON to StandorteigenschaftenAllgemein object""" - return StandorteigenschaftenAllgemein(**data) diff --git a/src/bo4e/com/standorteigenschaftengas.py b/src/bo4e/com/standorteigenschaftengas.py index 9cf548c79..9b29eb78b 100644 --- a/src/bo4e/com/standorteigenschaftengas.py +++ b/src/bo4e/com/standorteigenschaftengas.py @@ -5,7 +5,7 @@ from typing import List import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema from bo4e.com.marktgebietinfo import MarktgebietInfo, MarktgebietInfoSchema @@ -29,12 +29,7 @@ class StandorteigenschaftenGasSchema(COMSchema): Schema for de-/serialization of StandorteigenschaftenGas. """ + class_name = StandorteigenschaftenGas # required attributes netzkontonummern = fields.List(fields.Str()) marktgebiete = fields.List(fields.Nested(MarktgebietInfoSchema)) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> StandorteigenschaftenGas: - """Deserialize JSON to StandorteigenschaftenGas object""" - return StandorteigenschaftenGas(**data) diff --git a/src/bo4e/com/steuerbetrag.py b/src/bo4e/com/steuerbetrag.py index b2b4f985b..220882235 100644 --- a/src/bo4e/com/steuerbetrag.py +++ b/src/bo4e/com/steuerbetrag.py @@ -6,7 +6,7 @@ from decimal import Decimal import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -37,14 +37,9 @@ class SteuerbetragSchema(COMSchema): Schema for de-/serialization of Steuerbetrag. """ + class_name = Steuerbetrag # required attributes steuerkennzeichen = EnumField(Steuerkennzeichen) basiswert = fields.Decimal(as_string=True) steuerwert = fields.Decimal(as_string=True) waehrung = EnumField(Waehrungscode) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Steuerbetrag: - """Deserialize JSON to Steuerbetrag object""" - return Steuerbetrag(**data) diff --git a/src/bo4e/com/tagesvektor.py b/src/bo4e/com/tagesvektor.py index 4e7e8b8cd..cfb4e8ceb 100644 --- a/src/bo4e/com/tagesvektor.py +++ b/src/bo4e/com/tagesvektor.py @@ -5,7 +5,7 @@ from typing import List import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema from bo4e.com.zeitreihenwertkompakt import Zeitreihenwertkompakt, ZeitreihenwertkompaktSchema @@ -50,12 +50,7 @@ class TagesvektorSchema(COMSchema): Schema for de-/serialization of Tagesvektor """ + class_name = Tagesvektor # required attributes tag = fields.DateTime() werte = fields.List(fields.Nested(ZeitreihenwertkompaktSchema)) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Tagesvektor: - """Deserialize JSON to Preisstaffel object""" - return Tagesvektor(**data) diff --git a/src/bo4e/com/tarifeinschraenkung.py b/src/bo4e/com/tarifeinschraenkung.py index 2fd49959f..75c50126d 100644 --- a/src/bo4e/com/tarifeinschraenkung.py +++ b/src/bo4e/com/tarifeinschraenkung.py @@ -4,7 +4,7 @@ from typing import List, Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -12,9 +12,8 @@ from bo4e.com.menge import Menge, MengeSchema from bo4e.enum.voraussetzungen import Voraussetzungen -# pylint: disable=too-few-public-methods - +# pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Tarifeinschraenkung(COM): """ @@ -71,14 +70,9 @@ class TarifeinschraenkungSchema(COMSchema): Schema for de-/serialization of Tarifeinschraenkung """ + class_name = Tarifeinschraenkung # optional attributes zusatzprodukte = fields.List(fields.String, load_default=None, many=True) voraussetzungen = fields.List(EnumField(Voraussetzungen), allow_none=True, many=True) einschraenkungzaehler = fields.List(fields.Nested(GeraetSchema), load_default=None) einschraenkungleistung = fields.List(fields.Nested(MengeSchema), load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Tarifeinschraenkung: - """Deserialize JSON to Tarifeinschraenkung object""" - return Tarifeinschraenkung(**data) diff --git a/src/bo4e/com/tarifpreis.py b/src/bo4e/com/tarifpreis.py index a6e215ee8..562b503ec 100644 --- a/src/bo4e/com/tarifpreis.py +++ b/src/bo4e/com/tarifpreis.py @@ -6,7 +6,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.preis import Preis, PreisSchema @@ -34,14 +34,9 @@ class TarifpreisSchema(PreisSchema): Schema for de-/serialization of Tarifpreis. """ + class_name = Tarifpreis # type:ignore[assignment] # required attributes preistyp = EnumField(Preistyp) # optional attributes beschreibung = fields.Str(load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Tarifpreis: - """Deserialize JSON to Tarifpreis object""" - return Tarifpreis(**data) diff --git a/src/bo4e/com/tarifpreisposition.py b/src/bo4e/com/tarifpreisposition.py index 6639c9102..232baf8eb 100644 --- a/src/bo4e/com/tarifpreisposition.py +++ b/src/bo4e/com/tarifpreisposition.py @@ -6,7 +6,7 @@ from typing import List, Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -54,6 +54,7 @@ class TarifpreispositionSchema(COMSchema): Schema for de-/serialization of Tarifpreisposition. """ + class_name = Tarifpreisposition # required attributes preistyp = EnumField(Preistyp) einheit = EnumField(Waehrungseinheit) @@ -62,9 +63,3 @@ class TarifpreispositionSchema(COMSchema): # optional attributes mengeneinheitstaffel = EnumField(Mengeneinheit, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Tarifpreisposition: - """Deserialize JSON to Tarifpreisposition object""" - return Tarifpreisposition(**data) diff --git a/src/bo4e/com/unterschrift.py b/src/bo4e/com/unterschrift.py index f522cf7ba..2bcd2627b 100644 --- a/src/bo4e/com/unterschrift.py +++ b/src/bo4e/com/unterschrift.py @@ -5,7 +5,7 @@ from datetime import datetime import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema @@ -30,15 +30,11 @@ class UnterschriftSchema(COMSchema): Schema for de-/serialization of Unterschrift. """ + class_name = Unterschrift + # required attributes name = fields.String() # optional attributes ort = fields.String(load_default=None) datum = fields.DateTime(load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Unterschrift: - """Deserialize JSON to Unterschrift object""" - return Unterschrift(**data) diff --git a/src/bo4e/com/verbrauch.py b/src/bo4e/com/verbrauch.py index c12ea2f92..fc5214d4c 100644 --- a/src/bo4e/com/verbrauch.py +++ b/src/bo4e/com/verbrauch.py @@ -6,7 +6,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -60,6 +60,7 @@ class VerbrauchSchema(COMSchema): Schema for de-/serialization of Verbrauch """ + class_name = Verbrauch # required attributes wertermittlungsverfahren = EnumField(Wertermittlungsverfahren) obis_kennzahl = fields.Str() @@ -69,9 +70,3 @@ class VerbrauchSchema(COMSchema): # optional attributes startdatum = fields.DateTime(allow_none=True) enddatum = fields.DateTime(allow_none=True) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Verbrauch: - """Deserialize JSON to Verbrauch object""" - return Verbrauch(**data) diff --git a/src/bo4e/com/vertragskonditionen.py b/src/bo4e/com/vertragskonditionen.py index ba5213789..6c4ac4bef 100644 --- a/src/bo4e/com/vertragskonditionen.py +++ b/src/bo4e/com/vertragskonditionen.py @@ -5,7 +5,7 @@ from decimal import Decimal import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema from bo4e.com.zeitraum import Zeitraum, ZeitraumSchema @@ -32,6 +32,7 @@ class VertragskonditionenSchema(COMSchema): Schema for de-/serialization of Vertragskonditionen. """ + class_name = Vertragskonditionen # optional attributes beschreibung = fields.String(load_default=None) anzahl_abschlaege = fields.Decimal(load_default=None, as_string=True) @@ -39,9 +40,3 @@ class VertragskonditionenSchema(COMSchema): kuendigungsfrist = fields.Nested(ZeitraumSchema, load_default=None) vertragsverlaengerung = fields.Nested(ZeitraumSchema, load_default=None) abschlagszyklus = fields.Nested(ZeitraumSchema, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Vertragskonditionen: - """Deserialize JSON to Vertragskonditionen object""" - return Vertragskonditionen(**data) diff --git a/src/bo4e/com/vertragsteil.py b/src/bo4e/com/vertragsteil.py index 8de0415ee..e35e19d93 100644 --- a/src/bo4e/com/vertragsteil.py +++ b/src/bo4e/com/vertragsteil.py @@ -6,7 +6,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.com import COM, COMSchema from bo4e.com.menge import Menge, MengeSchema @@ -36,6 +36,7 @@ class VertragsteilSchema(COMSchema): Schema for de-/serialization of Vertragsteil. """ + class_name = Vertragsteil # required attributes vertragsteilbeginn = fields.DateTime() vertragsteilende = fields.DateTime() @@ -45,9 +46,3 @@ class VertragsteilSchema(COMSchema): vertraglich_fixierte_menge = fields.Nested(MengeSchema, load_default=None) minimale_abnahmemenge = fields.Nested(MengeSchema, load_default=None) maximale_abnahmemenge = fields.Nested(MengeSchema, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Vertragsteil: - """Deserialize JSON to Vertragsteil object""" - return Vertragsteil(**data) diff --git a/src/bo4e/com/zaehlwerk.py b/src/bo4e/com/zaehlwerk.py index 23864e853..3f171c168 100644 --- a/src/bo4e/com/zaehlwerk.py +++ b/src/bo4e/com/zaehlwerk.py @@ -6,7 +6,7 @@ import attr from attr.validators import matches_re -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -48,15 +48,10 @@ class ZaehlwerkSchema(COMSchema): Schema for de-/serialization of Zaehlwerk. """ + class_name = Zaehlwerk zaehlwerk_id = fields.Str() bezeichnung = fields.Str() richtung = EnumField(Energierichtung) obis_kennzahl = fields.Str() wandlerfaktor = fields.Decimal(as_string=True) einheit = EnumField(Mengeneinheit) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Zaehlwerk: - """Deserialize JSON to Zaehlwerk object""" - return Zaehlwerk(**data) diff --git a/src/bo4e/com/zeitintervall.py b/src/bo4e/com/zeitintervall.py index d8ab58049..997cccbf5 100644 --- a/src/bo4e/com/zeitintervall.py +++ b/src/bo4e/com/zeitintervall.py @@ -3,7 +3,7 @@ and corresponding marshmallow schema for de-/serialization """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -28,12 +28,7 @@ class ZeitintervallSchema(COMSchema): Schema for de-/serialization of Zeitintervall. """ + class_name = Zeitintervall # required attributes wert = fields.Integer() zeiteinheit = EnumField(Zeiteinheit) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Zeitintervall: - """Deserialize JSON to Zeitintervall object""" - return Zeitintervall(**data) diff --git a/src/bo4e/com/zeitraum.py b/src/bo4e/com/zeitraum.py index 1db5a6ffe..28b4dc2a4 100644 --- a/src/bo4e/com/zeitraum.py +++ b/src/bo4e/com/zeitraum.py @@ -8,7 +8,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -75,6 +75,7 @@ class ZeitraumSchema(COMSchema): Schema for de-/serialization of Zeitraum. """ + class_name = Zeitraum # optional attributes einheit = EnumField(Zeiteinheit, load_default=None) dauer = fields.Decimal(load_default=None, as_string=True) @@ -82,9 +83,3 @@ class ZeitraumSchema(COMSchema): enddatum = fields.DateTime(load_default=None) startzeitpunkt = fields.DateTime(load_default=None) endzeitpunkt = fields.DateTime(load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Zeitraum: - """Deserialize JSON to Zeitraum object""" - return Zeitraum(**data) diff --git a/src/bo4e/com/zeitreihenwert.py b/src/bo4e/com/zeitreihenwert.py index ade4655fc..a419ac13e 100644 --- a/src/bo4e/com/zeitreihenwert.py +++ b/src/bo4e/com/zeitreihenwert.py @@ -5,14 +5,13 @@ from datetime import datetime import attr -from marshmallow import fields, post_load +from marshmallow import fields from bo4e.com.zeitreihenwertkompakt import Zeitreihenwertkompakt, ZeitreihenwertkompaktSchema - -# pylint: disable=too-few-public-methods from bo4e.validators import check_bis_is_later_than_von +# pylint: disable=too-few-public-methods @attr.s(auto_attribs=True, kw_only=True) class Zeitreihenwert(Zeitreihenwertkompakt): """ @@ -41,12 +40,7 @@ class ZeitreihenwertSchema(ZeitreihenwertkompaktSchema): Schema for de-/serialization of Zeitreihenwert. """ + class_name = Zeitreihenwert # type:ignore[assignment] # required attributes datum_uhrzeit_von = fields.DateTime() datum_uhrzeit_bis = fields.DateTime() - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Zeitreihenwert: - """Deserialize JSON to Zeitreihenwert object""" - return Zeitreihenwert(**data) diff --git a/src/bo4e/com/zeitreihenwertkompakt.py b/src/bo4e/com/zeitreihenwertkompakt.py index 2a434526f..46035c350 100644 --- a/src/bo4e/com/zeitreihenwertkompakt.py +++ b/src/bo4e/com/zeitreihenwertkompakt.py @@ -6,7 +6,7 @@ from typing import Optional import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -39,15 +39,10 @@ class ZeitreihenwertkompaktSchema(COMSchema): Schema for de-/serialization of Zeitreihenwertkompakt. """ + class_name = Zeitreihenwertkompakt # required attributes wert = fields.Decimal(as_string=True) # optional attributes status = EnumField(Messwertstatus, load_default=None) statuszusatz = EnumField(Messwertstatuszusatz, load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Zeitreihenwertkompakt: - """Deserialize JSON to Zeitreihenwertkompakt object""" - return Zeitreihenwertkompakt(**data) diff --git a/src/bo4e/com/zustaendigkeit.py b/src/bo4e/com/zustaendigkeit.py index 97af1a728..ea757d505 100644 --- a/src/bo4e/com/zustaendigkeit.py +++ b/src/bo4e/com/zustaendigkeit.py @@ -4,7 +4,7 @@ """ import attr -from marshmallow import fields, post_load +from marshmallow import fields from marshmallow_enum import EnumField # type:ignore[import] from bo4e.com.com import COM, COMSchema @@ -31,15 +31,10 @@ class ZustaendigkeitSchema(COMSchema): Schema for de-/serialization of Zustaendigkeit. """ + class_name = Zustaendigkeit # required attributes themengebiet = EnumField(Themengebiet) # optional attributes jobtitel = fields.Str(load_default=None) abteilung = fields.Str(load_default=None) - - # pylint: disable=no-self-use, unused-argument - @post_load - def deserialize(self, data, **kwargs) -> Zustaendigkeit: - """Deserialize JSON to Zustaendigkeit object""" - return Zustaendigkeit(**data)