From 54978eb6b515afd1da68642de07e482b09acf9f3 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Sun, 14 Feb 2021 17:01:19 +0200 Subject: Update last done in Sheets --- hommaexceli_py/parser.py | 52 ------------------------------------------------ 1 file changed, 52 deletions(-) delete mode 100644 hommaexceli_py/parser.py (limited to 'hommaexceli_py/parser.py') diff --git a/hommaexceli_py/parser.py b/hommaexceli_py/parser.py deleted file mode 100644 index 1b779a6..0000000 --- a/hommaexceli_py/parser.py +++ /dev/null @@ -1,52 +0,0 @@ -import datetime -import logging -import re -from sheets_client import SheetsRow - -INTERVAL_ABBREVS = { - "pv": datetime.timedelta(days=1), - "vk": datetime.timedelta(days=7), - "kk": datetime.timedelta(days=30), - "v": datetime.timedelta(days=365), -} - - -def _calculate_interval(interval_str: str): - match = re.search(r"(\d+)(\w+)", interval_str) - number = int(match[1]) - abbrev = match[2] - - try: - interval = INTERVAL_ABBREVS[abbrev] - except KeyError: - raise Exception(f'"{interval_str}" is an invalid interval string!') - - total_interval = datetime.timedelta(seconds=interval.total_seconds() * number) - return total_interval - - -def _timestamp_to_date(timestamp: str): - return datetime.datetime.strptime(timestamp, "%Y-%m-%d") - - -def _date_to_timestamp(date): - return datetime.datetime.strftime(date, "%Y-%m-%d") - - -def _process_row(row: SheetsRow): - interval = _calculate_interval(row.interval) - last_done_date = _timestamp_to_date(row.last_done) - next_date = last_done_date + interval - next_date_str = _date_to_timestamp(next_date) - return (next_date, row.name, row.interval) - - -def _is_this_week(processed_row): - next_date = processed_row[0] - now = datetime.datetime.now() - return (next_date - now) < datetime.timedelta(weeks=1) - - -def filter_only_this_weeks_rows(rows: list[SheetsRow]): - processed_rows = map(_process_row, rows) - return filter(_is_this_week, processed_rows) -- cgit v1.3