#!./env/bin/python import yaml, textwrap from prettytable import PrettyTable from datetime import datetime, timedelta with open("infos2.yaml", "r") as f: _i=yaml.safe_load(f) #### Parsing def parse_date(s): return datetime.strptime(s, "%d/%m/%Y") def parse_time(s): return datetime.strptime(s, "%H:%M") #### Dates def getmonday(d): return d - timedelta(days=d.weekday()) def getnextmonday(d): return getmonday(d)+timedelta(days=7) def getnextdayn(d,n): return (d+timedelta(days=n)) def getweek(d): return d.isocalendar().week def getdayname(d): return d.strftime("%A").lower() #### Formatting def gettime(d): return d.strftime("%H:%M") def matchrepeat(d,e): _r=events[e]["repeat"] if _r["every"] <= 0: return False delta=timedelta(days=_r["every"]) current=events[e]["date"] while current.date() <= sem["end"].date(): if _r["until"] is not None and _r["until"].date()