| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- # -*- coding: utf-8 -*-
- """
- Datenmodelle fuer das Weather-Plugin.
- Definiert WeatherData, ForecastDay und WeatherResult.
- """
- from dataclasses import dataclass, field
- from datetime import date, datetime
- @dataclass
- class WeatherData:
- """
- Aktuelle Wetterdaten.
- Attributes:
- location: Stadtname
- temperature: Temperatur in Grad Celsius
- feels_like: Gefuehlte Temperatur
- humidity: Luftfeuchtigkeit in Prozent
- description: Wetterbeschreibung (z.B. "Leichter Regen")
- wind_speed: Windgeschwindigkeit in km/h
- wind_direction: Windrichtung in Grad (0-360)
- precipitation: Niederschlag in mm
- cloud_cover: Bewoelkung in Prozent
- pressure: Luftdruck in hPa
- provider_name: Name des verwendeten Providers
- timestamp: Zeitpunkt der Messung
- raw_data: Original-Daten vom Provider
- """
- location: str
- temperature: float
- feels_like: float | None
- humidity: int
- description: str
- wind_speed: float
- wind_direction: int
- precipitation: float
- cloud_cover: int | None
- pressure: float | None
- provider_name: str
- timestamp: datetime
- raw_data: dict = field(default_factory=dict)
- @dataclass
- class ForecastDay:
- """
- Vorhersage fuer einen einzelnen Tag.
- Attributes:
- date: Datum der Vorhersage
- temp_min: Minimaltemperatur in Grad Celsius
- temp_max: Maximaltemperatur in Grad Celsius
- description: Wetterbeschreibung
- precipitation: Niederschlagssumme in mm
- wind_speed_max: Maximale Windgeschwindigkeit in km/h
- raw_data: Original-Daten vom Provider
- """
- date: date
- temp_min: float
- temp_max: float
- description: str
- precipitation: float
- wind_speed_max: float
- raw_data: dict = field(default_factory=dict)
- @dataclass
- class WeatherResult:
- """
- Komplettes Wetterergebnis mit aktuellem Wetter und Vorhersage.
- Attributes:
- current: Aktuelle Wetterdaten
- forecast: Vorhersage fuer die naechsten Tage
- fetched_at: Zeitpunkt des Abrufs
- """
- current: WeatherData
- forecast: list[ForecastDay]
- fetched_at: datetime
|