6565
6666Room: {room}
6767
68- Chair: TBA
68+ Chair: {chair}
6969
7070{table}
7171"""
7575class TimeSlot (NamedTuple ):
7676 """
7777 Rooms: MIT, APACHE, GNU, BSD
78+ types : plenary, oral, poster, opening, closing, panel
7879 """
7980
8081 start : datetime .datetime
8182 end : datetime .datetime
8283 room : str
83- type : ["plenary" , "oral" , "poster" , "opening" , "closing" , "panel" ]
84+ type : str
85+ chair : str
8486
8587 def num_presentations (self ):
8688 if type_to_duration [self .type ] is None :
@@ -102,90 +104,103 @@ def session_to_time(session_id: str):
102104 end = datetime .datetime (2025 , 3 , 18 , 7 , 10 ),
103105 room = "MIT" ,
104106 type = "opening" ,
107+ chair = "TBC" ,
105108 )
106109 elif session_id == "S_Closing" :
107110 return TimeSlot (
108111 start = datetime .datetime (2025 , 3 , 18 , 15 , 10 ),
109112 end = datetime .datetime (2025 , 3 , 18 , 15 , 20 ),
110113 room = "MIT" ,
111114 type = "closing" ,
115+ chair = "TBC" ,
112116 )
113117 elif session_id == "S_P1" :
114118 return TimeSlot (
115119 start = datetime .datetime (2025 , 3 , 18 , 7 , 10 ),
116120 end = datetime .datetime (2025 , 3 , 18 , 8 , 10 ),
117121 room = "MIT" ,
118122 type = "plenary" ,
123+ chair = "TBC" ,
119124 )
120125 elif session_id == "S_A" :
121126 return TimeSlot (
122127 start = datetime .datetime (2025 , 3 , 18 , 8 , 30 ),
123128 end = datetime .datetime (2025 , 3 , 18 , 9 , 30 ),
124129 room = "MIT" ,
125130 type = "oral" ,
131+ chair = "TBC" ,
126132 )
127133 elif session_id == "S_B" :
128134 return TimeSlot (
129135 start = datetime .datetime (2025 , 3 , 18 , 8 , 30 ),
130136 end = datetime .datetime (2025 , 3 , 18 , 9 , 30 ),
131137 room = "Apache" ,
132138 type = "oral" ,
139+ chair = "TBC" ,
133140 )
134141 elif session_id == "S_poster" :
135142 return TimeSlot (
136143 start = datetime .datetime (2025 , 3 , 18 , 9 , 30 ),
137144 end = datetime .datetime (2025 , 3 , 18 , 10 , 40 ),
138145 room = "GNU" ,
139146 type = "poster" ,
147+ chair = "TBC" ,
140148 )
141149 elif session_id == "S_demos" :
142150 return TimeSlot (
143151 start = datetime .datetime (2025 , 3 , 18 , 9 , 30 ),
144152 end = datetime .datetime (2025 , 3 , 18 , 10 , 40 ),
145153 room = "GNU" ,
146154 type = "poster" ,
155+ chair = "TBC" ,
147156 )
148157 elif session_id == "S_Panel" :
149158 return TimeSlot (
150159 start = datetime .datetime (2025 , 3 , 18 , 10 , 40 ),
151160 end = datetime .datetime (2025 , 3 , 18 , 11 , 20 ),
152161 room = "MIT" ,
153162 type = "panel" ,
163+ chair = "TBC" ,
154164 )
155165 elif session_id == "S_P2" :
156166 return TimeSlot (
157167 start = datetime .datetime (2025 , 3 , 18 , 11 , 20 ),
158168 end = datetime .datetime (2025 , 3 , 18 , 11 , 50 ),
159169 room = "MIT" ,
160170 type = "plenary" ,
171+ chair = "TBC" ,
161172 )
162173 elif session_id == "S_C" :
163174 return TimeSlot (
164175 start = datetime .datetime (2025 , 3 , 18 , 12 , 50 ),
165176 end = datetime .datetime (2025 , 3 , 18 , 13 , 50 ),
166177 room = "MIT" ,
167178 type = "oral" ,
179+ chair = "TBC" ,
168180 )
169181 elif session_id == "S_D" :
170182 return TimeSlot (
171183 start = datetime .datetime (2025 , 3 , 18 , 12 , 50 ),
172184 end = datetime .datetime (2025 , 3 , 18 , 13 , 50 ),
173185 room = "Apache" ,
174186 type = "oral" ,
187+ chair = "TBC" ,
175188 )
176189 elif session_id == "S_E" :
177190 return TimeSlot (
178191 start = datetime .datetime (2025 , 3 , 18 , 14 , 10 ),
179192 end = datetime .datetime (2025 , 3 , 18 , 15 , 10 ),
180193 room = "MIT" ,
181194 type = "oral" ,
195+ chair = "TBC" ,
182196 )
183197 elif session_id == "S_F" :
184198 return TimeSlot (
185199 start = datetime .datetime (2025 , 3 , 18 , 14 , 10 ),
186200 end = datetime .datetime (2025 , 3 , 18 , 15 , 10 ),
187201 room = "Apache" ,
188202 type = "oral" ,
203+ chair = "TBC" ,
189204 )
190205
191206 raise ValueError (f"Unknown session { session_id } " )
@@ -263,8 +278,6 @@ def main():
263278 # sort by time
264279 grouped = sorted (grouped , key = lambda x : session_to_time (x [0 ]).start )
265280
266- grouped_dict = {session_id : group for session_id , group in grouped }
267-
268281 # Create a table for each group
269282 tables = []
270283 for session , group in grouped :
@@ -300,6 +313,7 @@ def main():
300313 session_id = session .replace ("S_" , "" ),
301314 time_slot = time_slot ,
302315 room = time_slot .room ,
316+ chair = time_slot .chair ,
303317 table = table ,
304318 )
305319 )
0 commit comments