-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgenerate_schedule_from_csv.py
61 lines (46 loc) · 2.29 KB
/
generate_schedule_from_csv.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import pandas as pd
def update_schedule(df):
days = {1: "Monday", 2: "Tuesday", 3: "Wednesday", 4: "Thursday", 5: "Friday"}
abbr = {1: "Mo", 2: "Tue", 3: "Wed", 4: "Thu", 5: "Fri"}
date = {1: "2025-02-10", 2: "2025-02-11", 3: "2025-02-12", 4: "2025-02-13", 5: "2025-02-14"}
with open("_data/program.yml", "w") as file:
file.write("days:\n")
previous_day = 0
for i, row in df.iterrows():
if previous_day != int(row["Day"]):
day = previous_day + 1
header = f"- name: {days[day]}\n" \
f" abbr: {abbr[day]}\n" \
f" date: {date[day]}\n" \
f" rooms:\n" \
f" - name: LEE E 101\n" \
f" talks:\n"
file.write(header)
previous_day = day
talk_title = str(row["Tentative Title"])
if talk_title != "nan" and talk_title != "" and talk_title != " " and talk_title != "none": # check if not NaN
start_time = row["Time"].split("-")[0]
end_time = row["Time"].split("-")[-1]
speaker = f"{row['First Name']} {row['Last Name']}"
if len(start_time.split(":")[0]) == 1:
start_time = f"0{start_time}"
if len(end_time.split(":")[0]) == 1:
end_time = f"0{end_time}"
print(end_time)
virtual_tag = ""
if str(row['virtual']) == "Virtual":
virtual_tag = " (v)"
talk_title = talk_title.replace(":", " -")
if talk_title == "tbd":
talk_title = f"tbd - {row['First Name']} {row['Last Name']}"
talk_title = talk_title + virtual_tag
print(talk_title)
print(speaker)
talk_body = f" - name: {talk_title}\n" \
f" time_start: '{start_time}'\n" \
f" time_end: '{end_time}'\n" \
f" speaker: '{speaker}'\n"
file.write(talk_body)
if __name__ == "__main__":
df = pd.read_csv("/Users/ccarissimo/ethz-coss.github.io/February 2025 Participants - schedule_060225.csv")
update_schedule(df)