|
|
|
|
@ -138,17 +138,32 @@ def create_wiki_table(events: Iterable[Event]) -> str:
@@ -138,17 +138,32 @@ def create_wiki_table(events: Iterable[Event]) -> str:
|
|
|
|
|
table_meta_data = _get_table_meta_data(events) |
|
|
|
|
headers = {key: f"'''{key.capitalize()}'''" for key in TABLE_COLUMN_ORDER} |
|
|
|
|
lines = [ |
|
|
|
|
_create_table_line(headers, table_meta_data), |
|
|
|
|
_create_table_line(headers, table_meta_data, sep="||", bracket=True), |
|
|
|
|
] |
|
|
|
|
for event in events: |
|
|
|
|
lines.append(_create_table_line(event, table_meta_data)) |
|
|
|
|
lines.extend( |
|
|
|
|
_create_table_body(events, table_meta_data, sep="||", bracket=True) |
|
|
|
|
) |
|
|
|
|
return "\n".join(lines) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_email_table(events: Iterable[Event]) -> str: |
|
|
|
|
table_meta_data = _get_table_meta_data(events) |
|
|
|
|
lines = _create_table_body(events, table_meta_data, sep="|", bracket=False) |
|
|
|
|
return "\n".join(lines) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _create_table_line(event: Event, meta: TableMetaData) -> str: |
|
|
|
|
def _create_table_body( |
|
|
|
|
events: Iterable[Event], meta: TableMetaData, sep: str, *, bracket: bool |
|
|
|
|
) -> list[str]: |
|
|
|
|
return [_create_table_line(event, meta, sep=sep, bracket=bracket) for event in events] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _create_table_line( |
|
|
|
|
event: Event, meta: TableMetaData, sep: str, *, bracket: bool |
|
|
|
|
) -> str: |
|
|
|
|
columns = [event[key].ljust(meta[key]) for key in TABLE_COLUMN_ORDER] |
|
|
|
|
inner = " || ".join(columns) |
|
|
|
|
return f"|| {inner} ||" |
|
|
|
|
inner = f" {sep} ".join(columns) |
|
|
|
|
return f"{sep} {inner} {sep}" if bracket else inner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _get_table_meta_data(events: Iterable[Event]) -> TableMetaData: |
|
|
|
|
@ -159,17 +174,6 @@ def _get_table_meta_data(events: Iterable[Event]) -> TableMetaData:
@@ -159,17 +174,6 @@ def _get_table_meta_data(events: Iterable[Event]) -> TableMetaData:
|
|
|
|
|
return meta |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_email_table(events: Iterable[Event]) -> str: |
|
|
|
|
table_meta_data = _get_table_meta_data(events) |
|
|
|
|
date_key, _, name_key = TABLE_COLUMN_ORDER |
|
|
|
|
pad_date = table_meta_data[date_key] |
|
|
|
|
lines = [ |
|
|
|
|
(event[date_key].ljust(pad_date) + " | " + event[name_key]) |
|
|
|
|
for event in events |
|
|
|
|
] |
|
|
|
|
return "\n".join(lines) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@click.command() |
|
|
|
|
def group_schedule(): |
|
|
|
|
ics_file = get_ics(ICAL_URL) |
|
|
|
|
|