From 6f1699e4464d7177ae932b55ca7dc07e8029aa54 Mon Sep 17 00:00:00 2001 From: zevav Date: Thu, 5 Sep 2019 09:47:32 +0200 Subject: [PATCH] split out the logic a little more --- app/add.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/add.py b/app/add.py index 44fec93..1e9cf92 100644 --- a/app/add.py +++ b/app/add.py @@ -19,15 +19,22 @@ def add_up_timesheet(timesheet_string: str) -> Minutes: total_minutes = 0 for line in timesheet_string.split("\n"): - time_range_strings = find_time_ranges(line) - if time_range_strings: - 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]) - total_minutes += subtract_times(start, end) + total_minutes += get_minutes(line) return total_minutes +def get_minutes(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) + + def find_time_ranges(timesheet_line: str) -> Union[list, List[str]]: remove_hashes_and_leading_trailing_spaces = timesheet_line.replace("#", "").strip() try: