From 8492b351bdaa8b4660691d5c38eb3e8e74dca769 Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Wed, 12 Aug 2026 23:11:24 +0200 Subject: fix lints --- fietsboek/summaries.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/fietsboek/summaries.py b/fietsboek/summaries.py index aa8a84c..e3c58e6 100644 --- a/fietsboek/summaries.py +++ b/fietsboek/summaries.py @@ -2,11 +2,10 @@ import datetime from dataclasses import dataclass -from typing import Optional, Iterator +from typing import Iterator, Optional from babel.dates import format_date from pyramid.i18n import Localizer -from pyramid.i18n import TranslationString as _ from . import util from .models.track import TrackWithMetadata @@ -310,23 +309,42 @@ class YearContributions: self.start_date -= datetime.timedelta(days=end_date.weekday()) assert (self.start_date - self.end_date).days <= 53 * 7 - self.tracks = {} + self.tracks: dict[datetime.date, list[TrackWithMetadata]] = {} def add(self, track: TrackWithMetadata): + """Adds a track to this overview. + + :param track: The track to add. + """ + if track.date is None: + return date = track.date.date() - if date >= self.start_date and date <= self.end_date: + if self.start_date <= date <= self.end_date: self.tracks.setdefault(date, []).append(track) def rows(self) -> Iterator[Iterator[DayContributions]]: + """Returns the rows for the overview table. + + Each row is a list of the cells. Seven rows will be returned, one for each weekday. + + :return: An iterator over the rows to render. + """ for weekday in range(7): row = [] day = self.start_date + datetime.timedelta(days=weekday) while day <= self.end_date: row.append(DayContributions(day, self.tracks.get(day, []))) day += ONE_WEEK - yield row + yield iter(row) def header_row(self, localizer: Localizer) -> Iterator[str | None]: + """Returns the header row. + + Each string marks a month name (spanning three columns), and a ``None`` is an empty column. + + :param localizer: The localizer to use. + :return: An iterator over the column headers. + """ locale = localizer.locale_name day = self.start_date while day <= self.end_date: -- cgit v1.2.3