Source code for action0.open_meteo.historical_weather.models

# generated by action0-client-openapi v0.1.2 from historical-weather.yml — do not edit

from __future__ import annotations

import enum
from dataclasses import dataclass
from typing import Any


[docs] class GetV1ArchiveHourlyItem(enum.Enum): """The ``GetV1ArchiveHourlyItem`` values.""" TEMPERATURE_2M = "temperature_2m" RELATIVE_HUMIDITY_2M = "relative_humidity_2m" DEW_POINT_2M = "dew_point_2m" APPARENT_TEMPERATURE = "apparent_temperature" PRECIPITATION = "precipitation" RAIN = "rain" SNOWFALL = "snowfall" SNOW_DEPTH = "snow_depth" WEATHER_CODE = "weather_code" PRESSURE_MSL = "pressure_msl" SURFACE_PRESSURE = "surface_pressure" CLOUD_COVER = "cloud_cover" CLOUD_COVER_LOW = "cloud_cover_low" CLOUD_COVER_MID = "cloud_cover_mid" CLOUD_COVER_HIGH = "cloud_cover_high" ET0_FAO_EVAPOTRANSPIRATION = "et0_fao_evapotranspiration" VAPOUR_PRESSURE_DEFICIT = "vapour_pressure_deficit" WIND_SPEED_10M = "wind_speed_10m" WIND_SPEED_100M = "wind_speed_100m" WIND_DIRECTION_10M = "wind_direction_10m" WIND_DIRECTION_100M = "wind_direction_100m" WIND_GUSTS_10M = "wind_gusts_10m" SOIL_TEMPERATURE_0_TO_7CM = "soil_temperature_0_to_7cm" SOIL_TEMPERATURE_7_TO_28CM = "soil_temperature_7_to_28cm" SOIL_TEMPERATURE_28_TO_100CM = "soil_temperature_28_to_100cm" SOIL_TEMPERATURE_100_TO_255CM = "soil_temperature_100_to_255cm" SOIL_MOISTURE_0_TO_7CM = "soil_moisture_0_to_7cm" SOIL_MOISTURE_7_TO_28CM = "soil_moisture_7_to_28cm" SOIL_MOISTURE_28_TO_100CM = "soil_moisture_28_to_100cm" SOIL_MOISTURE_100_TO_255CM = "soil_moisture_100_to_255cm" SOIL_MOISTURE_0_TO_100CM = "soil_moisture_0_to_100cm" SOIL_TEMPERATURE_0_TO_100CM = "soil_temperature_0_to_100cm" SOIL_MOISTURE_INDEX_0_TO_7CM = "soil_moisture_index_0_to_7cm" SOIL_MOISTURE_INDEX_7_TO_28CM = "soil_moisture_index_7_to_28cm" SOIL_MOISTURE_INDEX_28_TO_100CM = "soil_moisture_index_28_to_100cm" SOIL_MOISTURE_INDEX_0_TO_100CM = "soil_moisture_index_0_to_100cm" BOUNDARY_LAYER_HEIGHT = "boundary_layer_height" WET_BULB_TEMPERATURE_2M = "wet_bulb_temperature_2m" TOTAL_COLUMN_INTEGRATED_WATER_VAPOUR = "total_column_integrated_water_vapour" IS_DAY = "is_day" SUNSHINE_DURATION = "sunshine_duration" GROWING_DEGREE_DAYS_BASE_0_LIMIT_50 = "growing_degree_days_base_0_limit_50" LEAF_WETNESS_PROBABILITY = "leaf_wetness_probability" WAVE_HEIGHT = "wave_height" WAVE_DIRECTION = "wave_direction" WAVE_PERIOD = "wave_period" SEA_SURFACE_TEMPERATURE = "sea_surface_temperature" SHORTWAVE_RADIATION = "shortwave_radiation" DIRECT_RADIATION = "direct_radiation" DIFFUSE_RADIATION = "diffuse_radiation" DIRECT_NORMAL_IRRADIANCE = "direct_normal_irradiance" GLOBAL_TILTED_IRRADIANCE = "global_tilted_irradiance" TERRESTRIAL_RADIATION = "terrestrial_radiation" SHORTWAVE_RADIATION_INSTANT = "shortwave_radiation_instant" DIRECT_RADIATION_INSTANT = "direct_radiation_instant" DIFFUSE_RADIATION_INSTANT = "diffuse_radiation_instant" DIRECT_NORMAL_IRRADIANCE_INSTANT = "direct_normal_irradiance_instant" GLOBAL_TILTED_IRRADIANCE_INSTANT = "global_tilted_irradiance_instant" TERRESTRIAL_RADIATION_INSTANT = "terrestrial_radiation_instant"
[docs] class GetV1ArchiveDailyItem(enum.Enum): """The ``GetV1ArchiveDailyItem`` values.""" WEATHER_CODE = "weather_code" TEMPERATURE_2M_MEAN = "temperature_2m_mean" TEMPERATURE_2M_MAX = "temperature_2m_max" TEMPERATURE_2M_MIN = "temperature_2m_min" APPARENT_TEMPERATURE_MEAN = "apparent_temperature_mean" APPARENT_TEMPERATURE_MAX = "apparent_temperature_max" APPARENT_TEMPERATURE_MIN = "apparent_temperature_min" SUNRISE = "sunrise" SUNSET = "sunset" DAYLIGHT_DURATION = "daylight_duration" SUNSHINE_DURATION = "sunshine_duration" PRECIPITATION_SUM = "precipitation_sum" RAIN_SUM = "rain_sum" SNOWFALL_SUM = "snowfall_sum" PRECIPITATION_HOURS = "precipitation_hours" WIND_SPEED_10M_MAX = "wind_speed_10m_max" WIND_GUSTS_10M_MAX = "wind_gusts_10m_max" WIND_DIRECTION_10M_DOMINANT = "wind_direction_10m_dominant" SHORTWAVE_RADIATION_SUM = "shortwave_radiation_sum" ET0_FAO_EVAPOTRANSPIRATION = "et0_fao_evapotranspiration" CLOUD_COVER_MEAN = "cloud_cover_mean" DEW_POINT_2M_MEAN = "dew_point_2m_mean" DEW_POINT_2M_MAX = "dew_point_2m_max" DEW_POINT_2M_MIN = "dew_point_2m_min" RELATIVE_HUMIDITY_2M_MEAN = "relative_humidity_2m_mean" RELATIVE_HUMIDITY_2M_MAX = "relative_humidity_2m_max" RELATIVE_HUMIDITY_2M_MIN = "relative_humidity_2m_min" PRESSURE_MSL_MEAN = "pressure_msl_mean" WIND_SPEED_10M_MEAN = "wind_speed_10m_mean" WET_BULB_TEMPERATURE_2M_MEAN = "wet_bulb_temperature_2m_mean" VAPOUR_PRESSURE_DEFICIT_MAX = "vapour_pressure_deficit_max" SOIL_MOISTURE_0_TO_7CM_MEAN = "soil_moisture_0_to_7cm_mean" SOIL_MOISTURE_7_TO_28CM_MEAN = "soil_moisture_7_to_28cm_mean" SOIL_MOISTURE_28_TO_100CM_MEAN = "soil_moisture_28_to_100cm_mean" SOIL_MOISTURE_0_TO_100CM_MEAN = "soil_moisture_0_to_100cm_mean" SOIL_TEMPERATURE_0_TO_7CM_MEAN = "soil_temperature_0_to_7cm_mean" SOIL_TEMPERATURE_7_TO_28CM_MEAN = "soil_temperature_7_to_28cm_mean" SOIL_TEMPERATURE_28_TO_100CM_MEAN = "soil_temperature_28_to_100cm_mean"
[docs] class GetV1ArchiveTemperatureUnit(enum.Enum): """The ``GetV1ArchiveTemperatureUnit`` values.""" CELSIUS = "celsius" FAHRENHEIT = "fahrenheit"
[docs] class GetV1ArchiveWindSpeedUnit(enum.Enum): """The ``GetV1ArchiveWindSpeedUnit`` values.""" KMH = "kmh" MS = "ms" MPH = "mph" KN = "kn"
[docs] class GetV1ArchivePrecipitationUnit(enum.Enum): """The ``GetV1ArchivePrecipitationUnit`` values.""" MM = "mm" INCH = "inch"
[docs] class GetV1ArchiveTimeformat(enum.Enum): """The ``GetV1ArchiveTimeformat`` values.""" ISO8601 = "iso8601" UNIXTIME = "unixtime"
[docs] class GetV1ArchiveCellSelection(enum.Enum): """The ``GetV1ArchiveCellSelection`` values.""" LAND = "land" SEA = "sea" NEAREST = "nearest"
[docs] class GetV1ArchiveModelsItem(enum.Enum): """The ``GetV1ArchiveModelsItem`` values.""" BEST_MATCH = "best_match" ERA5_SEAMLESS = "era5_seamless" ERA5 = "era5" ERA5_LAND = "era5_land" ECMWF_IFS = "ecmwf_ifs" CERRA = "cerra" ERA5_ENSEMBLE = "era5_ensemble" ECMWF_IFS_ANALYSIS_LONG_WINDOW = "ecmwf_ifs_analysis_long_window"
[docs] @dataclass class GetV1ArchiveResponseHourly: """The ``GetV1ArchiveResponseHourly`` model.""" time: list[str] | None = None temperature_2m: list[float] | None = None relative_humidity_2m: list[float] | None = None dew_point_2m: list[float] | None = None apparent_temperature: list[float] | None = None precipitation: list[float] | None = None rain: list[float] | None = None snowfall: list[float] | None = None snow_depth: list[float] | None = None weather_code: list[int] | None = None pressure_msl: list[float] | None = None surface_pressure: list[float] | None = None cloud_cover: list[float] | None = None cloud_cover_low: list[float] | None = None cloud_cover_mid: list[float] | None = None cloud_cover_high: list[float] | None = None et0_fao_evapotranspiration: list[float] | None = None vapour_pressure_deficit: list[float] | None = None wind_speed_10m: list[float] | None = None wind_speed_100m: list[float] | None = None wind_direction_10m: list[float] | None = None wind_direction_100m: list[float] | None = None wind_gusts_10m: list[float] | None = None soil_temperature_0_to_7cm: list[float] | None = None soil_temperature_7_to_28cm: list[float] | None = None soil_temperature_28_to_100cm: list[float] | None = None soil_temperature_100_to_255cm: list[float] | None = None soil_moisture_0_to_7cm: list[float] | None = None soil_moisture_7_to_28cm: list[float] | None = None soil_moisture_28_to_100cm: list[float] | None = None soil_moisture_100_to_255cm: list[float] | None = None soil_moisture_0_to_100cm: list[float] | None = None soil_temperature_0_to_100cm: list[float] | None = None soil_moisture_index_0_to_7cm: list[float] | None = None soil_moisture_index_7_to_28cm: list[float] | None = None soil_moisture_index_28_to_100cm: list[float] | None = None soil_moisture_index_0_to_100cm: list[float] | None = None boundary_layer_height: list[float] | None = None wet_bulb_temperature_2m: list[float] | None = None total_column_integrated_water_vapour: list[float] | None = None is_day: list[int] | None = None sunshine_duration: list[float] | None = None growing_degree_days_base_0_limit_50: list[float] | None = None leaf_wetness_probability: list[float] | None = None wave_height: list[float] | None = None wave_direction: list[float] | None = None wave_period: list[float] | None = None sea_surface_temperature: list[float] | None = None shortwave_radiation: list[float] | None = None direct_radiation: list[float] | None = None diffuse_radiation: list[float] | None = None direct_normal_irradiance: list[float] | None = None global_tilted_irradiance: list[float] | None = None terrestrial_radiation: list[float] | None = None shortwave_radiation_instant: list[float] | None = None direct_radiation_instant: list[float] | None = None diffuse_radiation_instant: list[float] | None = None direct_normal_irradiance_instant: list[float] | None = None global_tilted_irradiance_instant: list[float] | None = None terrestrial_radiation_instant: list[float] | None = None
[docs] def get_v1_archive_response_hourly_from_json(data: Any) -> GetV1ArchiveResponseHourly: """ Build a :py:class:`GetV1ArchiveResponseHourly` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1ArchiveResponseHourly """ return GetV1ArchiveResponseHourly( time=data.get("time"), temperature_2m=data.get("temperature_2m"), relative_humidity_2m=data.get("relative_humidity_2m"), dew_point_2m=data.get("dew_point_2m"), apparent_temperature=data.get("apparent_temperature"), precipitation=data.get("precipitation"), rain=data.get("rain"), snowfall=data.get("snowfall"), snow_depth=data.get("snow_depth"), weather_code=data.get("weather_code"), pressure_msl=data.get("pressure_msl"), surface_pressure=data.get("surface_pressure"), cloud_cover=data.get("cloud_cover"), cloud_cover_low=data.get("cloud_cover_low"), cloud_cover_mid=data.get("cloud_cover_mid"), cloud_cover_high=data.get("cloud_cover_high"), et0_fao_evapotranspiration=data.get("et0_fao_evapotranspiration"), vapour_pressure_deficit=data.get("vapour_pressure_deficit"), wind_speed_10m=data.get("wind_speed_10m"), wind_speed_100m=data.get("wind_speed_100m"), wind_direction_10m=data.get("wind_direction_10m"), wind_direction_100m=data.get("wind_direction_100m"), wind_gusts_10m=data.get("wind_gusts_10m"), soil_temperature_0_to_7cm=data.get("soil_temperature_0_to_7cm"), soil_temperature_7_to_28cm=data.get("soil_temperature_7_to_28cm"), soil_temperature_28_to_100cm=data.get("soil_temperature_28_to_100cm"), soil_temperature_100_to_255cm=data.get("soil_temperature_100_to_255cm"), soil_moisture_0_to_7cm=data.get("soil_moisture_0_to_7cm"), soil_moisture_7_to_28cm=data.get("soil_moisture_7_to_28cm"), soil_moisture_28_to_100cm=data.get("soil_moisture_28_to_100cm"), soil_moisture_100_to_255cm=data.get("soil_moisture_100_to_255cm"), soil_moisture_0_to_100cm=data.get("soil_moisture_0_to_100cm"), soil_temperature_0_to_100cm=data.get("soil_temperature_0_to_100cm"), soil_moisture_index_0_to_7cm=data.get("soil_moisture_index_0_to_7cm"), soil_moisture_index_7_to_28cm=data.get("soil_moisture_index_7_to_28cm"), soil_moisture_index_28_to_100cm=data.get("soil_moisture_index_28_to_100cm"), soil_moisture_index_0_to_100cm=data.get("soil_moisture_index_0_to_100cm"), boundary_layer_height=data.get("boundary_layer_height"), wet_bulb_temperature_2m=data.get("wet_bulb_temperature_2m"), total_column_integrated_water_vapour=data.get("total_column_integrated_water_vapour"), is_day=data.get("is_day"), sunshine_duration=data.get("sunshine_duration"), growing_degree_days_base_0_limit_50=data.get("growing_degree_days_base_0_limit_50"), leaf_wetness_probability=data.get("leaf_wetness_probability"), wave_height=data.get("wave_height"), wave_direction=data.get("wave_direction"), wave_period=data.get("wave_period"), sea_surface_temperature=data.get("sea_surface_temperature"), shortwave_radiation=data.get("shortwave_radiation"), direct_radiation=data.get("direct_radiation"), diffuse_radiation=data.get("diffuse_radiation"), direct_normal_irradiance=data.get("direct_normal_irradiance"), global_tilted_irradiance=data.get("global_tilted_irradiance"), terrestrial_radiation=data.get("terrestrial_radiation"), shortwave_radiation_instant=data.get("shortwave_radiation_instant"), direct_radiation_instant=data.get("direct_radiation_instant"), diffuse_radiation_instant=data.get("diffuse_radiation_instant"), direct_normal_irradiance_instant=data.get("direct_normal_irradiance_instant"), global_tilted_irradiance_instant=data.get("global_tilted_irradiance_instant"), terrestrial_radiation_instant=data.get("terrestrial_radiation_instant"), )
[docs] @dataclass class GetV1ArchiveResponseHourlyUnits: """The ``GetV1ArchiveResponseHourlyUnits`` model.""" time: str | None = None temperature_2m: str | None = None relative_humidity_2m: str | None = None dew_point_2m: str | None = None apparent_temperature: str | None = None precipitation: str | None = None rain: str | None = None snowfall: str | None = None snow_depth: str | None = None weather_code: str | None = None pressure_msl: str | None = None surface_pressure: str | None = None cloud_cover: str | None = None cloud_cover_low: str | None = None cloud_cover_mid: str | None = None cloud_cover_high: str | None = None et0_fao_evapotranspiration: str | None = None vapour_pressure_deficit: str | None = None wind_speed_10m: str | None = None wind_speed_100m: str | None = None wind_direction_10m: str | None = None wind_direction_100m: str | None = None wind_gusts_10m: str | None = None soil_temperature_0_to_7cm: str | None = None soil_temperature_7_to_28cm: str | None = None soil_temperature_28_to_100cm: str | None = None soil_temperature_100_to_255cm: str | None = None soil_moisture_0_to_7cm: str | None = None soil_moisture_7_to_28cm: str | None = None soil_moisture_28_to_100cm: str | None = None soil_moisture_100_to_255cm: str | None = None soil_moisture_0_to_100cm: str | None = None soil_temperature_0_to_100cm: str | None = None soil_moisture_index_0_to_7cm: str | None = None soil_moisture_index_7_to_28cm: str | None = None soil_moisture_index_28_to_100cm: str | None = None soil_moisture_index_0_to_100cm: str | None = None boundary_layer_height: str | None = None wet_bulb_temperature_2m: str | None = None total_column_integrated_water_vapour: str | None = None is_day: str | None = None sunshine_duration: str | None = None growing_degree_days_base_0_limit_50: str | None = None leaf_wetness_probability: str | None = None wave_height: str | None = None wave_direction: str | None = None wave_period: str | None = None sea_surface_temperature: str | None = None shortwave_radiation: str | None = None direct_radiation: str | None = None diffuse_radiation: str | None = None direct_normal_irradiance: str | None = None global_tilted_irradiance: str | None = None terrestrial_radiation: str | None = None shortwave_radiation_instant: str | None = None direct_radiation_instant: str | None = None diffuse_radiation_instant: str | None = None direct_normal_irradiance_instant: str | None = None global_tilted_irradiance_instant: str | None = None terrestrial_radiation_instant: str | None = None
[docs] def get_v1_archive_response_hourly_units_from_json(data: Any) -> GetV1ArchiveResponseHourlyUnits: """ Build a :py:class:`GetV1ArchiveResponseHourlyUnits` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1ArchiveResponseHourlyUnits """ return GetV1ArchiveResponseHourlyUnits( time=data.get("time"), temperature_2m=data.get("temperature_2m"), relative_humidity_2m=data.get("relative_humidity_2m"), dew_point_2m=data.get("dew_point_2m"), apparent_temperature=data.get("apparent_temperature"), precipitation=data.get("precipitation"), rain=data.get("rain"), snowfall=data.get("snowfall"), snow_depth=data.get("snow_depth"), weather_code=data.get("weather_code"), pressure_msl=data.get("pressure_msl"), surface_pressure=data.get("surface_pressure"), cloud_cover=data.get("cloud_cover"), cloud_cover_low=data.get("cloud_cover_low"), cloud_cover_mid=data.get("cloud_cover_mid"), cloud_cover_high=data.get("cloud_cover_high"), et0_fao_evapotranspiration=data.get("et0_fao_evapotranspiration"), vapour_pressure_deficit=data.get("vapour_pressure_deficit"), wind_speed_10m=data.get("wind_speed_10m"), wind_speed_100m=data.get("wind_speed_100m"), wind_direction_10m=data.get("wind_direction_10m"), wind_direction_100m=data.get("wind_direction_100m"), wind_gusts_10m=data.get("wind_gusts_10m"), soil_temperature_0_to_7cm=data.get("soil_temperature_0_to_7cm"), soil_temperature_7_to_28cm=data.get("soil_temperature_7_to_28cm"), soil_temperature_28_to_100cm=data.get("soil_temperature_28_to_100cm"), soil_temperature_100_to_255cm=data.get("soil_temperature_100_to_255cm"), soil_moisture_0_to_7cm=data.get("soil_moisture_0_to_7cm"), soil_moisture_7_to_28cm=data.get("soil_moisture_7_to_28cm"), soil_moisture_28_to_100cm=data.get("soil_moisture_28_to_100cm"), soil_moisture_100_to_255cm=data.get("soil_moisture_100_to_255cm"), soil_moisture_0_to_100cm=data.get("soil_moisture_0_to_100cm"), soil_temperature_0_to_100cm=data.get("soil_temperature_0_to_100cm"), soil_moisture_index_0_to_7cm=data.get("soil_moisture_index_0_to_7cm"), soil_moisture_index_7_to_28cm=data.get("soil_moisture_index_7_to_28cm"), soil_moisture_index_28_to_100cm=data.get("soil_moisture_index_28_to_100cm"), soil_moisture_index_0_to_100cm=data.get("soil_moisture_index_0_to_100cm"), boundary_layer_height=data.get("boundary_layer_height"), wet_bulb_temperature_2m=data.get("wet_bulb_temperature_2m"), total_column_integrated_water_vapour=data.get("total_column_integrated_water_vapour"), is_day=data.get("is_day"), sunshine_duration=data.get("sunshine_duration"), growing_degree_days_base_0_limit_50=data.get("growing_degree_days_base_0_limit_50"), leaf_wetness_probability=data.get("leaf_wetness_probability"), wave_height=data.get("wave_height"), wave_direction=data.get("wave_direction"), wave_period=data.get("wave_period"), sea_surface_temperature=data.get("sea_surface_temperature"), shortwave_radiation=data.get("shortwave_radiation"), direct_radiation=data.get("direct_radiation"), diffuse_radiation=data.get("diffuse_radiation"), direct_normal_irradiance=data.get("direct_normal_irradiance"), global_tilted_irradiance=data.get("global_tilted_irradiance"), terrestrial_radiation=data.get("terrestrial_radiation"), shortwave_radiation_instant=data.get("shortwave_radiation_instant"), direct_radiation_instant=data.get("direct_radiation_instant"), diffuse_radiation_instant=data.get("diffuse_radiation_instant"), direct_normal_irradiance_instant=data.get("direct_normal_irradiance_instant"), global_tilted_irradiance_instant=data.get("global_tilted_irradiance_instant"), terrestrial_radiation_instant=data.get("terrestrial_radiation_instant"), )
[docs] @dataclass class GetV1ArchiveResponseDaily: """The ``GetV1ArchiveResponseDaily`` model.""" time: list[str] | None = None weather_code: list[int] | None = None temperature_2m_mean: list[float] | None = None temperature_2m_max: list[float] | None = None temperature_2m_min: list[float] | None = None apparent_temperature_mean: list[float] | None = None apparent_temperature_max: list[float] | None = None apparent_temperature_min: list[float] | None = None sunrise: list[str] | None = None sunset: list[str] | None = None daylight_duration: list[float] | None = None sunshine_duration: list[float] | None = None precipitation_sum: list[float] | None = None rain_sum: list[float] | None = None snowfall_sum: list[float] | None = None precipitation_hours: list[float] | None = None wind_speed_10m_max: list[float] | None = None wind_gusts_10m_max: list[float] | None = None wind_direction_10m_dominant: list[float] | None = None shortwave_radiation_sum: list[float] | None = None et0_fao_evapotranspiration: list[float] | None = None cloud_cover_mean: list[float] | None = None dew_point_2m_mean: list[float] | None = None dew_point_2m_max: list[float] | None = None dew_point_2m_min: list[float] | None = None relative_humidity_2m_mean: list[float] | None = None relative_humidity_2m_max: list[float] | None = None relative_humidity_2m_min: list[float] | None = None pressure_msl_mean: list[float] | None = None wind_speed_10m_mean: list[float] | None = None wet_bulb_temperature_2m_mean: list[float] | None = None vapour_pressure_deficit_max: list[float] | None = None soil_moisture_0_to_7cm_mean: list[float] | None = None soil_moisture_7_to_28cm_mean: list[float] | None = None soil_moisture_28_to_100cm_mean: list[float] | None = None soil_moisture_0_to_100cm_mean: list[float] | None = None soil_temperature_0_to_7cm_mean: list[float] | None = None soil_temperature_7_to_28cm_mean: list[float] | None = None soil_temperature_28_to_100cm_mean: list[float] | None = None
[docs] def get_v1_archive_response_daily_from_json(data: Any) -> GetV1ArchiveResponseDaily: """ Build a :py:class:`GetV1ArchiveResponseDaily` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1ArchiveResponseDaily """ return GetV1ArchiveResponseDaily( time=data.get("time"), weather_code=data.get("weather_code"), temperature_2m_mean=data.get("temperature_2m_mean"), temperature_2m_max=data.get("temperature_2m_max"), temperature_2m_min=data.get("temperature_2m_min"), apparent_temperature_mean=data.get("apparent_temperature_mean"), apparent_temperature_max=data.get("apparent_temperature_max"), apparent_temperature_min=data.get("apparent_temperature_min"), sunrise=data.get("sunrise"), sunset=data.get("sunset"), daylight_duration=data.get("daylight_duration"), sunshine_duration=data.get("sunshine_duration"), precipitation_sum=data.get("precipitation_sum"), rain_sum=data.get("rain_sum"), snowfall_sum=data.get("snowfall_sum"), precipitation_hours=data.get("precipitation_hours"), wind_speed_10m_max=data.get("wind_speed_10m_max"), wind_gusts_10m_max=data.get("wind_gusts_10m_max"), wind_direction_10m_dominant=data.get("wind_direction_10m_dominant"), shortwave_radiation_sum=data.get("shortwave_radiation_sum"), et0_fao_evapotranspiration=data.get("et0_fao_evapotranspiration"), cloud_cover_mean=data.get("cloud_cover_mean"), dew_point_2m_mean=data.get("dew_point_2m_mean"), dew_point_2m_max=data.get("dew_point_2m_max"), dew_point_2m_min=data.get("dew_point_2m_min"), relative_humidity_2m_mean=data.get("relative_humidity_2m_mean"), relative_humidity_2m_max=data.get("relative_humidity_2m_max"), relative_humidity_2m_min=data.get("relative_humidity_2m_min"), pressure_msl_mean=data.get("pressure_msl_mean"), wind_speed_10m_mean=data.get("wind_speed_10m_mean"), wet_bulb_temperature_2m_mean=data.get("wet_bulb_temperature_2m_mean"), vapour_pressure_deficit_max=data.get("vapour_pressure_deficit_max"), soil_moisture_0_to_7cm_mean=data.get("soil_moisture_0_to_7cm_mean"), soil_moisture_7_to_28cm_mean=data.get("soil_moisture_7_to_28cm_mean"), soil_moisture_28_to_100cm_mean=data.get("soil_moisture_28_to_100cm_mean"), soil_moisture_0_to_100cm_mean=data.get("soil_moisture_0_to_100cm_mean"), soil_temperature_0_to_7cm_mean=data.get("soil_temperature_0_to_7cm_mean"), soil_temperature_7_to_28cm_mean=data.get("soil_temperature_7_to_28cm_mean"), soil_temperature_28_to_100cm_mean=data.get("soil_temperature_28_to_100cm_mean"), )
[docs] @dataclass class GetV1ArchiveResponseDailyUnits: """The ``GetV1ArchiveResponseDailyUnits`` model.""" time: str | None = None weather_code: str | None = None temperature_2m_mean: str | None = None temperature_2m_max: str | None = None temperature_2m_min: str | None = None apparent_temperature_mean: str | None = None apparent_temperature_max: str | None = None apparent_temperature_min: str | None = None sunrise: str | None = None sunset: str | None = None daylight_duration: str | None = None sunshine_duration: str | None = None precipitation_sum: str | None = None rain_sum: str | None = None snowfall_sum: str | None = None precipitation_hours: str | None = None wind_speed_10m_max: str | None = None wind_gusts_10m_max: str | None = None wind_direction_10m_dominant: str | None = None shortwave_radiation_sum: str | None = None et0_fao_evapotranspiration: str | None = None cloud_cover_mean: str | None = None dew_point_2m_mean: str | None = None dew_point_2m_max: str | None = None dew_point_2m_min: str | None = None relative_humidity_2m_mean: str | None = None relative_humidity_2m_max: str | None = None relative_humidity_2m_min: str | None = None pressure_msl_mean: str | None = None wind_speed_10m_mean: str | None = None wet_bulb_temperature_2m_mean: str | None = None vapour_pressure_deficit_max: str | None = None soil_moisture_0_to_7cm_mean: str | None = None soil_moisture_7_to_28cm_mean: str | None = None soil_moisture_28_to_100cm_mean: str | None = None soil_moisture_0_to_100cm_mean: str | None = None soil_temperature_0_to_7cm_mean: str | None = None soil_temperature_7_to_28cm_mean: str | None = None soil_temperature_28_to_100cm_mean: str | None = None
[docs] def get_v1_archive_response_daily_units_from_json(data: Any) -> GetV1ArchiveResponseDailyUnits: """ Build a :py:class:`GetV1ArchiveResponseDailyUnits` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1ArchiveResponseDailyUnits """ return GetV1ArchiveResponseDailyUnits( time=data.get("time"), weather_code=data.get("weather_code"), temperature_2m_mean=data.get("temperature_2m_mean"), temperature_2m_max=data.get("temperature_2m_max"), temperature_2m_min=data.get("temperature_2m_min"), apparent_temperature_mean=data.get("apparent_temperature_mean"), apparent_temperature_max=data.get("apparent_temperature_max"), apparent_temperature_min=data.get("apparent_temperature_min"), sunrise=data.get("sunrise"), sunset=data.get("sunset"), daylight_duration=data.get("daylight_duration"), sunshine_duration=data.get("sunshine_duration"), precipitation_sum=data.get("precipitation_sum"), rain_sum=data.get("rain_sum"), snowfall_sum=data.get("snowfall_sum"), precipitation_hours=data.get("precipitation_hours"), wind_speed_10m_max=data.get("wind_speed_10m_max"), wind_gusts_10m_max=data.get("wind_gusts_10m_max"), wind_direction_10m_dominant=data.get("wind_direction_10m_dominant"), shortwave_radiation_sum=data.get("shortwave_radiation_sum"), et0_fao_evapotranspiration=data.get("et0_fao_evapotranspiration"), cloud_cover_mean=data.get("cloud_cover_mean"), dew_point_2m_mean=data.get("dew_point_2m_mean"), dew_point_2m_max=data.get("dew_point_2m_max"), dew_point_2m_min=data.get("dew_point_2m_min"), relative_humidity_2m_mean=data.get("relative_humidity_2m_mean"), relative_humidity_2m_max=data.get("relative_humidity_2m_max"), relative_humidity_2m_min=data.get("relative_humidity_2m_min"), pressure_msl_mean=data.get("pressure_msl_mean"), wind_speed_10m_mean=data.get("wind_speed_10m_mean"), wet_bulb_temperature_2m_mean=data.get("wet_bulb_temperature_2m_mean"), vapour_pressure_deficit_max=data.get("vapour_pressure_deficit_max"), soil_moisture_0_to_7cm_mean=data.get("soil_moisture_0_to_7cm_mean"), soil_moisture_7_to_28cm_mean=data.get("soil_moisture_7_to_28cm_mean"), soil_moisture_28_to_100cm_mean=data.get("soil_moisture_28_to_100cm_mean"), soil_moisture_0_to_100cm_mean=data.get("soil_moisture_0_to_100cm_mean"), soil_temperature_0_to_7cm_mean=data.get("soil_temperature_0_to_7cm_mean"), soil_temperature_7_to_28cm_mean=data.get("soil_temperature_7_to_28cm_mean"), soil_temperature_28_to_100cm_mean=data.get("soil_temperature_28_to_100cm_mean"), )
[docs] @dataclass class GetV1ArchiveResponse: """The ``GetV1ArchiveResponse`` model.""" latitude: float | None = None longitude: float | None = None elevation: float | None = None generationtime_ms: float | None = None utc_offset_seconds: int | None = None timezone: str | None = None timezone_abbreviation: str | None = None hourly: GetV1ArchiveResponseHourly | None = None hourly_units: GetV1ArchiveResponseHourlyUnits | None = None daily: GetV1ArchiveResponseDaily | None = None daily_units: GetV1ArchiveResponseDailyUnits | None = None
[docs] def get_v1_archive_response_from_json(data: Any) -> GetV1ArchiveResponse: """ Build a :py:class:`GetV1ArchiveResponse` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1ArchiveResponse """ return GetV1ArchiveResponse( latitude=data.get("latitude"), longitude=data.get("longitude"), elevation=data.get("elevation"), generationtime_ms=data.get("generationtime_ms"), utc_offset_seconds=data.get("utc_offset_seconds"), timezone=data.get("timezone"), timezone_abbreviation=data.get("timezone_abbreviation"), hourly=( get_v1_archive_response_hourly_from_json(data["hourly"]) if data.get("hourly") is not None else None ), hourly_units=( get_v1_archive_response_hourly_units_from_json(data["hourly_units"]) if data.get("hourly_units") is not None else None ), daily=( get_v1_archive_response_daily_from_json(data["daily"]) if data.get("daily") is not None else None ), daily_units=( get_v1_archive_response_daily_units_from_json(data["daily_units"]) if data.get("daily_units") is not None else None ), )
[docs] @dataclass class GetV1ArchiveError: """The ``GetV1ArchiveError`` model.""" error: bool | None = None reason: str | None = None
[docs] def get_v1_archive_error_from_json(data: Any) -> GetV1ArchiveError: """ Build a :py:class:`GetV1ArchiveError` from one decoded JSON object. :param data: the decoded JSON object :return: the GetV1ArchiveError """ return GetV1ArchiveError( error=data.get("error"), reason=data.get("reason"), )