No description
Find a file
2024-11-10 06:21:58 +01:00
eprcheck_2019.py Writing the deduction automatically in the grading tables 2024-10-07 12:27:35 +02:00
eprgrader.py fix for ignoring submittet py venv 2024-11-10 06:21:58 +01:00
LICENSE-eprgrader Create LICENSE-eprgrader 2024-10-16 10:16:20 +02:00
README.md Update README.md 2024-10-16 10:24:37 +02:00
violation_checker.py Bugfix with folders without python file and lower deduction for module and class docstrings 2024-11-02 15:04:22 +01:00

eprgrader

Ein Tool, um die Bewertung von EPR-Abgaben (und auch GPR-Abgaben) zu beschleunigen.

Installation

  1. Legt eprgrader.py (das eigentliche Programm), eprcheck_2019.py (das pylint-Plugin für die Author-Variable) und violation_checker.py (Klasse um die Stylefehler zusammenzuzählen) im selben Verzeichnis ab.
  2. Wenn ihr den automatischen Style-Check benutzen wollt, installiert folgendes via pip: pip install pylint==2.15.0 pycodestyle==2.8.0 astroid==2.13.5 openpyxl pandas

Zu Beginn

Ladet die ZIP-Datei(en) mit den Abgaben für eure Gruppe(n), die Gesamtbewertung (.csv Datei) für eure Gruppe(n) sowie die Bewertungstabelle herunter. Legt ein Verzeichnis für das Übungsblatt an, und dann einen Unterordner für jedes eurer Tutorien. Legt die Abgaben-Zips und die Gesamtbewertungen in die jeweiligen Ordner. Das ganze sollte jetzt in etwa so aussehen:

blatt0
|-- Bewertungstabelle_EPR_0.xlsx
|-- EPR01
|   `-- EPR-2021-Abgabe zu EPR_00-EPR 01 - H 7 - Adrian-88422.zip
|   `-- Bewertungen-EPR 2021-Abgabe zu EPR_00-EPR 01 - H 7 - Adrian-88422.csv
`-- EPR02
    `-- EPR-2021-Abgabe zu EPR_00-EPR 02 - H 6 - Adrian-88422.zip
    `-- Bewertungen-EPR 2021-Abgabe zu EPR_00-EPR 02 - H 6 - Adrian-88422.csv

Führt jetzt den Startbefehl aus:

cd ...\Tutorium\blatt0
python eprgrader.py begin --table Bewertungstabelle_EPR_0.xlsx

Zusätzliche Optionen:

  • --no-stylecheck: Überspringt die PEP8-Prüfung und verhindert das Anlegen der stylecheck.txt-Dateien für jede Abgabe.
  • --pairs: Überprüft die __author__-Variable nach dem Format für Paaraufgaben.
  • --no-deduction: Wenn es noch keinen Abzug für Stylefehler gibt.

Hierdurch werden alle zip-Archive entpackt, die Bewertungstabellen kopiert und für jeden Teilnehmer entsprechend umbenannt, und ggf. der Stylechecker ausgeführt.

Wenn der Stylechecker ausgeführt, wird außerdem direkt der Abzug berechnet und in die Bewertungstabelle eingetragen. Die überprüften Stylefehler werden dabei in Gruppen eingeteilt und dann innerhalb dieser Gruppen zusammengezählt. Wie die Fehlergruppen eingeteilt sind und wie viel Abzug es gibt, kann man in der violation_checker.py Datei anpassen.

Damit der Abzug automatisch eingetragen werden kann, muss es folgende Zellen geben:

  • __author__ falsch (Abzug für Fehler bei der author Variable)
  • ...alle o.g. Fehler sind gleichbedeutend... (Abzug für Stylefehler)
  • Abzug bei mangelnden Kommentaren... (Abzug für Docstrings)

Markiert sind dabei die Stellen, nach welchen explizit gesucht wird.

Style-Prüfung erneut ausführen

Bei Bedarf kann die Style-Prüfung erneut ausgeführt werden. Dabei werden alle bestehenden stylecheck.txt-Dateien überschrieben. Die Punkte werden aber nicht mehr in die Bewertungstabellen eingetragen

cd ...\Tutorium\blatt0
python eprgrader.py relint

Zusätzliche Optionen:

  • --pairs: Überprüft die __author__-Variable nach dem Format für Paaraufgaben.
  • --no-deduction: Wenn es noch keinen Abzug für Stylefehler gibt.

Abschluss

Am Ende können die Bewertungsdateien (Glob-Pattern Bewertung *) sowie die stylecheck.txt für jeden Teilnehmer zusammengesammelt und für den Upload als Feedback-Datei wieder zusammengepackt werden.

Wenn die Gesamtbewertungstabellen in den Ordnern sind, wird die Gesamtpunktzahl von allen Einzelbewertungen ausgelesen und in die csv Datei eingefügt. Dafür muss es die Zelle Summe geben.

Achtung: das funktioniert nur für die Einzelabgaben sinnvoll!

cd ...\Tutorium\blatt0
python eprgrader.py finalise

Nun sollte sich in jedem Tutoriums-Unterordner eine neue Zip-Datei finden, die den Namen des Tutoriums trägt (z. B. EPR02.zip). Diese kann über die Moodle-Option "Mehrere Feedbackdateien in einer Zip-Datei hochladen" hochgeladen werden. Die Gesamtbewertungstabelle kann unter "Bewertungstabelle hochladen" hochgeladen werden. Dabei muss der Haken bei "Update von Datensätzen zulassen, ..." gesetzt werden.

Änderung der Style-Einstellungen

Die Style-Einstellungen (welche Checks aktiviert bzw. deaktiviert sind) habe ich letztes Jahr mal nach eigenem Empfinden zusammengestellt. (Es wird deutlich mehr überprüft, als laut unseren Richtlinien zu Punktabzug führt.) Die aktivierten Checker sind relativ weit oben in eprgrader.py konfiguriert, in den Listen PYLINT_OPTIONS und PYCODESTYLE_SELECT.

Bei Problemen

eprgrader.py gibt sich Mühe, auch zip-Dateien mit vergurksten Dateinamen zu entpacken (passiert meistens, wenn Mac- oder Linux-Nutzer Umlaute in ihren Dateinamen haben), und die Dateinamen dabei zu reparieren. Manche sind aber so kaputt, dass das Tool einfach abstürzt. In dem Fall hilft nur, die betroffene Datei aus dem heruntergeladenen Zip zu entfernen und nochmal von vorne anzufangen. Danach kann man die kaputte Datei von Hand ergänzen und ggf. den relint-Befehl nutzen.

Bei anderen Problemen, merkt es unter Issues in dem Repo an.