After an overhaul of usageplot.py, I'm finally happy with the code. In setting up the code, I've made the following assumptions: when naming your slurm jobs, I've assumed that the job names have been assigned in the following way:
||starting two letters of SLURM JobName
||"Co" or "Wi"
If the JobName is something else (or if the job experienced the NODE_FAIL/COMPLETED error fixed in
DM-13619), the job will be marked as "unknown" on the plot.
I've also added hatching to the color fill so that it would be clear what codes were running concurrently (and thus would have their color fill in the same location).
Additionally, I noticed that while most of the reprocessing jobs had all of the same codes running at the same time, (thus, no singleFrameDriver jobs were started after coadd driver started to run, etc.), some of the reprocessing runs did (usually due to errors resulting in having to rerun a code). Due to how the first draft of my code was structured, this caused improper color-filling in the plots (I only looked for one start and stop index for each code). I've since fixed the bug, thus allowing usageplot.py to account for many start and stop indices for a given code which results in accurate color-filling.
I'll be adding the new color-fill plots to confluence tonight and will be cleaning up the code further before I have it reviewed.