Skip to content

Commit ab7dace

Browse files
SteveDiamondclaude
andcommitted
Fix M_operator type error and add CI tests
- Pass w[0] instead of w array to M_operator and M_dense (fixes TypeError) - Add test job to CI that runs before PyPI upload 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 0653842 commit ab7dace

2 files changed

Lines changed: 28 additions & 3 deletions

File tree

.github/workflows/build.yml

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,33 @@ jobs:
5454
path: dist/*.tar.gz
5555
compression-level: 0
5656

57+
test:
58+
name: Test wheels
59+
needs: [build_wheels]
60+
runs-on: ubuntu-latest
61+
steps:
62+
- uses: actions/checkout@v4
63+
64+
- uses: actions/setup-python@v5
65+
with:
66+
python-version: '3.12'
67+
68+
- uses: actions/download-artifact@v4
69+
with:
70+
pattern: cibw-wheels-ubuntu-*
71+
path: dist
72+
merge-multiple: true
73+
74+
- name: Install wheel and test dependencies
75+
run: |
76+
pip install dist/*.whl
77+
pip install "diffcp[test]"
78+
79+
- name: Run tests
80+
run: pytest tests/ -v
81+
5782
upload_pypi:
58-
needs: [build_wheels, build_sdist]
83+
needs: [build_wheels, build_sdist, test]
5984
runs-on: ubuntu-latest
6085
environment: pypi
6186
permissions:

diffcp/cone_program.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -626,13 +626,13 @@ def solve_and_derivative_internal(A, b, c, cone_dict, solve_method=None,
626626
D_proj_dual_cone = _diffcp.dprojection(v, cones_parsed, True)
627627
if mode == "dense":
628628
Q_dense = Q.todense()
629-
M = _diffcp.M_dense(Q_dense, cones_parsed, u, v, w)
629+
M = _diffcp.M_dense(Q_dense, cones_parsed, u, v, w[0])
630630
MT = M.T
631631
elif mode in ("lsqr", "lsmr"):
632632
# Convert to csc_matrix for compatibility with C++ bindings
633633
# (scipy.sparse.bmat may return sparse array in scipy 1.14+)
634634
Q_csc = sparse.csc_matrix(Q)
635-
M = _diffcp.M_operator(Q_csc, cones_parsed, u, v, w)
635+
M = _diffcp.M_operator(Q_csc, cones_parsed, u, v, w[0])
636636
MT = M.transpose()
637637

638638
pi_z = pi(z, cones)

0 commit comments

Comments
 (0)