The Python side of composable-model-graph. Parity with the TypeScript side
(../typescript) is the rule: new capabilities ship in both languages (see
../docs/development.md).
A real, dependency-free core (so the primitive is usable without an install), at parity with the TypeScript side.
composable_model_graph.core-Transform,create_transform,ModelGraph/create_model_graph,RunContext(withrecord_signal),TraceStep,GraphRun, the evaluation/feedback types (Evaluator,EvaluationResult,Evidence,FeedbackResolver,FeedbackAction, withcreate_evaluator/create_feedback_resolver), andcompare_runs(RunComparison,SignalDelta). The runner is sequential by default and a general DAG when you passconnections(linearity is a default, not a limit), and it invokes an attached evaluator / feedback resolver after the transforms run.composable_model_graph.evaluators-threshold_evaluator,numeric_error_evaluator,exact_match_evaluator,composite_evaluator,deep_equal.composable_model_graph.feedback-default_feedback_resolver,threshold_feedback_resolver.composable_model_graph.math-sigmoid/reluwithforward,derivative,derivative_from_output(the neural-proof lane),sensitivity/rank_sensitivity,TransferFunction.composable_model_graph.estimation-decode_path/decode_path_fixed_lagoverCandidateStatetrellises (Viterbi / fixed-lag), domain-free.composable_model_graph.terminal- lifecycle/run projections plus comparison, decoded-path, sensitivity, and useful-flow terminal renderers.composable_model_graph.constraints- deterministic relationship checks, lossless finding reports, generic selector-driven helpers, and an explicit evaluator adapter.
No install needed:
cd python
python3 tests/test_smoke.py # prints "PASS: ..."Or with pytest (after pip install -e .[dev]):
python3 -m pytestAt parity with TypeScript on core, evaluators, feedback, comparison, math, estimation, terminal rendering, and constraints. New capabilities continue to land in lockstep across both languages.