3.1 KiB
3.1 KiB
Shim Cleanup Tracker
Status: Shims aktiv — Consumer-Imports noch auf alten Pfaden Erstellt: 2026-04-25 Ziel: Shims schrittweise loeschen sobald Consumer auf neue Pfade aktualisiert sind
Was sind Shims?
Beim Restructuring wurden Dateien in Packages verschoben (z.B. cv_layout.py → ocr/layout/layout.py). Am alten Pfad bleibt ein 4-Zeilen Redirect:
# cv_layout.py (shim)
import importlib as _importlib
import sys as _sys
_sys.modules[__name__] = _importlib.import_module("ocr.layout.layout")
Damit brechen keine bestehenden from cv_layout import ... Imports.
Cleanup-Prozess (pro Shim)
grep -rn "from <old_module> import\|import <old_module>" --include="*.py"— finde alle Consumer- Consumer-Imports auf neuen Pfad aktualisieren (z.B.
from ocr.layout.layout import ...) - Shim-Datei loeschen
- Tests ausfuehren
Shim-Inventar
klausur-service/backend/ (171 Shims)
| Gruppe | Anzahl | Alter Pfad | Neuer Pfad |
|---|---|---|---|
| cv_* (OCR Core) | 47 | cv_layout.py etc. |
ocr/layout/layout.py etc. |
| ocr_pipeline_* | 30 | ocr_pipeline_api.py etc. |
ocr/pipeline/api.py etc. |
| ocr_labeling_* | 5 | ocr_labeling_api.py etc. |
ocr/labeling/api.py etc. |
| ocr related | 11 | page_crop.py etc. |
ocr/pipeline/page_crop.py etc. |
| grid_* | 16 | grid_build_core.py etc. |
grid/build/core.py etc. |
| vocab_* | 10 | vocab_worksheet_api.py etc. |
vocab/worksheet/api.py etc. |
| korrektur | 11 | eh_templates.py etc. |
korrektur/eh_templates.py etc. |
| zeugnis_* | 10 | zeugnis_api.py etc. |
zeugnis/api.py etc. |
| admin_* | 4 | admin_api.py etc. |
admin/api.py etc. |
| compliance/rbac | 8 | rbac.py etc. |
compliance/rbac.py etc. |
| worksheet/nru | 9 | worksheet_editor_api.py etc. |
worksheet/editor_api.py etc. |
| training_* | 6 | training_api.py etc. |
training/api.py etc. |
| metrics_* | 4 | metrics_db.py etc. |
metrics/db.py etc. |
backend-lehrer/ (43 Shims)
| Gruppe | Anzahl | Alter Pfad | Neuer Pfad |
|---|---|---|---|
| abitur_docs_* | 3 | abitur_docs_api.py etc. |
abitur/api.py etc. |
| correction_* | 4 | correction_api.py etc. |
correction/api.py etc. |
| messenger_* | 5 | messenger_api.py etc. |
messenger/api.py etc. |
| recording_* | 6 | recording_api.py etc. |
recording/api.py etc. |
| unit_* + learning_* | 13 | unit_api.py etc. |
units/api.py etc. |
| teacher_dashboard_* | 3 | teacher_dashboard_api.py etc. |
dashboard/api.py etc. |
| game_* | 5 | game_api.py etc. |
game/api.py etc. |
| letters/certificates | 4 | letters_api.py etc. |
letters/api.py etc. |
Prioritaet
- Hoch: Shims die von
main.pyimportiert werden (Router-Registrierung) - Mittel: Shims die von anderen Modulen importiert werden
- Niedrig: Shims die nur von Tests importiert werden
Wann loeschen?
- Bei der naechsten groesseren Aenderung an einem Modul → gleich die Consumer-Imports mit aktualisieren
- Oder als dedizierte Cleanup-Session wenn alle Tests gruen sind
- NICHT alle auf einmal — Modul fuer Modul vorgehen