python-irceline/src/open_irceline/data.py

54 lines
1.5 KiB
Python

from datetime import datetime, date
from enum import StrEnum
from typing import TypedDict
class IrcelineFeature(StrEnum):
pass
class RioFeature(IrcelineFeature):
BC_24HMEAN = 'rio:bc_24hmean'
BC_DMEAN = 'rio:bc_dmean'
BC_HMEAN = 'rio:bc_hmean'
NO2_ANMEAN = 'rio:no2_anmean'
NO2_DMEAN = 'rio:no2_dmean'
NO2_HMEAN = 'rio:no2_hmean'
O3_8HMEAN = 'rio:o3_8hmean'
O3_ANMEAN = 'rio:o3_anmean'
O3_HMEAN = 'rio:o3_hmean'
O3_MAX8HMEAN = 'rio:o3_max8hmean'
O3_MAXHMEAN = 'rio:o3_maxhmean'
PM10_24HMEAN = 'rio:pm10_24hmean'
PM10_ANMEAN = 'rio:pm10_anmean'
PM10_DMEAN = 'rio:pm10_dmean'
PM10_HMEAN = 'rio:pm10_hmean'
PM25_24HMEAN = 'rio:pm25_24hmean'
PM25_ANMEAN = 'rio:pm25_anmean'
PM25_DMEAN = 'rio:pm25_dmean'
PM25_HMEAN = 'rio:pm25_hmean'
SO2_HMEAN = 'rio:so2_hmean'
class RioIfdmFeature(IrcelineFeature):
PM25_HMEAN = 'rioifdm:pm25_hmean'
NO2_HMEAN = 'rioifdm:no2_hmean'
PM10_HMEAN = 'rioifdm:pm10_hmean'
O3_HMEAN = 'rioifdm:o3_hmean'
BELAQI = 'rioifdm:belaqi'
class ForecastFeature(IrcelineFeature):
NO2_MAXHMEAN = 'forecast:no2_maxhmean'
NO2_DMEAN = 'forecast:no2_dmean'
O3_MAXHMEAN = 'forecast:o3_maxhmean'
O3_MAX8HMEAN = 'forecast:o3_max8hmean'
PM10_DMEAN = 'forecast:pm10_dmean'
PM25_DMEAN = 'forecast:pm25_dmean'
BELAQI = 'forecast:belaqi'
class FeatureValue(TypedDict):
# Timestamp at which the value was computed
timestamp: datetime | date | None
value: int | float | None