From 938d8a5afeee2b3294b2009c90df2a224bb37bdf Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Sun, 9 Feb 2025 14:47:30 +0100 Subject: [PATCH] Reduce function complexity of in types.py --- agenda/types.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/agenda/types.py b/agenda/types.py index 0bfef4d..0b383b1 100644 --- a/agenda/types.py +++ b/agenda/types.py @@ -73,20 +73,21 @@ class Trip: return self.name titles: list[str] = [conf["name"] for conf in self.conferences] + [ event["title"] for event in self.events - ] - if not titles: - for travel in self.travel: - if travel["depart"] and utils.as_date(travel["depart"]) != self.start: - place = travel["from"] - if place not in titles: - titles.append(place) - if travel["depart"] and utils.as_date(travel["depart"]) != self.end: - place = travel["to"] - if place not in titles: - titles.append(place) + ] or self.titles_from_travel() return format_list_with_ampersand(titles) or "[unnamed trip]" + def titles_from_travel(self) -> list[str]: + """Titles from travel.""" + titles = [] + for travel in self.travel: + if not (depart := (travel["depart"] and utils.as_date(travel["depart"]))): + continue + for when, from_or_to in ((self.start, "from"), (self.end, "to")): + if depart != when and travel["from_or_to"] not in titles: + titles.append(travel["from_or_to"]) + return titles + @property def end(self) -> datetime.date | None: """End date for trip."""