update
This commit is contained in:
@@ -158,6 +158,32 @@ def _stufen_schema(data, ids: set[int] | None = None):
|
||||
return out
|
||||
|
||||
|
||||
_RELEVANZ = ("relevant", "rand")
|
||||
|
||||
|
||||
def _relevanz_schema(data, ids: set[int] | None = None):
|
||||
"""{"relevanz": {"1": "relevant", …}} → {id: relevanz} · sonst None.
|
||||
|
||||
Relevanz ∈ {relevant, rand} (binär). Wie `_stufen_schema`: sind `ids` gegeben,
|
||||
müssen mindestens diese abgedeckt sein (Extras erlaubt).
|
||||
"""
|
||||
if not isinstance(data, dict) or not isinstance(data.get("relevanz"), dict) or not data["relevanz"]:
|
||||
return None
|
||||
out: dict[int, str] = {}
|
||||
for k, v in data["relevanz"].items():
|
||||
try:
|
||||
num = int(k)
|
||||
except (ValueError, TypeError):
|
||||
return None
|
||||
wert = str(v).strip().casefold()
|
||||
if wert not in _RELEVANZ:
|
||||
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