parent
4ddd65357f
commit
cd575afe68
|
@ -65,7 +65,7 @@ def us_holidays(start_date: date, end_date: date) -> list[Holiday]:
|
||||||
for year in range(start_date.year, end_date.year + 1):
|
for year in range(start_date.year, end_date.year + 1):
|
||||||
hols = holidays.country_holidays("US", years=year, language="en")
|
hols = holidays.country_holidays("US", years=year, language="en")
|
||||||
found += [
|
found += [
|
||||||
Holiday(date=hol_date, name=title.replace("'", "’"), country="us")
|
Holiday(date=hol_date, name=title, country="us")
|
||||||
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
|
||||||
]
|
]
|
||||||
|
@ -82,6 +82,31 @@ def us_holidays(start_date: date, end_date: date) -> list[Holiday]:
|
||||||
return found + extra
|
return found + extra
|
||||||
|
|
||||||
|
|
||||||
|
def get_nyse_holidays(
|
||||||
|
start_date: date, end_date: date, us_hols: list[Holiday]
|
||||||
|
) -> list[Event]:
|
||||||
|
"""NYSE holidays."""
|
||||||
|
known_us_hols = {(h.date, h.name) for h in us_hols}
|
||||||
|
found: list[Event] = []
|
||||||
|
rename = {"Thanksgiving Day": "Thanksgiving"}
|
||||||
|
for year in range(start_date.year, end_date.year + 1):
|
||||||
|
hols = holidays.financial_holidays("NYSE", years=year)
|
||||||
|
found += [
|
||||||
|
Event(
|
||||||
|
name="holiday",
|
||||||
|
date=hol_date,
|
||||||
|
title=rename.get(title, title),
|
||||||
|
)
|
||||||
|
for hol_date, title in hols.items()
|
||||||
|
if start_date < hol_date < end_date
|
||||||
|
]
|
||||||
|
found = [hol for hol in found if (hol.date, hol.title) not in known_us_hols]
|
||||||
|
for hol in found:
|
||||||
|
assert hol.title
|
||||||
|
hol.title += " (NYSE)"
|
||||||
|
return found
|
||||||
|
|
||||||
|
|
||||||
def get_holidays(country: str, start_date: date, end_date: date) -> list[Holiday]:
|
def get_holidays(country: str, start_date: date, end_date: date) -> list[Holiday]:
|
||||||
"""Get holidays."""
|
"""Get holidays."""
|
||||||
found: list[Holiday] = []
|
found: list[Holiday] = []
|
||||||
|
@ -296,7 +321,9 @@ async def get_data(
|
||||||
if gwr_advance_tickets:
|
if gwr_advance_tickets:
|
||||||
events.append(Event(name="gwr_advance_tickets", date=gwr_advance_tickets))
|
events.append(Event(name="gwr_advance_tickets", date=gwr_advance_tickets))
|
||||||
|
|
||||||
holidays: list[Holiday] = bank_holiday + us_holidays(last_year, next_year)
|
us_hols = us_holidays(last_year, next_year)
|
||||||
|
|
||||||
|
holidays: list[Holiday] = bank_holiday + us_hols
|
||||||
for country in (
|
for country in (
|
||||||
"at",
|
"at",
|
||||||
"be",
|
"be",
|
||||||
|
@ -315,6 +342,8 @@ async def get_data(
|
||||||
):
|
):
|
||||||
holidays += get_holidays(country, last_year, next_year)
|
holidays += get_holidays(country, last_year, next_year)
|
||||||
|
|
||||||
|
events += get_nyse_holidays(last_year, next_year, us_hols)
|
||||||
|
|
||||||
accommodation_events = accommodation.get_events(
|
accommodation_events = accommodation.get_events(
|
||||||
os.path.join(my_data, "accommodation.yaml")
|
os.path.join(my_data, "accommodation.yaml")
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue