auto-sync: tudo-para-ia-mais-humana 2026-05-02 07:28:45
This commit is contained in:
120
tools/generate_workspace_hygiene_policy.py
Normal file
120
tools/generate_workspace_hygiene_policy.py
Normal file
@@ -0,0 +1,120 @@
|
||||
"""Generate importable workspace hygiene policy cases."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
SRC = ROOT / "src"
|
||||
OUTPUT = SRC / "mais_humana" / "generated_workspace_hygiene_policy.py"
|
||||
|
||||
|
||||
def ensure_import_path() -> None:
|
||||
import sys
|
||||
|
||||
src = str(SRC)
|
||||
if src not in sys.path:
|
||||
sys.path.insert(0, src)
|
||||
|
||||
|
||||
def q(value: object) -> str:
|
||||
return repr(str(value))
|
||||
|
||||
|
||||
def bool_literal(value: bool) -> str:
|
||||
return "True" if value else "False"
|
||||
|
||||
|
||||
def tuple_enum(values: object) -> str:
|
||||
items = list(values)
|
||||
if not items:
|
||||
return "()"
|
||||
lines = ["("]
|
||||
for item in items:
|
||||
lines.append(f" HygieneRemediationAction.{getattr(item, 'name')},")
|
||||
lines.append(" )")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def tuple_str(values: object) -> str:
|
||||
items = [str(value) for value in values]
|
||||
if not items:
|
||||
return "()"
|
||||
lines = ["("]
|
||||
for item in items:
|
||||
lines.append(f" {q(item)},")
|
||||
lines.append(" )")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def case_block(case: object) -> str:
|
||||
return "\n".join(
|
||||
[
|
||||
" HygienePolicyCase(",
|
||||
f" case_id={q(getattr(case, 'case_id'))},",
|
||||
f" artifact_kind=HygieneArtifactKind.{getattr(case, 'artifact_kind').name},",
|
||||
f" relative_path={q(getattr(case, 'relative_path'))},",
|
||||
f" environment=HygieneEnvironment.{getattr(case, 'environment').name},",
|
||||
f" execution_mode=HygieneExecutionMode.{getattr(case, 'execution_mode').name},",
|
||||
f" error_kind=HygieneErrorKind.{getattr(case, 'error_kind').name},",
|
||||
f" status=HygienePolicyStatus.{getattr(case, 'status').name},",
|
||||
" remediation_actions=" + tuple_enum(getattr(case, "remediation_actions")) + ",",
|
||||
" required_evidence=" + tuple_str(getattr(case, "required_evidence")) + ",",
|
||||
f" mcp_transit_required={bool_literal(getattr(case, 'mcp_transit_required'))},",
|
||||
f" direct_delete_allowed={bool_literal(getattr(case, 'direct_delete_allowed'))},",
|
||||
f" reason={q(getattr(case, 'reason'))},",
|
||||
f" next_action={q(getattr(case, 'next_action'))},",
|
||||
" ),",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def main() -> int:
|
||||
ensure_import_path()
|
||||
from mais_humana.workspace_hygiene_policy import build_policy_cases
|
||||
|
||||
cases = build_policy_cases()
|
||||
lines = [
|
||||
'"""Generated workspace hygiene policy cases.',
|
||||
"",
|
||||
"Do not edit this file by hand. Regenerate with:",
|
||||
"",
|
||||
" python tools/generate_workspace_hygiene_policy.py",
|
||||
'"""',
|
||||
"",
|
||||
"from __future__ import annotations",
|
||||
"",
|
||||
"from .workspace_hygiene_policy import (",
|
||||
" HygieneArtifactKind,",
|
||||
" HygieneEnvironment,",
|
||||
" HygieneErrorKind,",
|
||||
" HygieneExecutionMode,",
|
||||
" HygienePolicyCase,",
|
||||
" HygienePolicyStatus,",
|
||||
" HygieneRemediationAction,",
|
||||
")",
|
||||
"",
|
||||
f"GENERATED_POLICY_CASES_COUNT = {len(cases)}",
|
||||
"",
|
||||
"POLICY_CASES = (",
|
||||
]
|
||||
lines.extend(case_block(case) for case in cases)
|
||||
lines.extend(
|
||||
[
|
||||
")",
|
||||
"",
|
||||
"",
|
||||
"def iter_policy_cases():",
|
||||
" return POLICY_CASES",
|
||||
"",
|
||||
]
|
||||
)
|
||||
OUTPUT.write_text("\n".join(lines), encoding="utf-8")
|
||||
print(f"generated {OUTPUT} cases={len(cases)}")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
|
||||
Reference in New Issue
Block a user