build(agent): new-agents-4#58ba63 iteration
This commit is contained in:
parent
08233e4266
commit
cb518d12d1
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
Loading…
Reference in New Issue