refactor(weather): move fix_dates_sequence to util

This commit is contained in:
2026-09-18 16:12:18 +03:00
parent 6178c694f9
commit a14f49742b
4 changed files with 20 additions and 20 deletions
+2 -2
View File
@@ -18,8 +18,8 @@ from gallery.sketch.weather.model import (
WeatherValue, WeatherValue,
WindDirection, WindDirection,
) )
from gallery.sketch.weather.parser import fix_dates_sequence, parse_wind_direction from gallery.sketch.weather.parser import parse_wind_direction
from gallery.sketch.weather.util import merge_weather_values from gallery.sketch.weather.util import fix_dates_sequence, merge_weather_values
logger = logging.getLogger("gismeteo") logger = logging.getLogger("gismeteo")
+2 -1
View File
@@ -19,7 +19,8 @@ from gallery.sketch.weather.model import (
WeatherValue, WeatherValue,
WindDirection, WindDirection,
) )
from gallery.sketch.weather.parser import fix_dates_sequence, parse_wind_direction from gallery.sketch.weather.parser import parse_wind_direction
from gallery.sketch.weather.util import fix_dates_sequence
class LocationNameParser(TagParser[str]): class LocationNameParser(TagParser[str]):
+2 -15
View File
@@ -1,7 +1,6 @@
from datetime import timedelta from typing import Self
from typing import Self, overload
from gallery.sketch.weather.model import WeatherResponse, WeatherValue, WindDirection from gallery.sketch.weather.model import WindDirection
class ParseError(Exception): class ParseError(Exception):
@@ -53,15 +52,3 @@ def parse_wind_direction(value: str | int | float) -> WindDirection | None:
return _parse_wind_direction_str(value) return _parse_wind_direction_str(value)
else: else:
return _parse_wind_direction_number(value) return _parse_wind_direction_number(value)
@overload
def fix_dates_sequence(items: list[WeatherValue]): ...
@overload
def fix_dates_sequence(items: list[WeatherResponse]): ...
def fix_dates_sequence(items):
date = None
for item in items:
if date and (item.date - date).total_seconds() < 0:
item.date = date + timedelta(days=1)
date = item.date
+14 -2
View File
@@ -1,8 +1,8 @@
import datetime import datetime
import statistics import statistics
from typing import Counter, Literal from typing import Counter, Literal, overload
from .model import Cloudness, Precipitation, WeatherValue from .model import Cloudness, Precipitation, WeatherResponse, WeatherValue
MergeMode = Literal["interval", "average"] MergeMode = Literal["interval", "average"]
@@ -64,3 +64,15 @@ def merge_weather_values(
def convert_hPa_to_mmHg(value: int) -> int: def convert_hPa_to_mmHg(value: int) -> int:
return round(value / 1.333) return round(value / 1.333)
@overload
def fix_dates_sequence(items: list[WeatherValue]): ...
@overload
def fix_dates_sequence(items: list[WeatherResponse]): ...
def fix_dates_sequence(items):
date = None
for item in items:
if date and (item.date - date).total_seconds() < 0:
item.date = date + datetime.timedelta(days=1)
date = item.date