How it Works: a Brief Overview - memorial-ece/CI_ReportGen GitHub Wiki
File Setup
The program works based off of the following directory setup:
(Main folder, name it whatever you like)
CI_ReportGen
...
Grades
Core
...
Co-op
...
ECE
...
ENCM
...
ENCV
...
ENEL
...
ENMC
...
ENPR
...
ONAE
...
Indicators
ENCV Indicators.xlsx
ENCM Indicators.xlsx
ENEL Indicators.xlsx
ENMC Indicators.xlsx
ENPR Indicators.xlsx
ONAE Indicators.xlsx
Histograms
ENCM
ENCV
ENEL
ENMC
ENPR
ONAE
Missing Data
ENCM Missing Data.txt
ENCV Missing Data.txt
ENEL Missing Data.txt
ENMC Missing Data.txt
ENPR Missing Data.txt
ONAE Missing Data.txt
- The
CI_ReportGen
folder is the actual project located here on GitHub - The
Grades
folder contains sub-directories by discipline that the program searches when finding grades to plot on a histogram (save for theCore
,Co-op
andECE
directories, which behave as backup search directories if the program does not find the required grades in the respective discipline directory) - The
Indicators
folder contains all of the indicators information that the program needs to auto-generate a histogram. The indicator spreadsheets inside must be kept up to date for accurate generation. They have the following column names, along with a few others:- Graduate Attribute
- Indicator #
- Indicator Description
- Course #
- Course Title
- Method of Assessment
- Level
- Bins
- Notes
- The program will save histograms to the
Histograms
folder by the discipline it was parsing at the time - The program will auto-detect any missing data, including missing grades or missing bin ranges, and output what it is missing to the files in the 'Missing Data' directory
- Addition of more columns to the indicator spreadsheets is allowed. The program will only use the ones that it requires
Running the auto-generator
As of the writing of this wiki page, the program has a function in procedures.py
that handles generating histograms by cohort, called histogram_by_cohort()
. To gain access to it:
- Open a terminal in the CI_ReportGen directory
- Open a Python 3 shell
- Import the procedures file using
import procedures
, or import just the function by usingfrom procedures import histogram_by_cohort
You can then call it using eitherprocedures.histogram_by_cohort()
orhistogram_by_cohort()
, depending on how you imported it.
histogram_by_cohort() parameters
The histogram_by_cohort() function has the following parameters:
programs
: A list of programs to process. Defaults to using all programs.whitelist
: A dictionary including lists of the only things that should be processed. Options can include, but are not limited to, lists of:- courses
- indicators
- assessments As long as the whitelist key matches closely to the column name in the indicator table, it should pick it up. For example, if you added a "Term Offered" column, you could use the whitelisting feature to generate a query from it. Additionally, if you are only passing one parameter to query, you do not have to put it in a list; the program will do that for you.
histogram_by_cohort() examples
Run the histogram generator across all programs:
>> import procedures
>> procedures.histogram_by_cohort()
OR
>> from procedures import histogram_by_cohort()
>> histogram_by_cohort
Run the histogram generator across one program:
>> import procedures
>> procedures.histogram_by_cohort(programs=['ENCM'])
OR
>> import procedures
>> procedures.histogram_by_cohort(programs='ENCM')
Run the histogram generator across multiple programs:
>> import procedures
>> procedures.histogram_by_cohort(programs=['ENCM', 'ENEL'])
Run the histogram generator using an indicator whitelist:
>> import procedures
>> procedures.histogram_by_cohort(whitelist={'Indicator': ['KB', 'PA']})
OR
>> import procedures
>> procedures.histogram_by_cohort(whitelist={'Graduate Attribute': ['A Knowledge Base for Engineering', 'Problem Analysis']})
Run the histogram generator using a course filter
>> import procedures
>> procedures.histogram_by_cohort(whitelist={'course': ['ENGI 1030', 'ENGI 1040']})