update
This commit is contained in:
@@ -181,6 +181,32 @@ def _relevanz_schema(data, ids: set[int] | None = None):
|
||||
return out
|
||||
|
||||
|
||||
_JANEIN = ("ja", "nein")
|
||||
|
||||
|
||||
def _janein_schema(data, ids: set[int] | None = None):
|
||||
"""{"relevant": {"1": "ja", …}} → {id: ja/nein} · sonst None.
|
||||
|
||||
Binäres ja/nein — das Themen-Relevanz-Gate der Sichtung. Wie `_relevanz_schema`:
|
||||
sind `ids` gegeben, müssen mindestens diese abgedeckt sein (Extras erlaubt).
|
||||
"""
|
||||
if not isinstance(data, dict) or not isinstance(data.get("relevant"), dict) or not data["relevant"]:
|
||||
return None
|
||||
out: dict[int, str] = {}
|
||||
for k, v in data["relevant"].items():
|
||||
try:
|
||||
num = int(k)
|
||||
except (ValueError, TypeError):
|
||||
return None
|
||||
wert = str(v).strip().casefold()
|
||||
if wert not in _JANEIN:
|
||||
return None
|
||||
out[num] = wert
|
||||
if ids is not None and not ids <= set(out):
|
||||
return None
|
||||
return out
|
||||
|
||||
|
||||
_MAX_RESTARTS = 2
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user