"""Pure helpers for data injection, validation, and directory walking.""" from __future__ import annotations import base64 import json import os from jsonschema import validate as schema_validate, ValidationError as SchemaValidationError def _validate_against_schema(data: dict, schema: dict) -> str | None: """Validate *data* against *schema*. Return an error string or None.""" try: schema_validate(instance=data, schema=schema) return None except SchemaValidationError as exc: path = " -> ".join(str(p) for p in exc.absolute_path) if exc.absolute_path else "(root)" return f"Schema validation failed at {path}: {exc.message}" def _build_data_injection(input_json: str, result_json: str) -> str: return ( "" ) def _inject_data_into_html(html: str, input_json: str = "{}", result_json: str = "null") -> str: injection = _build_data_injection(input_json, result_json) if "" in html: return html.replace("", f"{injection}\n", 1) if " tuple[str, str]: try: decoded = json.loads(base64.b64decode(d)) input_json = json.dumps(decoded.get("i", {})) result_json = json.dumps(decoded.get("r", None)) return input_json, result_json except Exception: return "{}", "null" def _walk_directory(folder: str) -> dict[str, str]: files: dict[str, str] = {} if not os.path.isdir(folder): return files for root, _dirs, filenames in os.walk(folder): for fname in filenames: full_path = os.path.join(root, fname) rel_path = os.path.relpath(full_path, folder) try: with open(full_path) as f: files[rel_path] = f.read() except Exception: pass return files