Download exec_checks.py from Daxamite/eMOE: direct link, hf CLI and curl.
- Browser
- Download file 6.03 kB
-
https://huggingface.co/spaces/Daxamite/eMOE/resolve/main/exec_checks.py
- Command line
-
hf download hf://spaces/Daxamite/eMOE/exec_checks.py
-
curl -L -o exec_checks.py https://huggingface.co/spaces/Daxamite/eMOE/resolve/main/exec_checks.py
6.03 kB
| """ | |
| exec_checks.py — single source of truth for exec-gold hygiene + match canonicalization. | |
| WHY THIS EXISTS | |
| --------------- | |
| The data generator, the cleaner, the gold census, and the runtime verification ladder | |
| must agree on (a) what counts as a malformed exec gold and (b) how two outputs are | |
| compared for equality. When each reimplements its own rules they drift, and you get | |
| the failure we already saw: bash checked as python, structured tag-output flagged | |
| "unstructured". One module, imported everywhere: | |
| build_hyper_dataset.py -> repair() + degeneracy() at author time | |
| remove_junk.py -> repair() + degeneracy() + python_for_compiled() | |
| audit_gold.py -> (recommended) import well-formedness helpers here | |
| runtime verifier -> canonicalize() for match-against-gold | |
| PRECISION vs RECALL (important design split) | |
| -------------------------------------------- | |
| audit_gold is RECALL-oriented: flag anything suspicious so a human reads it. | |
| remove_junk is PRECISION-oriented: drop only what is junk under ALL plausible task | |
| intents. The functions here are labeled so each caller picks the right ones: | |
| * degeneracy() -> precision-safe drop (junk under any intent) | |
| * python_for_compiled() -> precision-safe drop (a Python def is never the answer to | |
| a C++/Rust/Go/Java task in anything we author) | |
| * repair() -> lossless-intent normalization (strip wrapping fence / | |
| leading "Sure, here is:" preamble) — safe to always apply | |
| * canonicalize() -> equality normalization for match-against-gold | |
| Dependency-free (stdlib only) so every consumer can import it without pulling torch. | |
| """ | |
| from __future__ import annotations | |
| import json | |
| import re | |
| from collections import Counter | |
| # Compiled / typed languages where Qwen tends to fall back to Python. | |
| COMPILED_LANGS = {"c++", "cpp", "rust", "go", "golang", "java", "c", "c#", "csharp"} | |
| # Leading conversational preamble that occasionally survives the open/exec prompt. | |
| _PREAMBLE_RE = re.compile( | |
| r"^\s*(sure[,!.]?\s*|certainly[,!.]?\s*|of course[,!.]?\s*|" | |
| r"here(?:'s| is| are)\b[^\n:]*:?\s*|below is\b[^\n:]*:?\s*|" | |
| r"the (?:answer|result|output) is[:]?\s*)", | |
| re.I) | |
| _PY_DEF = re.compile(r"(?:^|\n)\s*def\s+\w+\s*\([^)]*\)\s*:", re.M) | |
| _PY_IMPORT = re.compile(r"(?:^|\n)\s*(?:import\s+\w+|from\s+\w+\s+import)\b", re.M) | |
| def strip_fences(s): | |
| """Strip a SINGLE wrapping ```lang ... ``` fence enclosing the WHOLE string. | |
| Conservative: only when fence-count == 2 and it wraps everything; multi-block, | |
| inline-fenced, and non-fenced strings are left untouched.""" | |
| if not isinstance(s, str): | |
| return s | |
| t = s.strip() | |
| if not (t.startswith("```") and t.endswith("```") and len(t) >= 6): | |
| return s | |
| if t.count("```") != 2: | |
| return s | |
| nl = t.find("\n") | |
| if nl == -1: | |
| return s | |
| inner = t[nl + 1:].rstrip() | |
| if inner.endswith("```"): | |
| inner = inner[:-3] | |
| return inner.strip() | |
| def strip_preamble(s): | |
| """Remove leading conversational clauses ('Sure, here is the code:'). Iterates to | |
| a fixed point (capped) so stacked clauses are handled; leaves the artifact intact.""" | |
| if not isinstance(s, str): | |
| return s | |
| for _ in range(3): | |
| new = _PREAMBLE_RE.sub("", s, count=1) | |
| if new == s: | |
| break | |
| s = new | |
| return s | |
| def repair(s): | |
| """Lossless-intent normalization applied to any OUTPUT (never inputs): drop a | |
| wrapping fence, then a leading preamble. Safe to always apply.""" | |
| if not isinstance(s, str): | |
| return s | |
| return strip_preamble(strip_fences(s)).strip() | |
| def degeneracy(s): | |
| """Return a reason string if the output is catastrophically degenerate (empty or | |
| a repetition loop), else None. Bad under ALL task intents -> precision-safe drop.""" | |
| if not isinstance(s, str): | |
| return "non-string" | |
| t = s.strip() | |
| if not t: | |
| return "empty" | |
| lines = [ln for ln in t.splitlines() if ln.strip()] | |
| if len(lines) >= 6: | |
| top = Counter(lines).most_common(1)[0][1] | |
| if top / len(lines) > 0.6: | |
| return "repeated-line loop" | |
| toks = t.split() | |
| if len(toks) >= 20: | |
| top = Counter(toks).most_common(1)[0][1] | |
| if top / len(toks) > 0.7: | |
| return "repeated-token loop" | |
| return None | |
| def python_for_compiled(domain, out): | |
| """High-precision: OUTPUT is clearly a Python function/script authored for a | |
| COMPILED-language task. Returns a reason or None. Gates on domain so it self-skips | |
| everywhere else.""" | |
| if (domain or "").strip().lower() not in COMPILED_LANGS: | |
| return None | |
| if not isinstance(out, str): | |
| return None | |
| head = out[:400] | |
| c_family_syntax = (";" in head) or ("{" in head) or ("#include" in head) | |
| looks_python = bool(_PY_DEF.search(out) or _PY_IMPORT.search(head)) | |
| if looks_python and not c_family_syntax: | |
| return "python authored for compiled-language task" | |
| return None | |
| def canonicalize(s): | |
| """Equality normalization for match-against-gold. The runtime verifier and any | |
| eval-time match MUST use this same function so 'equal' means the same thing | |
| everywhere. JSON is canonicalized (sorted keys, no whitespace); everything else | |
| is whitespace-collapsed and stripped. Extend per-type as the ladder grows | |
| (e.g. numeric rounding tolerance), but keep it HERE so it stays shared.""" | |
| if not isinstance(s, str): | |
| return s | |
| t = s.strip() | |
| try: | |
| return json.dumps(json.loads(t), sort_keys=True, separators=(",", ":")) | |
| except Exception: | |
| return re.sub(r"\s+", " ", t) | |
| def matches(pred, gold): | |
| """Deterministic equality after canonicalization. The strongest exec rung when a | |
| gold exists (eval-time / consensus). NOT available at runtime for a NOVEL request | |
| with no gold — there you fall to parse/compile (floor) or RAG-match (knowledge).""" | |
| return canonicalize(pred) == canonicalize(gold) | |