"""Shapes the stores return for display. These live beside the stores rather than beside the renderers on purpose. A store's return type belongs to the store: putting them in the dashboard would mean astrape-oracle importing astrape-dashboard, which is backwards -- the dashboard reads from the oracle, never the other way round. """ from __future__ import annotations from dataclasses import dataclass from gibil.classes.models import ( WeatherForecastPoint, WeatherResolvedTruth, WeatherStationObservation, ) @dataclass(frozen=True) class WeatherDisplayDataset: forecast_points: list[WeatherForecastPoint] resolved_truth: list[WeatherResolvedTruth] @dataclass(frozen=True) class WeatherStationDisplayDataset: observations: list[WeatherStationObservation]