from sqlite3 import connect as sql_connect, Cursor, Row
from typing import Any, Self, TypeVar, Generic
from plomtask.exceptions import HandledException, NotFoundException
-from plomtask.dating import (MIN_RANGE_DATE, MAX_RANGE_DATE, valid_date)
+from plomtask.dating import valid_date
EXPECTED_DB_VERSION = 4
MIGRATIONS_DIR = 'migrations'
@classmethod
def by_date_range_with_limits(cls: type[BaseModelInstance],
db_conn: DatabaseConnection,
- date_range: tuple[str, str] = ('', ''),
+ date_range: tuple[str, str],
date_col: str = 'day'
) -> tuple[list[BaseModelInstance], str,
str]:
"""Return list of Days in database within (open) date_range interval.
- If no range values provided, defaults them to MIN_RANGE_DATE and
- MAX_RANGE_DATE. Also knows to properly interpret 'today' as value.
+ If no range values provided, defaults them to 'yesterday' and
+ 'tomorrow'. Knows to properly interpret these and 'today' as value.
"""
- min_date = MIN_RANGE_DATE
- max_date = MAX_RANGE_DATE
- start_date = valid_date(date_range[0] if date_range[0] else min_date)
- end_date = valid_date(date_range[1] if date_range[1] else max_date)
+ start_str = date_range[0] if date_range[0] else 'yesterday'
+ end_str = date_range[1] if date_range[1] else 'tomorrow'
+ start_date = valid_date(start_str)
+ end_date = valid_date(end_str)
items = []
sql = f'SELECT id FROM {cls.table_name} '
sql += f'WHERE {date_col} >= ? AND {date_col} <= ?'