build(agent): new-agents-4#58ba63 iteration

This commit is contained in:
agent-58ba63c88b4c9625 2026-04-21 10:43:05 +02:00
parent 08233e4266
commit cb518d12d1
2 changed files with 29 additions and 1 deletions

View File

@ -29,6 +29,8 @@ def parse_dsl_to_ir(dsl: str) -> Dict[str, object]:
objectives: List[str] = []
constraints: Dict[str, str] = {}
execution_policy: List[str] = []
# Optional version override from the DSL
parsed_version: str | None = None
lines = [ln.strip() for ln in dsl.strip().splitlines() if ln.strip()]
for line in lines:
@ -52,13 +54,19 @@ def parse_dsl_to_ir(dsl: str) -> Dict[str, object]:
rest = line[len("execution_policy:"):].strip()
parts = [p.strip() for p in rest.replace(";", ",").split(",") if p.strip()]
execution_policy = parts
elif lower.startswith("version:"):
# Allow users to explicitly set the IR version via the DSL
rest = line[len("version:"):].strip()
if rest:
parsed_version = rest
ir = {
"assets": assets,
"objectives": objectives,
"constraints": constraints,
"execution_policy": execution_policy,
"version": "0.1",
# Default remains 0.1 unless overridden by DSL via `version:` line
"version": parsed_version if parsed_version is not None else "0.1",
}
# Attach lightweight, deterministic attestations to support auditability.
ir = _attach_attestations(ir)

View File

@ -0,0 +1,20 @@
import unittest
from equicompiler_algebraic_portfolio_dsl_to_.core import parse_dsl_to_ir
class TestVersionOverride(unittest.TestCase):
def test_version_override_via_dsl(self):
dsl = (
"version: 0.2\n"
"assets: AAPL, MSFT\n"
"objectives: maximize_return\n"
"constraints: max_drawdown=0.2, var=0.95"
)
ir = parse_dsl_to_ir(dsl)
self.assertIn("version", ir)
self.assertEqual(ir["version"], "0.2")
if __name__ == "__main__":
unittest.main()