|
@@ -112,9 +112,9 @@ def get_timedelta(time: Optional[str] = None) -> Optional[datetime.timedelta]: |
|
|
try: |
|
|
try: |
|
|
t = parser.parse(time) |
|
|
t = parser.parse(time) |
|
|
except ParserError as e: |
|
|
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) |
|
|
return parse_timedelta(time) |
|
|
|
|
|
raise e |
|
|
return datetime.timedelta( |
|
|
return datetime.timedelta( |
|
|
hours=t.hour, minutes=t.minute, seconds=t.second, microseconds=t.microsecond |
|
|
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 |
|
|
# last day of this month |
|
|
return add_to_date(date, days=-1) |
|
|
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 import parser |
|
|
|
|
|
from dateutil.parser import ParserError |
|
|
|
|
|
|
|
|
if isinstance(time_str, datetime.datetime): |
|
|
if isinstance(time_str, datetime.datetime): |
|
|
return time_str.time() |
|
|
return time_str.time() |
|
|
elif isinstance(time_str, datetime.time): |
|
|
elif isinstance(time_str, datetime.time): |
|
|
return time_str |
|
|
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() |
|
|
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): |
|
|
def get_datetime_str(datetime_obj): |
|
|
if isinstance(datetime_obj, str): |
|
|
if isinstance(datetime_obj, str): |
|
|