Coverage for src / invariant / params.py: 100.00%
7 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-25 10:05 +0100
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-25 10:05 +0100
1"""Parameter markers for explicit dependency and expression references.
3This module provides two marker types for node parameters:
4- ref(dep): References an upstream dependency artifact directly
5- cel(expr): Evaluates a CEL expression against dependency artifacts
6"""
8from dataclasses import dataclass
11@dataclass(frozen=True)
12class ref:
13 """Reference to an upstream dependency artifact.
15 When used in node params, resolves to the ICacheable object from the
16 specified dependency. The dependency must be declared in the node's deps list.
18 Example:
19 Node(
20 op_name="poly:add",
21 params={"a": ref("p"), "b": ref("q")},
22 deps=["p", "q"],
23 )
24 """
26 dep: str
29@dataclass(frozen=True)
30class cel:
31 """CEL expression to evaluate against dependency artifacts.
33 When used in node params, evaluates the CEL expression with dependency
34 artifacts exposed as variables. Returns the computed value (int, str,
35 Decimal, etc.).
37 Example:
38 Node(
39 op_name="gfx:render_svg",
40 params={"width": cel("decimal(background.width) * decimal('0.75')")},
41 deps=["background"],
42 )
43 """
45 expr: str