Skip to content

Commit 1c39216

Browse files
fix: parse_time_to_datetime method
1 parent dd89202 commit 1c39216

File tree

2 files changed

+24
-17
lines changed

2 files changed

+24
-17
lines changed

roborock/containers.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,15 +107,16 @@ class RoborockBaseTimer(RoborockBase):
107107
end_time: Optional[datetime.datetime] = None
108108

109109
def __post_init__(self) -> None:
110-
self.start_time = (
111-
parse_time_to_datetime(datetime.time(hour=self.start_hour, minute=self.start_minute))
112-
if self.start_hour is not None and self.start_minute is not None
113-
else None
114-
)
115-
self.end_time = (
116-
parse_time_to_datetime(datetime.time(hour=self.end_hour, minute=self.end_minute))
117-
if self.end_hour is not None and self.end_minute is not None
118-
else None
110+
self.start_time, self.end_time = (
111+
parse_time_to_datetime(
112+
datetime.time(hour=self.start_hour, minute=self.start_minute),
113+
datetime.time(hour=self.end_hour, minute=self.end_minute),
114+
)
115+
if self.start_hour is not None
116+
and self.start_minute is not None
117+
and self.end_hour is not None
118+
and self.end_minute is not None
119+
else (None, None)
119120
)
120121

121122

roborock/util.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
import datetime
55
import functools
66
from asyncio import AbstractEventLoop
7-
from typing import Callable, Coroutine, Optional, TypeVar
7+
from typing import Callable, Coroutine, Optional, Tuple, TypeVar
88

99
T = TypeVar("T")
10-
DEFAULT_TIME_ZONE: datetime.tzinfo = datetime.timezone.utc
10+
DEFAULT_TIME_ZONE: Optional[datetime.tzinfo] = datetime.datetime.now().astimezone().tzinfo
1111

1212

1313
def unpack_list(value: list[T], size: int) -> list[Optional[T]]:
@@ -23,16 +23,22 @@ def get_running_loop_or_create_one() -> AbstractEventLoop:
2323
return loop
2424

2525

26-
def parse_time_to_datetime(initial_time: datetime.time) -> datetime.datetime:
26+
def parse_time_to_datetime(
27+
start_time: datetime.time, end_time: datetime.time
28+
) -> Tuple[datetime.datetime, datetime.datetime]:
2729
"""Help to handle time data."""
28-
time = datetime.datetime.now(DEFAULT_TIME_ZONE).replace(
29-
hour=initial_time.hour, minute=initial_time.minute, second=0, microsecond=0
30+
start_datetime = datetime.datetime.now(DEFAULT_TIME_ZONE).replace(
31+
hour=start_time.hour, minute=start_time.minute, second=0, microsecond=0
32+
)
33+
end_datetime = datetime.datetime.now(DEFAULT_TIME_ZONE).replace(
34+
hour=end_time.hour, minute=end_time.minute, second=0, microsecond=0
3035
)
3136

32-
if time < datetime.datetime.now(DEFAULT_TIME_ZONE):
33-
time += datetime.timedelta(days=1)
37+
if end_datetime < datetime.datetime.now(DEFAULT_TIME_ZONE):
38+
start_datetime += datetime.timedelta(days=1)
39+
end_datetime += datetime.timedelta(days=1)
3440

35-
return time
41+
return start_datetime, end_datetime
3642

3743

3844
def run_sync():

0 commit comments

Comments
 (0)