fix: Return correct types for time utils
This commit is contained in:
parent
2b4cb2e1c7
commit
ad1fedf4a8
1 changed files with 13 additions and 6 deletions
|
|
@ -112,9 +112,9 @@ def get_timedelta(time: Optional[str] = None) -> Optional[datetime.timedelta]:
|
|||
try:
|
||||
t = parser.parse(time)
|
||||
except ParserError as e:
|
||||
if "day" in e.args[1]:
|
||||
from frappe.utils import parse_timedelta
|
||||
if "day" in e.args[1] or "hour must be in" in e.args[0]:
|
||||
return parse_timedelta(time)
|
||||
raise e
|
||||
return datetime.timedelta(
|
||||
hours=t.hour, minutes=t.minute, seconds=t.second, microseconds=t.microsecond
|
||||
)
|
||||
|
|
@ -329,17 +329,24 @@ def get_year_ending(date):
|
|||
# last day of this month
|
||||
return add_to_date(date, days=-1)
|
||||
|
||||
def get_time(time_str):
|
||||
def get_time(time_str: str) -> datetime.time:
|
||||
from dateutil import parser
|
||||
from dateutil.parser import ParserError
|
||||
|
||||
if isinstance(time_str, datetime.datetime):
|
||||
return time_str.time()
|
||||
elif isinstance(time_str, datetime.time):
|
||||
return time_str
|
||||
else:
|
||||
if isinstance(time_str, datetime.timedelta):
|
||||
return format_timedelta(time_str)
|
||||
elif isinstance(time_str, datetime.timedelta):
|
||||
return (datetime.datetime.min + time_str).time()
|
||||
try:
|
||||
return parser.parse(time_str).time()
|
||||
except ParserError as e:
|
||||
if "day" in e.args[1] or "hour must be in" in e.args[0]:
|
||||
return (
|
||||
datetime.datetime.min + parse_timedelta(time_str)
|
||||
).time()
|
||||
raise e
|
||||
|
||||
def get_datetime_str(datetime_obj):
|
||||
if isinstance(datetime_obj, str):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue