Selaa lähdekoodia

fix: Return correct types for time utils

version-14
Gavin D'souza 3 vuotta sitten
vanhempi
commit
ad1fedf4a8
1 muutettua tiedostoa jossa 13 lisäystä ja 6 poistoa
  1. +13
    -6
      frappe/utils/data.py

+ 13
- 6
frappe/utils/data.py Näytä tiedosto

@@ -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):


Ladataan…
Peruuta
Tallenna