feat(solver): Phase 2 — pybind11 bindings and Python solver support #288
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Expose the KCSolve C++ API to Python via pybind11, add pure-Python solver base class, and build the debug/introspection API.
Scope
Per INTER_SOLVER.md Phase 2:
pybind11 module (
kcsolve)kcsolve.available()— list loaded solverskcsolve.load(solver_id)— get solver instancekcsolve.register(py_solver)— register a Python solver at runtimectx.add_part(),ctx.add_constraint()PySolver base class
kcsolve.PySolverid,name,version,supported_joints(),solve(ctx)mods/*/solvers/*.pyand<user_macros>/solvers/*.pyDebug / introspection API
kcsolve.Debugger(solver, ctx)— step-through iteration with per-step residualskcsolve.dependency_graph(ctx)— constraint dependency visualizationkcsolve.dof_analysis(ctx)— DOF count per part and totalFile locations
Dependencies
References