from typing import Optional
from pydantic import Field
from dataio.schemas.bonsai_api.base_models import DimensionModel
[docs]
class Level(DimensionModel):
name: str
code: str
description: Optional[str] = None
comment: Optional[str] = None
[docs]
class ClassificationNode(DimensionModel):
code: str
parent_code: Optional[str] = None
level: Optional[str] = None
description: Optional[str] = None
comment: Optional[str] = None
[docs]
class Location(ClassificationNode):
def __str__(self) -> str:
return self.name
[docs]
class ActivityType(ClassificationNode):
# flow_type: str = Field(None, max_length=30)
def __str__(self) -> str:
return self.description
[docs]
class FlowObject(ClassificationNode):
def __str__(self) -> str:
return self.description
[docs]
class Market(ClassificationNode):
def __str__(self) -> str:
return self.description
[docs]
class Unit(DimensionModel):
scientific_notation: str = Field(..., max_length=50)
name: Optional[str] = Field(None, max_length=50)
description: Optional[str] = None
unit_dimension: str
def __str__(self) -> str:
return self.short_name
[docs]
class UnitConversion(DimensionModel):
unit: str
reference_unit: str
conversion_factor: float
[docs]
class Calendar(DimensionModel):
description: str
def __str__(self) -> str:
return self.code
[docs]
class Year(DimensionModel):
name: str
calendar: str
def __str__(self) -> str:
return self.code
[docs]
class DataQuality(DimensionModel):
name: str
code: str
description: Optional[str] = None
comment: Optional[str] = None
[docs]
class UncertaintyDistribution(DimensionModel):
name: str
code: str
description: Optional[str] = None
comment: Optional[str] = None
[docs]
class ChemicalCompound(DimensionModel):
name: str
code: str
description: Optional[str] = None
comment: Optional[str] = None
[docs]
class Compartment(DimensionModel):
name: str
code: str
description: Optional[str] = None
comment: Optional[str] = None
[docs]
class LCIA(DimensionModel):
name: str
code: str
description: Optional[str] = None
comment: Optional[str] = None
# Used for fact tables and collection of flags.
[docs]
class ExternalDimensionTables(DimensionModel):
description: str
comment: Optional[str] = None
urn: Optional[str] = None