refactor(weather): move fix_dates_sequence to util
This commit is contained in:
@@ -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")
|
||||
|
||||
|
||||
@@ -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]):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user