From 8ec291f93d5949dc00e1393b2c4a1eb4b5bd81bc Mon Sep 17 00:00:00 2001 From: zevav Date: Thu, 5 Sep 2019 09:52:14 +0200 Subject: [PATCH] further splitting out of logic, fixed regression --- Pipfile | 1 + app/add.py | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Pipfile b/Pipfile index 9a503ba..79f055b 100644 --- a/Pipfile +++ b/Pipfile @@ -10,6 +10,7 @@ twine = "*" pytest = "*" python-dateutil = "*" click = "*" +markdown-timesheet = {editable = true,path = "."} [requires] python_version = "3.7" diff --git a/app/add.py b/app/add.py index 1e9cf92..9d0bfff 100644 --- a/app/add.py +++ b/app/add.py @@ -19,20 +19,26 @@ def add_up_timesheet(timesheet_string: str) -> Minutes: total_minutes = 0 for line in timesheet_string.split("\n"): - total_minutes += get_minutes(line) + total_minutes += get_minutes_from_line(line) return total_minutes -def get_minutes(time_sheet_string_line): +def get_minutes_from_line(time_sheet_string_line): time_range_strings = find_time_ranges(time_sheet_string_line) if not time_range_strings: return 0 - for time_range_string in time_range_strings: - start_string, end_string = split_time_range_string(time_range_string) - start, end = map(parse_time, [start_string, end_string]) - return subtract_times(start, end) + return sum( + get_minutes_from_time_range_string(time_range_string) + for time_range_string in time_range_strings + ) + + +def get_minutes_from_time_range_string(time_range_string): + start_string, end_string = split_time_range_string(time_range_string) + start, end = map(parse_time, [start_string, end_string]) + return subtract_times(start, end) def find_time_ranges(timesheet_line: str) -> Union[list, List[str]]: