parent
5c51751111
commit
0321d9d283
|
@ -105,7 +105,7 @@ def get_us_holidays(start_date: date, end_date: date) -> list[Event]:
|
||||||
for year in range(start_date.year, end_date.year + 1):
|
for year in range(start_date.year, end_date.year + 1):
|
||||||
hols = holidays.UnitedStates(years=year)
|
hols = holidays.UnitedStates(years=year)
|
||||||
found += [
|
found += [
|
||||||
Event(name="us_holiday", date=hol_date, title=title)
|
Event(name="us_holiday", date=hol_date, title=title.replace("'", "’"))
|
||||||
for hol_date, title in hols.items()
|
for hol_date, title in hols.items()
|
||||||
if start_date < hol_date < end_date
|
if start_date < hol_date < end_date
|
||||||
]
|
]
|
||||||
|
@ -164,6 +164,21 @@ async def bristol_waste_collection_events(
|
||||||
return await waste_schedule.get_bristol_gov_uk(start_date, data_dir, uprn)
|
return await waste_schedule.get_bristol_gov_uk(start_date, data_dir, uprn)
|
||||||
|
|
||||||
|
|
||||||
|
def combine_holidays(events: list[Event]) -> list[Event]:
|
||||||
|
combined: dict[tuple[date, str], Event] = {}
|
||||||
|
|
||||||
|
for e in events:
|
||||||
|
assert isinstance(e.title, str) and isinstance(e.date, date)
|
||||||
|
event_key = (e.date, e.title)
|
||||||
|
combined[event_key] = (
|
||||||
|
Event(name="bank_holiday", date=e.date, title=e.title + " (UK & US)")
|
||||||
|
if event_key in combined
|
||||||
|
else e
|
||||||
|
)
|
||||||
|
|
||||||
|
return list(combined.values())
|
||||||
|
|
||||||
|
|
||||||
async def get_data(now: datetime) -> typing.Mapping[str, str | object]:
|
async def get_data(now: datetime) -> typing.Mapping[str, str | object]:
|
||||||
"""Get data to display on agenda dashboard."""
|
"""Get data to display on agenda dashboard."""
|
||||||
config_filename = os.path.join(os.path.dirname(__file__), "..", "config")
|
config_filename = os.path.join(os.path.dirname(__file__), "..", "config")
|
||||||
|
@ -205,8 +220,6 @@ async def get_data(now: datetime) -> typing.Mapping[str, str | object]:
|
||||||
"now": now,
|
"now": now,
|
||||||
"gbpusd": gbpusd,
|
"gbpusd": gbpusd,
|
||||||
"economist": economist.publication_dates(last_year, next_year),
|
"economist": economist.publication_dates(last_year, next_year),
|
||||||
"bank_holiday": bank_holiday,
|
|
||||||
"us_holiday": get_us_holidays(last_year, next_year),
|
|
||||||
"next_us_presidential_election": next_us_presidential_election,
|
"next_us_presidential_election": next_us_presidential_election,
|
||||||
"stock_markets": stock_market.open_and_close(),
|
"stock_markets": stock_market.open_and_close(),
|
||||||
"uk_clock_change": timezone_transition(
|
"uk_clock_change": timezone_transition(
|
||||||
|
@ -254,6 +267,8 @@ async def get_data(now: datetime) -> typing.Mapping[str, str | object]:
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
events += combine_holidays(bank_holiday + get_us_holidays(last_year, next_year))
|
||||||
|
|
||||||
my_data = config["data"]["personal-data"]
|
my_data = config["data"]["personal-data"]
|
||||||
events += birthday.get_birthdays(last_year, os.path.join(my_data, "entities.yaml"))
|
events += birthday.get_birthdays(last_year, os.path.join(my_data, "entities.yaml"))
|
||||||
events += accommodation.get_events(os.path.join(my_data, "accommodation.yaml"))
|
events += accommodation.get_events(os.path.join(my_data, "accommodation.yaml"))
|
||||||
|
|
Loading…
Reference in a new issue