Expand description
The python CodeGenerator target.
Consumes the exact same validated EtlDocument + resolved fault-tree
probabilities + AsyncApiRegistry every other target consumes.
Nothing here re-parses .etdl, re-validates ECEL conditions, or
re-evaluates fault trees. Generated Python is a thin, ctypes-based
binding to the same compiled etdl-runtime-ffi C ABI the Java target
binds to via java.lang.foreign — branch/SLA accounting, retry
backoff, and ECEL matches/in semantics stay in Rust. See
docs/architecture/targets.md.
Building this crate never requires Python — it only emits Python
source text. Python (3.9+, for the list[T]/X | None type-hint
syntax generated code uses) is needed only to run the generated
output, and etdl-runtime-ffi’s compiled shared library is needed to
run anything that touches BranchMonitor/RetryPolicy/Condition.
ctypes is Python’s standard library — no pip install is needed
either.