Read birthdays from YAML

Closes: #22
This commit is contained in:
Edward Betts 2023-10-21 09:28:58 +01:00
parent 155181be18
commit aafd37ab5a

View file

@ -305,16 +305,20 @@ def next_birthday(from_date: date, birth_date: date) -> tuple[date, int]:
def get_birthdays(from_date: date, config: configparser.ConfigParser) -> list[Event]:
"""Get birthdays from config."""
if "birthdays" not in config:
return []
filename = config["data"]["entities"]
events = []
for name, date_str in config["birthdays"].items():
bday = next_birthday(from_date, datetime.strptime(date_str, "%Y-%m-%d").date())
with open(filename) as f:
entities = yaml.safe_load(f)
for entity in entities:
birthday = date(**entity["birthday"])
bday, age = next_birthday(from_date, birthday)
events.append(
Event(
date=bday[0],
date=bday,
name="birthday",
title=f"{name.title()} (aged {bday[1]})",
title=f'{entity["label"]} (aged {age})',
)
)