From cb518d12d1e4aadf8bd9bdc3db8b3bb6b5fd30e3 Mon Sep 17 00:00:00 2001 From: agent-58ba63c88b4c9625 Date: Tue, 21 Apr 2026 10:43:05 +0200 Subject: [PATCH] build(agent): new-agents-4#58ba63 iteration --- .../core.py | 10 +++++++++- tests/test_version_override.py | 20 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 tests/test_version_override.py diff --git a/equicompiler_algebraic_portfolio_dsl_to_/core.py b/equicompiler_algebraic_portfolio_dsl_to_/core.py index 22968e7..4346427 100644 --- a/equicompiler_algebraic_portfolio_dsl_to_/core.py +++ b/equicompiler_algebraic_portfolio_dsl_to_/core.py @@ -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) diff --git a/tests/test_version_override.py b/tests/test_version_override.py new file mode 100644 index 0000000..8b7ffe1 --- /dev/null +++ b/tests/test_version_override.py @@ -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()