4242from .contact import OrganizationalEntity
4343
4444
45+ @serializable .serializable_enum
46+ class Co2MeasureUnit (str , Enum ):
47+ """Unit of CO2. Currently only tCO2eq is defined by CycloneDX 1.6+."""
48+ TCO2EQ = 'tCO2eq'
49+
50+
51+ @serializable .serializable_enum
52+ class EnergyMeasureUnit (str , Enum ):
53+ """Unit of energy. Currently only kWh is defined by CycloneDX 1.6+."""
54+ KWH = 'kWh'
55+
56+
4557@serializable .serializable_enum
4658class MachineLearningApproach (str , Enum ):
4759 """Enumeration for `machineLearningApproachType`.
@@ -942,7 +954,7 @@ class EnergyActivity(str, Enum):
942954class EnergyMeasure :
943955 """A measure of energy. Schema `energyMeasure` (1.6+): value + unit (kWh)."""
944956
945- def __init__ (self , * , value : float , unit : str = 'kWh' ) -> None :
957+ def __init__ (self , * , value : float , unit : EnergyMeasureUnit = EnergyMeasureUnit . KWH ) -> None :
946958 self .value = value
947959 self .unit = unit
948960
@@ -961,12 +973,11 @@ def value(self, value: float) -> None:
961973 @serializable .view (SchemaVersion1Dot6 )
962974 @serializable .view (SchemaVersion1Dot7 )
963975 @serializable .xml_sequence (2 )
964- @serializable .xml_string (serializable .XmlStringSerializationType .NORMALIZED_STRING )
965- def unit (self ) -> str :
976+ def unit (self ) -> EnergyMeasureUnit :
966977 return self ._unit
967978
968979 @unit .setter
969- def unit (self , unit : str ) -> None :
980+ def unit (self , unit : EnergyMeasureUnit ) -> None :
970981 self ._unit = unit
971982
972983 def __comparable_tuple (self ) -> _ComparableTuple :
@@ -1003,7 +1014,7 @@ def __repr__(self) -> str:
10031014class Co2Measure :
10041015 """A measure of CO2. Schema `co2Measure` (1.6+): value + unit (tCO2eq)."""
10051016
1006- def __init__ (self , * , value : float , unit : str = 'tCO2eq' ) -> None :
1017+ def __init__ (self , * , value : float , unit : Co2MeasureUnit = Co2MeasureUnit . TCO2EQ ) -> None :
10071018 self .value = value
10081019 self .unit = unit
10091020
@@ -1022,12 +1033,11 @@ def value(self, value: float) -> None:
10221033 @serializable .view (SchemaVersion1Dot6 )
10231034 @serializable .view (SchemaVersion1Dot7 )
10241035 @serializable .xml_sequence (2 )
1025- @serializable .xml_string (serializable .XmlStringSerializationType .NORMALIZED_STRING )
1026- def unit (self ) -> str :
1036+ def unit (self ) -> Co2MeasureUnit :
10271037 return self ._unit
10281038
10291039 @unit .setter
1030- def unit (self , unit : str ) -> None :
1040+ def unit (self , unit : Co2MeasureUnit ) -> None :
10311041 self ._unit = unit
10321042
10331043 def __comparable_tuple (self ) -> _ComparableTuple :
0 commit comments