openscvx 0.5.3.dev35__py3-none-any.whl → 0.5.3.dev36__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
openscvx/_version.py CHANGED
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.5.3.dev35'
22
- __version_tuple__ = version_tuple = (0, 5, 3, 'dev35')
21
+ __version__ = version = '0.5.3.dev36'
22
+ __version_tuple__ = version_tuple = (0, 5, 3, 'dev36')
23
23
 
24
- __commit_id__ = commit_id = 'g43f7b7f31'
24
+ __commit_id__ = commit_id = 'g1eddc1a14'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openscvx
3
- Version: 0.5.3.dev35
3
+ Version: 0.5.3.dev36
4
4
  Summary: A general Python-based successive convexification implementation which uses a JAX backend.
5
5
  Author-email: Chris Hayner and Griffin Norris <haynec@uw.edu>
6
6
  License: Apache Software License
@@ -41,11 +41,8 @@ Provides-Extra: frax
41
41
  Requires-Dist: frax>=0.0.4; extra == "frax"
42
42
  Provides-Extra: test
43
43
  Requires-Dist: pytest; extra == "test"
44
- Requires-Dist: scipy; extra == "test"
45
- Requires-Dist: jaxlie; extra == "test"
46
- Requires-Dist: svgpathtools; extra == "test"
47
44
  Requires-Dist: pytest-xdist; extra == "test"
48
- Requires-Dist: frax>=0.0.4; extra == "test"
45
+ Requires-Dist: scipy; extra == "test"
49
46
  Dynamic: license-file
50
47
 
51
48
  <a id="readme-top"></a>
@@ -53,8 +50,8 @@ Dynamic: license-file
53
50
  <img src="figures/openscvx_logo.svg" width="1200"/>
54
51
  <p align="center">
55
52
  <a href="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/lint.yml"><img src="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/lint.yml/badge.svg"/></a>
56
- <a href="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-unit.yml"><img src="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-unit.yml/badge.svg"/></a>
57
- <a href="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-integration.yml"><img src="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-integration.yml/badge.svg"/></a>
53
+ <a href="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests.yml"><img src="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests.yml/badge.svg"/></a>
54
+ <a href="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-examples.yml"><img src="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-examples.yml/badge.svg"/></a>
58
55
  <a href="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/nightly.yml"><img src="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/nightly.yml/badge.svg"/></a>
59
56
  <a href="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/release.yml"><img src="https://github.com/OpenSCvx/OpenSCvx/actions/workflows/release.yml/badge.svg?event=release"/></a>
60
57
  </p>
@@ -253,6 +250,22 @@ This repo has the following features:
253
250
 
254
251
  <p align="right">(<a href="#readme-top">back to top</a>)</p>
255
252
 
253
+ ## Third-Party Integrations
254
+
255
+ OpenSCvx integrates with several optional third-party packages. Each installs as a pip extra (`pip install openscvx[<extra>]`); without it, the library and its tests degrade gracefully — the corresponding tests simply skip. Integrations with a badge are tested against `main` on every push and re-checked weekly against the latest upstream releases.
256
+
257
+ | Integration | Extra | Provides | Status |
258
+ | --- | --- | --- | --- |
259
+ | [MuJoCo MJX](https://mujoco.readthedocs.io/en/stable/mjx.html) | `mjx` | MJX dynamics adapter (`openscvx.integrations`) | [![mjx](https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-mjx.yml/badge.svg?branch=main)](https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-mjx.yml) |
260
+ | [jaxlie](https://github.com/brentyi/jaxlie) | `lie` | SO(3)/SE(3) Lie-group operations and IK initialization | [![jaxlie](https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-lie.yml/badge.svg?branch=main)](https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-lie.yml) |
261
+ | [qpax](https://github.com/qpax-solver/qpax) | `qpax` | JAX-native QP solver backend | [![qpax](https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-qpax.yml/badge.svg?branch=main)](https://github.com/OpenSCvx/OpenSCvx/issues/550) |
262
+ | [CVXPYGen](https://github.com/cvxgrp/cvxpygen) | `cvxpygen` | Generated C solver code for the convex subproblem | [![cvxpygen](https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-cvxpygen.yml/badge.svg?branch=main)](https://github.com/OpenSCvx/OpenSCvx/issues/551) |
263
+ | [moreau](https://pypi.org/project/moreau/) | `moreau` | Licensed QP solver backend | ![moreau](https://img.shields.io/badge/moreau-license%20required-lightgrey) |
264
+ | [stljax](https://github.com/UW-CTRL/stljax) | `stl` | Signal Temporal Logic robustness bridge | ![stljax](https://img.shields.io/badge/stljax-no%20tests%20yet-lightgrey) |
265
+ | [frax](https://github.com/danielpmorton/frax) | `frax` | Robot dynamics for the manipulator examples | [![frax](https://img.shields.io/badge/frax-weekly%20examples%20sweep-blue)](https://github.com/OpenSCvx/OpenSCvx/actions/workflows/tests-examples.yml) |
266
+
267
+ <p align="right">(<a href="#readme-top">back to top</a>)</p>
268
+
256
269
  ## Acknowledgements
257
270
 
258
271
  This work was supported by a NASA Space Technology Graduate Research Opportunity and the Office of Naval Research under grant N00014-17-1-2433. The authors would like to acknowledge Natalia Pavlasek, Fabio Spada, Samuel Buckner, Abhi Kamath, Govind Chari, and Purnanand Elango as well as the other Autonomous Controls Laboratory members, for their many helpful discussions and support throughout this work.
@@ -1,6 +1,6 @@
1
1
  openscvx/__init__.py,sha256=sxiqBoS5jv9UmNSxnrokFXeFMnDSkAxUCtC4X-s-vHk,4456
2
2
  openscvx/__main__.py,sha256=Hwm7mtVg3tLdvoUPkpcQv8KF3wxl72PNLBp9axFu8GY,2991
3
- openscvx/_version.py,sha256=zYvwhGhbvK9AbmgQE8S1Hgf833v_MnaaaIPnD1k7tlc,543
3
+ openscvx/_version.py,sha256=mGTOVICdRgn5_ZJoQY5syJ-Phm4G17DXDiF9_f2TsJ8,543
4
4
  openscvx/config.py,sha256=qfDDYoCe6WqJglKsx5b2W48YOglXenKr-PVRRdCFhYE,9898
5
5
  openscvx/loader.py,sha256=5WDLVA6CQxnyi1pRBfP8jQQc0r8RiAM2O_ItKgMXxAk,7660
6
6
  openscvx/problem.py,sha256=aJlXbpwQ9_8gP8N2Ff1pz8biF0FoIZTyDYvLX65DLfw,100224
@@ -159,11 +159,11 @@ openscvx/utils/caching.py,sha256=Uw2e0G1UNn_vmMDqUZGszIH-O9LJhR4wdVKSPToHiy0,169
159
159
  openscvx/utils/printing.py,sha256=dsccZ9sXc3TBWShQvBg1Al4UFGMP77ApblfxteEJHLQ,16515
160
160
  openscvx/utils/profiling.py,sha256=k2x-i0CpG_kRe6dNcNBGu-ylrOtQw4B4C1UaOTjUMfU,1678
161
161
  openscvx/utils/utils.py,sha256=M25RHE_7DSr3Reaca0xCXnDSY9KHuqYvXdh5m1ZotEc,3047
162
- openscvx-0.5.3.dev35.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
163
- openscvx-0.5.3.dev35.dist-info/METADATA,sha256=zPUnmSxAXkoEBCyp8VD6xerMp6zXIyMuix9WvCgrIUI,10924
164
- openscvx-0.5.3.dev35.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
165
- openscvx-0.5.3.dev35.dist-info/entry_points.txt,sha256=1Oqek8Sy28hmAZFgZXDxFXYVf56YLYWlHjhh9RYJ7wE,52
166
- openscvx-0.5.3.dev35.dist-info/scm_file_list.json,sha256=SlBGAndk9F0hQaBc0H6_xbLqjPOhzhpxfYjAYRvf1M8,18093
167
- openscvx-0.5.3.dev35.dist-info/scm_version.json,sha256=Cx_YDZgQq_q8oE32xSp_vT9pYGqjZ26SBE6bmsrbdT4,161
168
- openscvx-0.5.3.dev35.dist-info/top_level.txt,sha256=nUT4Ybefzh40H8tVXqc1RzKESy_MAowElb-CIvAbd4Q,9
169
- openscvx-0.5.3.dev35.dist-info/RECORD,,
162
+ openscvx-0.5.3.dev36.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
163
+ openscvx-0.5.3.dev36.dist-info/METADATA,sha256=lL32CihWUYZOvks9xoNvU4JRlSpTB2nHOeHeCnicbL8,12998
164
+ openscvx-0.5.3.dev36.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
165
+ openscvx-0.5.3.dev36.dist-info/entry_points.txt,sha256=1Oqek8Sy28hmAZFgZXDxFXYVf56YLYWlHjhh9RYJ7wE,52
166
+ openscvx-0.5.3.dev36.dist-info/scm_file_list.json,sha256=VDDQ6kOec1NxVc9evE4Q_lhnpoHi_Hw2HmjvfIizIwA,18303
167
+ openscvx-0.5.3.dev36.dist-info/scm_version.json,sha256=dCKdBs9eYy9EKjjzHcLKE-MzfAIfZINu3LplpLc8b58,161
168
+ openscvx-0.5.3.dev36.dist-info/top_level.txt,sha256=nUT4Ybefzh40H8tVXqc1RzKESy_MAowElb-CIvAbd4Q,9
169
+ openscvx-0.5.3.dev36.dist-info/RECORD,,
@@ -216,27 +216,17 @@
216
216
  "tests/test_integrators.py",
217
217
  "tests/test_discretization.py",
218
218
  "tests/test_init.py",
219
- "tests/test_multishot_propagation.py",
220
219
  "tests/test_propagation.py",
221
220
  "tests/hohmann_analytical.py",
222
221
  "tests/test_expert.py",
223
222
  "tests/test_results_parameters.py",
224
223
  "tests/test_post_process_batched_tau_clamp.py",
225
224
  "tests/test_solve_batched_inference.py",
226
- "tests/test_solve_jax_bare_brachistochrone.py",
227
225
  "tests/test_cvxpygen_optional.py",
228
- "tests/test_solve_batched_export_roundtrip.py",
229
- "tests/test_solve_batched_brachistochrone.py",
230
- "tests/_marks.py",
231
- "tests/test_impulsive.py",
232
226
  "tests/conftest.py",
233
- "tests/test_solve_jax_vmap_brachistochrone.py",
234
- "tests/test_brachistochrone.py",
235
- "tests/test_solve_jax_jit_brachistochrone.py",
236
227
  "tests/test_autotuning.py",
237
- "tests/test_solve_batched_cvxpy_export_errors.py",
238
- "tests/test_solve_jax_vmap_converged_no_drift.py",
239
228
  "tests/symbolic/test_preprocessing.py",
229
+ "tests/symbolic/test_gmsr.py",
240
230
  "tests/symbolic/__init__.py",
241
231
  "tests/symbolic/test_lower_cvxpy.py",
242
232
  "tests/symbolic/test_augmentation.py",
@@ -278,8 +268,17 @@
278
268
  "tests/integrations/test_mjx_dynamics.py",
279
269
  "tests/integrations/__init__.py",
280
270
  "tests/integrations/test_mjx.py",
281
- "tests/expr/test_gmsr.py",
282
- "tests/expr/__init__.py",
271
+ "tests/e2e/__init__.py",
272
+ "tests/e2e/test_multishot_propagation.py",
273
+ "tests/e2e/test_solve_jax_bare_brachistochrone.py",
274
+ "tests/e2e/test_solve_batched_export_roundtrip.py",
275
+ "tests/e2e/test_solve_batched_brachistochrone.py",
276
+ "tests/e2e/test_impulsive.py",
277
+ "tests/e2e/test_solve_jax_vmap_brachistochrone.py",
278
+ "tests/e2e/test_brachistochrone.py",
279
+ "tests/e2e/test_solve_jax_jit_brachistochrone.py",
280
+ "tests/e2e/test_solve_batched_cvxpy_export_errors.py",
281
+ "tests/e2e/test_solve_jax_vmap_converged_no_drift.py",
283
282
  "tests/solvers/__init__.py",
284
283
  "tests/solvers/test_moreau_ptr_solver.py",
285
284
  "tests/solvers/test_qpax_ptr_solver.py",
@@ -413,14 +412,19 @@
413
412
  "examples/frax/panda_frax_waypoint.py",
414
413
  ".github/release-drafter.yml",
415
414
  ".github/assets/logo.svg",
415
+ ".github/workflows/tests-qpax.yml",
416
416
  ".github/workflows/branch-name.yml",
417
- ".github/workflows/tests-integration.yml",
417
+ ".github/workflows/tests-lie.yml",
418
418
  ".github/workflows/release.yml",
419
+ ".github/workflows/tests-cvxpygen.yml",
420
+ ".github/workflows/tests-mjx.yml",
419
421
  ".github/workflows/docs.yml",
422
+ ".github/workflows/tests.yml",
420
423
  ".github/workflows/lint.yml",
421
424
  ".github/workflows/release-drafter.yml",
425
+ ".github/workflows/tests-examples.yml",
422
426
  ".github/workflows/_docs.yml",
423
- ".github/workflows/tests-unit.yml",
427
+ ".github/workflows/_extra.yml",
424
428
  ".github/workflows/nightly.yml"
425
429
  ]
426
430
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "tag": "0.5.2",
3
- "distance": 35,
4
- "node": "g43f7b7f313888f19e8586f108d8e11bed332f87f",
3
+ "distance": 36,
4
+ "node": "g1eddc1a14ee7e851448b965cc29df898aa2a822a",
5
5
  "dirty": false,
6
6
  "branch": "main",
7
7
  "node_date": "2026-07-06"