Overview
Updates! See below... Now scheduler has much better error reporting, reader.py will show you the line and column number of any errors in the input files.
More Updates! Scheduler has been updated so that "Consultation" sections are allowed in the config files.
Scheduler is a python script that creates Instructional Lab Schedules from a set of text files. By default, the program creates a summary page that has a 12-up view of all the schedules, and detail pages (8.5" x 5") for each of the individual schedules that are suitable for labeling the lab rooms (please print these on green cardstock).
Configuration
This is an example of the layout of an input file (called '103_4320.txt'):
M,12:05 301 Ojalvo 14:00 M,14:25 302 Carmody 16:20 M,16:35 303 Ojalvo 18:30 M,19:05 304 N/A 21:00 T,7:45 305 Carmody 9:40 T,9:55 306 Zeng 11:50 T,12:05 307 Zeng 14:00 ...
and so on...
Input files must be named in the form <lab num>_<room num>.txt. The first column has a comma (',') with no space on either side separating the day of the week and the start time. Times are in 24-hour format. Columns are separated by any amount of tabs or spaces but cannot span lines. Lines that begin with a pound-sign ('#') will be ignored. Blank lines are also allowed, so please include them between days for readability.
As of 2010-9-16, the config file is actually parsed and not just sliced-and-diced with string subscripting as it was before. Errors are found out much more effectively this way. Another addition is that the parser allows for section numbers to be prefixed with parenthetical course numbers. An example:
T,14:25 (321)301 Dhorkah 17:25 T,19:00 (321)302 Dhorkah 22:00 W,14:25 (623)301 McDermott 17:25 W,19:00 (623)303 McDermott 22:00
This is handy for rooms that are used for multiple labs.
As of 2011-2-7, the config file has been expanded again. It is now permissiable to put a "C" or a "c" in place of the section number for a lab. This tells scheduler that the timeslot is to be used for "consultation" and not a regularly scheduled lab. Scheduler will format the block differently.
F,8:00 C various 15:00
The above will produce a consultation block on Friday from 8am to 3pm. No TA name is displayed in the output, so you can put any valid name in that space (unfortunately, it is still required by the parser for something to be in that space, this will be fixed in a future update).
Usage
To run the script just execute it from the command line (it takes no arguments). An example of the output:
[cwilson@trogdor]$ ./scheduler.py Generating summary in [summary.ps]...DONE Generating individual in [103_4320.ps]...DONE Generating individual in [104_3328.ps]...DONE Generating individual in [201_4314.ps]...DONE Generating individual in [207_4310.ps]...DONE
Windows:
C:\Documents and Settings\user\Desktop\scheduler> scheduler.py Generating summary in [summary.ps]...DONE Generating individual in [103_4320.ps]...DONE Generating individual in [104_3328.ps]...DONE Generating individual in [201_4314.ps]...DONE Generating individual in [207_4310.ps]...DONE
There is also a mode for making single signs.
[cwilson@trogdor]$ ./scheduler.py 103_4320.txt 103_4320.ps (there's no output)
I've also added a makefile to make all PS files do:
[cwilson@trogdor]$ make
to also make PNG images, do:
[cwilson@trogdor]$ make img
(you'll need ImageMagic, GhostScript, GNU Make, and bash).
Download
zip scheduler.zip
sha1sum
c14aa17bd0862e8f9b27db4ec83e5f1a052f1dc4 scheduler.zip
Bugs/Questions/Comments
Please contact cwilson@physics.wisc.edu