- @classmethod
- def by_date(cls, db_conn: DatabaseConnection,
- date: str, create: bool = False) -> Day:
- """Retrieve Day by date if in DB (prefer cache), else return None."""
- if date in db_conn.cached_days.keys():
- day = db_conn.cached_days[date]
- assert isinstance(day, Day)
- return day
- for row in db_conn.exec('SELECT * FROM days WHERE date = ?', (date,)):
- day = cls.from_table_row(db_conn, row)
- assert isinstance(day, Day)
- return day
- if not create:
- raise NotFoundException(f'Day not found for date: {date}')
- day = cls(date)
- db_conn.cached_days[date] = day
- assert isinstance(day, Day)
- return day
-