Prerequisites
courseflow is written in Python, and was developed using
Python 3.11.9. Earlier versions may be supported, but are not
guaranteed.
courseflow requires the following Python prerequisites at a
baseline:
canvasapifor accessing the Canvas LMS APIgspreadfor accessing the Google Sheets APIPyGithubfor accessing the GitHub APIPyYAMLto parse YAML configuration filespathos(Optional) to run flows across multiple processes in a flow manager. If not present, flows will be run serially
Additional prerequisites may be considered to access different APIs. In general, Python wrappers around APIs are preferred over direct HTTP requests, as bearer tokens would need to be managed/wrapped anyway.
In addition to the above, courseflow uses the following packages
for static linting:
blackfor formattingflake8for style checking, including the following plugins:mypyfor static type checkingThis also requires
types-PyYAMLforPyYAML’s type annotations
Future improvements will migrate formatting/style checking to Ruff
Installing with PIP
To install these prerequisites, users can use the provided
requirements.txt file:
git clone git@github.com:Aidan-McNay/courseflow.git
cd courseflow
pip install -r requirements.txt