Skip to content

D17 — CLI, Python module and plugin share one route function

Decision

The CLI's route and the Python module's route() call one function (tmk::app::run_route_job); the KiCad plugin uses the module in-process when importable, else the binary

Alternatives

Bindings that drive Router directly; plugin with the binary only

Reason

Identical results by construction (tested byte for byte); no subprocess when the module fits KiCad's Python, and the binary still works when it does not