update
This commit is contained in:
@@ -472,12 +472,12 @@ async def _pruefe(stil: dict, aufgabe: dict) -> list[dict]:
|
||||
async def _stil_aufgaben(projekt: str):
|
||||
"""Prüfstellen der Stilprüfung samt der Kataloge, die sie brauchen."""
|
||||
stil = {b: _stil_lesen(b) for b in BEREICHE}
|
||||
liste = [a for f in features.liste(projekt) for a in aufgaben(f)]
|
||||
liste = [a for f in features.pruefbar(projekt) for a in aufgaben(f)]
|
||||
return liste, lambda a, _zaehl: _pruefe(stil, a)
|
||||
|
||||
|
||||
def _quelle(projekt: str):
|
||||
alle = features.liste(projekt)
|
||||
alle = features.pruefbar(projekt)
|
||||
quelle = quellcode.dateien()
|
||||
if not quelle:
|
||||
raise ValueError("Kein Quelltext gefunden")
|
||||
@@ -485,7 +485,8 @@ def _quelle(projekt: str):
|
||||
|
||||
|
||||
async def _feature_aufgaben(projekt: str):
|
||||
"""Ein Lauf über alle Funktionen: steht hinter jeder auch Code?
|
||||
"""Ein Lauf über alle Funktionen: steht hinter jeder auch Code? Und beschreibt
|
||||
keine zwei Funktionen dieselbe Sache?
|
||||
|
||||
Ein Aufruf statt vieler, weil das Ergebnis je Karte gebündelt wird — zwei
|
||||
Vorschläge für dieselbe Funktionsliste wären nicht unabhängig anwendbar.
|
||||
@@ -496,7 +497,8 @@ async def _feature_aufgaben(projekt: str):
|
||||
anzahl = sum(len(f["sektionen"]["funktionen"]) for f in alle)
|
||||
|
||||
async def abgleich(_, zaehl):
|
||||
return await inhaltspruefung.pruefe_feature_im_code(alle, quelle, text, zaehl)
|
||||
return await inhaltspruefung.pruefe_feature_im_code(
|
||||
projekt, alle, quelle, text, zaehl, _melder(projekt))
|
||||
|
||||
return _platzhalter(anzahl), abgleich
|
||||
|
||||
@@ -508,11 +510,26 @@ async def _code_aufgaben(projekt: str):
|
||||
punkte = quellcode.interaktionen(quelle)
|
||||
|
||||
async def abgleich(_, zaehl):
|
||||
return await inhaltspruefung.pruefe_code_im_feature(alle, quelle, zaehl)
|
||||
return await inhaltspruefung.pruefe_code_im_feature(
|
||||
projekt, alle, quelle, zaehl, _melder(projekt))
|
||||
|
||||
return _platzhalter(len(punkte)), abgleich
|
||||
|
||||
|
||||
def _melder(projekt: str):
|
||||
"""Sagt dem Lauf, was schiefging, ohne ihn abzubrechen.
|
||||
|
||||
Ein Sammellauf ist eine einzige Aufgabe. Flöge er wegen einer Stelle, wären
|
||||
alle anderen Befunde weg — und der Balken stünde trotzdem auf 100 %. So bleibt
|
||||
das Ergebnis erhalten und der Fehlstand steht daneben.
|
||||
"""
|
||||
def melde(text: str, fehler: int = 0):
|
||||
if lauf := _laeufe.get(projekt):
|
||||
lauf["meldung"] = text
|
||||
lauf["fehler"] += fehler
|
||||
return melde
|
||||
|
||||
|
||||
def _platzhalter(anzahl: int) -> list:
|
||||
"""Eine echte Aufgabe, der Rest nur für den Fortschrittsbalken."""
|
||||
return [True] + [None] * max(0, anzahl - 1)
|
||||
|
||||
Reference in New Issue
Block a user