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,
WindDirection,
)
from gallery.sketch.weather.parser import fix_dates_sequence, parse_wind_direction
from gallery.sketch.weather.util import merge_weather_values
from gallery.sketch.weather.parser import parse_wind_direction
from gallery.sketch.weather.util import fix_dates_sequence, merge_weather_values
logger = logging.getLogger("gismeteo")
+2 -1
View File
@@ -19,7 +19,8 @@ from gallery.sketch.weather.model import (
WeatherValue,
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]):
+2 -15
View File
@@ -1,7 +1,6 @@
from datetime import timedelta
from typing import Self, overload
from typing import Self
from gallery.sketch.weather.model import WeatherResponse, WeatherValue, WindDirection
from gallery.sketch.weather.model import WindDirection
class ParseError(Exception):
@@ -53,15 +52,3 @@ def parse_wind_direction(value: str | int | float) -> WindDirection | None:
return _parse_wind_direction_str(value)
else:
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 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"]
@@ -64,3 +64,15 @@ def merge_weather_values(
def convert_hPa_to_mmHg(value: int) -> int:
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