guv¶
guv is a command-line tool designed to simplify the management of multiple
courses. It helps centralize information related to each course and easily
integrate new data through configuration files. With guv, you can generate
attendance sheets, grade and jury spreadsheets, and much more!
✨ Features¶
Centralized management courses information
Excel grade sheets for courses assessment boards
Easy customization via configuration files
Example Documents:
Attendance Sheet (PDF) - Personalized attendance tracking
Grade Book (Excel) - Detailed grading with questions and subquestions
Jury Grade Book (Excel) - Assessment board spreadsheet with aggregated grades
🚀 Installation¶
Install guv directly via pip:
pip install git+https://codeberg.org/thisirs/guv.git
🏃 Quick Start¶
Follow the steps below to get started with guv:
Create a semester structure with some courses:
guv createsemester Fall2024 --uv CS042 CS314
This creates a semester directory
Fall2024containing two coursesCS314andCS042.Provide a base listing file:
Place a csv/Excel file of student listings (for example here) under some directory, for example
Fall2024/CS042/documents, and declare it inFall2024/CS042/config.pylike this:DOCS = Documents() DOCS.add("documents/base_listing_example.csv")
Now go to
CS042subdirectory and runguvwithout arguments. The result is in a file calledeffectif.xlsxunderFall2024/CS042.Depending on the column names of your listing, you might need to update the column mappings in the
config.pyfile located inFall2024.Use tasks to generate files
If
CS042directory, you can now generate attendance sheets:guv pdf_attendance --title "Exam"
or generate a gradebook (you will be asked for a marking scheme):
guv xls_gradebook_no_group --name Exam1
Aggregate more files to the base listing
If you want to add more information to the base listing:
DOCS = Documents() DOCS.add("documents/base_listing_example.csv") DOCS.aggregate("documents/grades.xlsx", on="Email")
and see the result in
effectif.xlsxunderFall2024/CS042.
See all available tasks and aggregating functions here.