InterpolatePy 3.0.0__tar.gz → 3.0.1__tar.gz

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.
Files changed (219) hide show
  1. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/.github/workflows/docs.yml +9 -12
  2. interpolatepy-3.0.1/.github/workflows/pre-commit.yml +28 -0
  3. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/.github/workflows/publish.yml +6 -10
  4. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/.github/workflows/test.yml +10 -14
  5. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/.gitignore +0 -3
  6. interpolatepy-3.0.1/.python-version +1 -0
  7. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/InterpolatePy.egg-info/PKG-INFO +19 -38
  8. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/InterpolatePy.egg-info/SOURCES.txt +2 -0
  9. interpolatepy-3.0.1/InterpolatePy.egg-info/requires.txt +3 -0
  10. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/PKG-INFO +19 -38
  11. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/README.md +15 -11
  12. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/contributing.md +13 -17
  13. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/installation.md +18 -13
  14. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/troubleshooting.md +2 -2
  15. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/quat_core.py +6 -6
  16. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/version.py +1 -1
  17. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/pyproject.toml +5 -3
  18. interpolatepy-3.0.1/uv.lock +2142 -0
  19. interpolatepy-3.0.0/.github/workflows/pre-commit.yml +0 -17
  20. interpolatepy-3.0.0/InterpolatePy.egg-info/requires.txt +0 -30
  21. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/.editorconfig +0 -0
  22. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/.gitattributes +0 -0
  23. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/.github/FUNDING.yml +0 -0
  24. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/.pre-commit-config.yaml +0 -0
  25. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/ALGORITHMS.md +0 -0
  26. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/InterpolatePy.egg-info/dependency_links.txt +0 -0
  27. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/InterpolatePy.egg-info/top_level.txt +0 -0
  28. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/LICENSE +0 -0
  29. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/codecov.yml +0 -0
  30. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/CMakeLists.txt +0 -0
  31. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/CMakeLists.txt +0 -0
  32. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/bind_acc_splines.cpp +0 -0
  33. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/bind_bspline.cpp +0 -0
  34. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/bind_cubic_spline.cpp +0 -0
  35. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/bind_motion.cpp +0 -0
  36. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/bind_paths.cpp +0 -0
  37. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/bind_quaternion.cpp +0 -0
  38. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/bind_smoothing_search.cpp +0 -0
  39. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/bind_smoothing_spline.cpp +0 -0
  40. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/bind_tridiagonal.cpp +0 -0
  41. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/bindings/module.cpp +0 -0
  42. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/cmake/InterpolateCppConfig.cmake.in +0 -0
  43. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/cmake/version.hpp.in +0 -0
  44. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/CMakeLists.txt +0 -0
  45. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/bspline_approx_smooth_example.cpp +0 -0
  46. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/bspline_cubic_example.cpp +0 -0
  47. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/bspline_example.cpp +0 -0
  48. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/bspline_interpolator_example.cpp +0 -0
  49. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/concepts_example.cpp +0 -0
  50. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/cubic_smoothing_example.cpp +0 -0
  51. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/cubic_spline_acc1_example.cpp +0 -0
  52. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/cubic_spline_acc2_example.cpp +0 -0
  53. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/cubic_spline_example.cpp +0 -0
  54. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/double_s_example.cpp +0 -0
  55. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/parabolic_linear_example.cpp +0 -0
  56. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/paths_example.cpp +0 -0
  57. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/polynomial_example.cpp +0 -0
  58. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/quaternion_example.cpp +0 -0
  59. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/shared/example_utils.hpp +0 -0
  60. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/examples/trapezoidal_example.cpp +0 -0
  61. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/bspline/approximation_bspline.hpp +0 -0
  62. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/bspline/bspline.hpp +0 -0
  63. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/bspline/bspline_interpolator.hpp +0 -0
  64. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/bspline/bspline_parameters.hpp +0 -0
  65. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/bspline/cubic_bspline_interpolation.hpp +0 -0
  66. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/bspline/smoothing_cubic_bspline.hpp +0 -0
  67. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/concepts.hpp +0 -0
  68. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/config.hpp +0 -0
  69. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/motion/double_s_trajectory.hpp +0 -0
  70. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/motion/motion_types.hpp +0 -0
  71. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/motion/parabolic_blend_trajectory.hpp +0 -0
  72. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/motion/polynomial_trajectory.hpp +0 -0
  73. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/motion/trapezoidal_trajectory.hpp +0 -0
  74. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/path/circular_path.hpp +0 -0
  75. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/path/frenet_frame.hpp +0 -0
  76. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/path/linear_path.hpp +0 -0
  77. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/path/linear_traj.hpp +0 -0
  78. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/quat/log_quaternion_interpolation.hpp +0 -0
  79. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/quat/modified_log_quaternion_interpolation.hpp +0 -0
  80. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/quat/quaternion.hpp +0 -0
  81. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/quat/quaternion_spline.hpp +0 -0
  82. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/quat/squad_c2.hpp +0 -0
  83. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/spline/cubic_smoothing_spline.hpp +0 -0
  84. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/spline/cubic_spline.hpp +0 -0
  85. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/spline/cubic_spline_with_acc1.hpp +0 -0
  86. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/spline/cubic_spline_with_acc2.hpp +0 -0
  87. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/spline/smoothing_search.hpp +0 -0
  88. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/spline/spline_parameters.hpp +0 -0
  89. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/include/interpolatecpp/tridiagonal.hpp +0 -0
  90. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/approximation_bspline.cpp +0 -0
  91. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/bspline.cpp +0 -0
  92. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/bspline_interpolator.cpp +0 -0
  93. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/circular_path.cpp +0 -0
  94. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/cubic_bspline_interpolation.cpp +0 -0
  95. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/cubic_smoothing_spline.cpp +0 -0
  96. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/cubic_spline.cpp +0 -0
  97. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/cubic_spline_with_acc1.cpp +0 -0
  98. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/cubic_spline_with_acc2.cpp +0 -0
  99. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/double_s_trajectory.cpp +0 -0
  100. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/frenet_frame.cpp +0 -0
  101. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/linear_path.cpp +0 -0
  102. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/linear_traj.cpp +0 -0
  103. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/log_quaternion_interpolation.cpp +0 -0
  104. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/modified_log_quaternion_interpolation.cpp +0 -0
  105. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/parabolic_blend_trajectory.cpp +0 -0
  106. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/polynomial_trajectory.cpp +0 -0
  107. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/quaternion.cpp +0 -0
  108. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/quaternion_spline.cpp +0 -0
  109. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/smoothing_cubic_bspline.cpp +0 -0
  110. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/smoothing_search.cpp +0 -0
  111. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/squad_c2.cpp +0 -0
  112. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/src/trapezoidal_trajectory.cpp +0 -0
  113. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/CMakeLists.txt +0 -0
  114. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/shared/test_data.hpp +0 -0
  115. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_bspline.cpp +0 -0
  116. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_bspline_variants.cpp +0 -0
  117. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_concepts.cpp +0 -0
  118. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_cubic_smoothing_spline.cpp +0 -0
  119. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_cubic_spline.cpp +0 -0
  120. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_cubic_spline_with_acc1.cpp +0 -0
  121. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_cubic_spline_with_acc2.cpp +0 -0
  122. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_double_s_trajectory.cpp +0 -0
  123. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_parabolic_blend_trajectory.cpp +0 -0
  124. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_paths.cpp +0 -0
  125. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_polynomial_trajectory.cpp +0 -0
  126. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_quaternion.cpp +0 -0
  127. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_quaternion_spline.cpp +0 -0
  128. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_smoothing_search.cpp +0 -0
  129. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_trapezoidal_trajectory.cpp +0 -0
  130. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/cpp/tests/test_tridiagonal.cpp +0 -0
  131. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/algorithms.md +0 -0
  132. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/api-reference.md +0 -0
  133. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/architecture.md +0 -0
  134. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/assets/extra.css +0 -0
  135. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/assets/extra.js +0 -0
  136. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/changelog.md +0 -0
  137. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/examples.md +0 -0
  138. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/index.md +0 -0
  139. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/quickstart.md +0 -0
  140. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/tutorials/motion-profiles.md +0 -0
  141. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/tutorials/path-planning.md +0 -0
  142. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/tutorials/quaternion-interpolation.md +0 -0
  143. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/tutorials/spline-interpolation.md +0 -0
  144. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/docs/user-guide.md +0 -0
  145. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/b_spline_approx_ex.py +0 -0
  146. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/b_spline_cubic_ex.py +0 -0
  147. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/b_spline_ex.py +0 -0
  148. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/b_spline_interpolate_ex.py +0 -0
  149. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/b_spline_smooth_ex.py +0 -0
  150. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/c_s_smoot_search_ex.py +0 -0
  151. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/c_s_smoothing_ex.py +0 -0
  152. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/c_s_with_acc1_ex.py +0 -0
  153. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/c_s_with_acc2_ex.py +0 -0
  154. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/cubic_spline_ex.py +0 -0
  155. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/double_s_ex.py +0 -0
  156. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/frenet_frame_ex.py +0 -0
  157. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/lin_poly_parabolic_ex.py +0 -0
  158. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/linear_ex.py +0 -0
  159. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/log_quat_ex.py +0 -0
  160. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/log_quat_new_ex.py +0 -0
  161. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/main.py +0 -0
  162. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/polynomials_ex.py +0 -0
  163. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/protocols_ex.py +0 -0
  164. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/quat_visualization_ex.py +0 -0
  165. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/simple_paths_ex.py +0 -0
  166. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/squad_c2_ex.py +0 -0
  167. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/examples/trapezoidal_ex.py +0 -0
  168. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/__init__.py +0 -0
  169. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/_adapters/__init__.py +0 -0
  170. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/_adapters/_bspline.py +0 -0
  171. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/_adapters/_direct.py +0 -0
  172. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/_adapters/_motion.py +0 -0
  173. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/_adapters/_paths.py +0 -0
  174. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/_adapters/_quaternion.py +0 -0
  175. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/_adapters/_spline.py +0 -0
  176. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/_api.py +0 -0
  177. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/_backend.py +0 -0
  178. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/b_spline.py +0 -0
  179. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/b_spline_approx.py +0 -0
  180. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/b_spline_cubic.py +0 -0
  181. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/b_spline_interpolate.py +0 -0
  182. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/b_spline_smooth.py +0 -0
  183. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/c_s_smoot_search.py +0 -0
  184. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/c_s_smoothing.py +0 -0
  185. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/c_s_with_acc1.py +0 -0
  186. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/c_s_with_acc2.py +0 -0
  187. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/cubic_spline.py +0 -0
  188. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/double_s.py +0 -0
  189. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/frenet_frame.py +0 -0
  190. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/lin_poly_parabolic.py +0 -0
  191. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/linear.py +0 -0
  192. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/log_quat.py +0 -0
  193. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/polynomials.py +0 -0
  194. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/protocols.py +0 -0
  195. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/quat_spline.py +0 -0
  196. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/quat_visualization.py +0 -0
  197. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/simple_paths.py +0 -0
  198. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/squad_c2.py +0 -0
  199. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/trapezoidal.py +0 -0
  200. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/interpolatepy/tridiagonal_inv.py +0 -0
  201. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/mkdocs.yml +0 -0
  202. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/setup.cfg +0 -0
  203. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/__init__.py +0 -0
  204. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/inv_test.py +0 -0
  205. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_b_spline.py +0 -0
  206. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_b_spline_variants.py +0 -0
  207. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_backend.py +0 -0
  208. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_cubic_spline.py +0 -0
  209. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_lin_poly_parabolic.py +0 -0
  210. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_linear.py +0 -0
  211. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_log_quat.py +0 -0
  212. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_motion_profiles.py +0 -0
  213. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_path_planning.py +0 -0
  214. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_polynomials.py +0 -0
  215. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_protocols.py +0 -0
  216. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_quat_interp.py +0 -0
  217. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_quat_visualization.py +0 -0
  218. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_smoothing.py +0 -0
  219. {interpolatepy-3.0.0 → interpolatepy-3.0.1}/tests/test_squad_c2.py +0 -0
@@ -35,20 +35,17 @@ jobs:
35
35
  with:
36
36
  fetch-depth: 0
37
37
 
38
- - name: Set up Python
39
- uses: actions/setup-python@v5
38
+ - name: Install uv
39
+ uses: astral-sh/setup-uv@v6
40
40
  with:
41
- python-version: '3.12'
42
- cache: 'pip'
43
-
44
- - name: Install dependencies
45
- run: |
46
- python -m pip install --upgrade pip
47
- pip install -e '.[docs]'
48
-
41
+ enable-cache: true
42
+ cache-dependency-glob: uv.lock
43
+
44
+ - name: Sync dependencies
45
+ run: uv sync --locked --no-default-groups --group docs
46
+
49
47
  - name: Build documentation
50
- run: |
51
- mkdocs build --clean --strict
48
+ run: uv run mkdocs build --clean --strict
52
49
 
53
50
  - name: Setup Pages
54
51
  if: github.ref == 'refs/heads/main' && github.event_name == 'push'
@@ -0,0 +1,28 @@
1
+ name: pre-commit
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches: [ main, master ]
7
+
8
+ jobs:
9
+ pre-commit:
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ - name: Install uv
14
+ uses: astral-sh/setup-uv@v6
15
+ with:
16
+ enable-cache: true
17
+ cache-dependency-glob: uv.lock
18
+ - name: Sync dependencies
19
+ run: uv sync --locked --no-default-groups --group dev
20
+ - name: Cache pre-commit hook environments
21
+ uses: actions/cache@v4
22
+ with:
23
+ path: ~/.cache/pre-commit
24
+ key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }}
25
+ restore-keys: |
26
+ pre-commit-${{ runner.os }}-
27
+ - name: Run pre-commit
28
+ run: uv run pre-commit run --all-files --show-diff-on-failure
@@ -15,18 +15,14 @@ jobs:
15
15
  - uses: actions/checkout@v4
16
16
  with:
17
17
  fetch-depth: 0
18
- - name: Set up Python
19
- uses: actions/setup-python@v5
18
+ - name: Install uv
19
+ uses: astral-sh/setup-uv@v6
20
20
  with:
21
- python-version: '3.12'
22
- cache: 'pip'
23
- - name: Install build tools
24
- run: |
25
- python -m pip install --upgrade pip
26
- pip install build twine
21
+ enable-cache: true
22
+ cache-dependency-glob: uv.lock
27
23
  - name: Build package
28
- run: python -m build
24
+ run: uv build
29
25
  - name: Verify package
30
- run: twine check dist/*
26
+ run: uvx twine check dist/*
31
27
  - name: Publish to PyPI
32
28
  uses: pypa/gh-action-pypi-publish@release/v1
@@ -1,4 +1,3 @@
1
-
2
1
  name: ci-test
3
2
 
4
3
  on:
@@ -14,27 +13,24 @@ jobs:
14
13
  matrix:
15
14
  os: [ubuntu-latest, macos-latest]
16
15
  python-version: ['3.11', '3.12', '3.13']
16
+ env:
17
+ UV_PYTHON: ${{ matrix.python-version }}
17
18
  steps:
18
19
  - uses: actions/checkout@v4
20
+ - name: Install uv
21
+ uses: astral-sh/setup-uv@v6
19
22
  with:
20
- fetch-depth: 0
21
- - name: Set up Python ${{ matrix.python-version }}
22
- uses: actions/setup-python@v5
23
- with:
24
- python-version: ${{ matrix.python-version }}
25
- cache: 'pip'
26
- - name: Install dependencies
27
- run: |
28
- python -m pip install --upgrade pip
29
- pip install -e '.[test]'
23
+ enable-cache: true
24
+ cache-dependency-glob: uv.lock
25
+ - name: Sync dependencies
26
+ run: uv sync --locked --no-default-groups --group test
30
27
  - name: Testing with coverage
31
- run: |
32
- python -m pytest tests --cov=interpolatepy --cov-report=xml --cov-report=term-missing
28
+ run: uv run pytest tests --cov=interpolatepy --cov-report=xml --cov-report=term-missing
33
29
  - name: Upload coverage to Codecov
34
30
  uses: codecov/codecov-action@v5
35
31
  with:
36
32
  token: ${{ secrets.CODECOV_TOKEN }}
37
- file: ./coverage.xml
33
+ files: ./coverage.xml
38
34
  flags: unittests
39
35
  name: codecov-umbrella
40
36
  fail_ci_if_error: false
@@ -99,9 +99,6 @@ target/
99
99
  # Jupyter Notebook
100
100
  .ipynb_checkpoints
101
101
 
102
- # pyenv
103
- .python-version
104
-
105
102
  # celery beat schedule file
106
103
  celerybeat-schedule
107
104
 
@@ -0,0 +1 @@
1
+ 3.12
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: InterpolatePy
3
- Version: 3.0.0
3
+ Version: 3.0.1
4
4
  Summary: A comprehensive Python library for generating smooth trajectories and curves with precise control over position, velocity, acceleration, and jerk profiles
5
5
  Author-email: Giorgio Medico <giorgio.medico11@gmail.com>
6
6
  Maintainer-email: Giorgio Medico <giorgio.medico11@gmail.com>
@@ -34,32 +34,9 @@ Classifier: Programming Language :: C++
34
34
  Requires-Python: >=3.11
35
35
  Description-Content-Type: text/markdown
36
36
  License-File: LICENSE
37
- Requires-Dist: numpy>=2.3.0
38
- Requires-Dist: matplotlib>=3.10.5
39
- Requires-Dist: scipy>=1.16.0
40
- Provides-Extra: test
41
- Requires-Dist: pytest>=8.4.0; extra == "test"
42
- Requires-Dist: pytest-cov>=4.1.0; extra == "test"
43
- Requires-Dist: codecov>=2.1.13; extra == "test"
44
- Requires-Dist: pytest-benchmark>=4.0.0; extra == "test"
45
- Requires-Dist: pre-commit>=4.2.0; extra == "test"
46
- Provides-Extra: dev
47
- Requires-Dist: ruff>=0.12.8; extra == "dev"
48
- Requires-Dist: mypy>=1.17.0; extra == "dev"
49
- Requires-Dist: pre-commit>=4.2.0; extra == "dev"
50
- Requires-Dist: pyright>=1.1.400; extra == "dev"
51
- Requires-Dist: build>=1.0.3; extra == "dev"
52
- Requires-Dist: twine>=4.0.2; extra == "dev"
53
- Provides-Extra: docs
54
- Requires-Dist: mkdocs>=1.5.3; extra == "docs"
55
- Requires-Dist: mkdocs-material>=9.4.8; extra == "docs"
56
- Requires-Dist: pymdown-extensions>=10.3.0; extra == "docs"
57
- Requires-Dist: mkdocs-autorefs>=0.5.0; extra == "docs"
58
- Requires-Dist: mkdocstrings>=0.23.0; extra == "docs"
59
- Requires-Dist: mkdocstrings-python>=1.7.3; extra == "docs"
60
- Requires-Dist: Pygments>=2.16.1; extra == "docs"
61
- Provides-Extra: all
62
- Requires-Dist: interpolatepy[dev,docs,test]; extra == "all"
37
+ Requires-Dist: numpy>=1.26
38
+ Requires-Dist: matplotlib>=3.6
39
+ Requires-Dist: scipy>=1.11
63
40
  Dynamic: license-file
64
41
 
65
42
  # InterpolatePy
@@ -92,11 +69,15 @@ pip install InterpolatePy
92
69
  <details>
93
70
  <summary><strong>Development Installation</strong></summary>
94
71
 
72
+ This project uses [uv](https://docs.astral.sh/uv/) for dependency and environment management.
73
+
95
74
  ```bash
96
75
  git clone https://github.com/GiorgioMedico/InterpolatePy.git
97
76
  cd InterpolatePy
98
- pip install -e '.[all]' # Includes testing and development tools
77
+ uv sync # creates .venv with the default dev + test groups
99
78
  ```
79
+
80
+ To include the docs group as well: `uv sync --all-groups`.
100
81
  </details>
101
82
 
102
83
  ## Quick Start
@@ -317,22 +298,22 @@ Set `INTERPOLATEPY_NO_CPP=1` to force pure-Python mode.
317
298
  ```bash
318
299
  git clone https://github.com/GiorgioMedico/InterpolatePy.git
319
300
  cd InterpolatePy
320
- pip install -e '.[all]'
321
- pre-commit install
301
+ uv sync # creates .venv with dev + test groups
302
+ uv run pre-commit install
322
303
 
323
304
  # Run tests
324
- python -m pytest tests/
305
+ uv run pytest tests/
325
306
 
326
307
  # Run tests with coverage
327
- python -m pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
308
+ uv run pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
328
309
 
329
310
  # Code quality
330
- ruff format interpolatepy/
331
- ruff check interpolatepy/
332
- mypy interpolatepy/
311
+ uv run ruff format interpolatepy/
312
+ uv run ruff check interpolatepy/
313
+ uv run mypy interpolatepy/
333
314
 
334
315
  # Run all pre-commit hooks
335
- pre-commit run --all-files
316
+ uv run pre-commit run --all-files
336
317
  ```
337
318
  </details>
338
319
 
@@ -343,9 +324,9 @@ pre-commit run --all-files
343
324
  Contributions welcome! Please:
344
325
 
345
326
  1. Fork the repo and create a feature branch
346
- 2. Install dev dependencies: `pip install -e '.[all]'`
327
+ 2. Install dev dependencies: `uv sync`
347
328
  3. Follow existing patterns and add tests
348
- 4. Run `pre-commit run --all-files` before submitting
329
+ 4. Run `uv run pre-commit run --all-files` before submitting
349
330
  5. Open a pull request with clear description
350
331
 
351
332
  For major changes, open an issue first to discuss the approach.
@@ -2,12 +2,14 @@
2
2
  .gitattributes
3
3
  .gitignore
4
4
  .pre-commit-config.yaml
5
+ .python-version
5
6
  ALGORITHMS.md
6
7
  LICENSE
7
8
  README.md
8
9
  codecov.yml
9
10
  mkdocs.yml
10
11
  pyproject.toml
12
+ uv.lock
11
13
  .github/FUNDING.yml
12
14
  .github/workflows/docs.yml
13
15
  .github/workflows/pre-commit.yml
@@ -0,0 +1,3 @@
1
+ numpy>=1.26
2
+ matplotlib>=3.6
3
+ scipy>=1.11
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: InterpolatePy
3
- Version: 3.0.0
3
+ Version: 3.0.1
4
4
  Summary: A comprehensive Python library for generating smooth trajectories and curves with precise control over position, velocity, acceleration, and jerk profiles
5
5
  Author-email: Giorgio Medico <giorgio.medico11@gmail.com>
6
6
  Maintainer-email: Giorgio Medico <giorgio.medico11@gmail.com>
@@ -34,32 +34,9 @@ Classifier: Programming Language :: C++
34
34
  Requires-Python: >=3.11
35
35
  Description-Content-Type: text/markdown
36
36
  License-File: LICENSE
37
- Requires-Dist: numpy>=2.3.0
38
- Requires-Dist: matplotlib>=3.10.5
39
- Requires-Dist: scipy>=1.16.0
40
- Provides-Extra: test
41
- Requires-Dist: pytest>=8.4.0; extra == "test"
42
- Requires-Dist: pytest-cov>=4.1.0; extra == "test"
43
- Requires-Dist: codecov>=2.1.13; extra == "test"
44
- Requires-Dist: pytest-benchmark>=4.0.0; extra == "test"
45
- Requires-Dist: pre-commit>=4.2.0; extra == "test"
46
- Provides-Extra: dev
47
- Requires-Dist: ruff>=0.12.8; extra == "dev"
48
- Requires-Dist: mypy>=1.17.0; extra == "dev"
49
- Requires-Dist: pre-commit>=4.2.0; extra == "dev"
50
- Requires-Dist: pyright>=1.1.400; extra == "dev"
51
- Requires-Dist: build>=1.0.3; extra == "dev"
52
- Requires-Dist: twine>=4.0.2; extra == "dev"
53
- Provides-Extra: docs
54
- Requires-Dist: mkdocs>=1.5.3; extra == "docs"
55
- Requires-Dist: mkdocs-material>=9.4.8; extra == "docs"
56
- Requires-Dist: pymdown-extensions>=10.3.0; extra == "docs"
57
- Requires-Dist: mkdocs-autorefs>=0.5.0; extra == "docs"
58
- Requires-Dist: mkdocstrings>=0.23.0; extra == "docs"
59
- Requires-Dist: mkdocstrings-python>=1.7.3; extra == "docs"
60
- Requires-Dist: Pygments>=2.16.1; extra == "docs"
61
- Provides-Extra: all
62
- Requires-Dist: interpolatepy[dev,docs,test]; extra == "all"
37
+ Requires-Dist: numpy>=1.26
38
+ Requires-Dist: matplotlib>=3.6
39
+ Requires-Dist: scipy>=1.11
63
40
  Dynamic: license-file
64
41
 
65
42
  # InterpolatePy
@@ -92,11 +69,15 @@ pip install InterpolatePy
92
69
  <details>
93
70
  <summary><strong>Development Installation</strong></summary>
94
71
 
72
+ This project uses [uv](https://docs.astral.sh/uv/) for dependency and environment management.
73
+
95
74
  ```bash
96
75
  git clone https://github.com/GiorgioMedico/InterpolatePy.git
97
76
  cd InterpolatePy
98
- pip install -e '.[all]' # Includes testing and development tools
77
+ uv sync # creates .venv with the default dev + test groups
99
78
  ```
79
+
80
+ To include the docs group as well: `uv sync --all-groups`.
100
81
  </details>
101
82
 
102
83
  ## Quick Start
@@ -317,22 +298,22 @@ Set `INTERPOLATEPY_NO_CPP=1` to force pure-Python mode.
317
298
  ```bash
318
299
  git clone https://github.com/GiorgioMedico/InterpolatePy.git
319
300
  cd InterpolatePy
320
- pip install -e '.[all]'
321
- pre-commit install
301
+ uv sync # creates .venv with dev + test groups
302
+ uv run pre-commit install
322
303
 
323
304
  # Run tests
324
- python -m pytest tests/
305
+ uv run pytest tests/
325
306
 
326
307
  # Run tests with coverage
327
- python -m pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
308
+ uv run pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
328
309
 
329
310
  # Code quality
330
- ruff format interpolatepy/
331
- ruff check interpolatepy/
332
- mypy interpolatepy/
311
+ uv run ruff format interpolatepy/
312
+ uv run ruff check interpolatepy/
313
+ uv run mypy interpolatepy/
333
314
 
334
315
  # Run all pre-commit hooks
335
- pre-commit run --all-files
316
+ uv run pre-commit run --all-files
336
317
  ```
337
318
  </details>
338
319
 
@@ -343,9 +324,9 @@ pre-commit run --all-files
343
324
  Contributions welcome! Please:
344
325
 
345
326
  1. Fork the repo and create a feature branch
346
- 2. Install dev dependencies: `pip install -e '.[all]'`
327
+ 2. Install dev dependencies: `uv sync`
347
328
  3. Follow existing patterns and add tests
348
- 4. Run `pre-commit run --all-files` before submitting
329
+ 4. Run `uv run pre-commit run --all-files` before submitting
349
330
  5. Open a pull request with clear description
350
331
 
351
332
  For major changes, open an issue first to discuss the approach.
@@ -28,11 +28,15 @@ pip install InterpolatePy
28
28
  <details>
29
29
  <summary><strong>Development Installation</strong></summary>
30
30
 
31
+ This project uses [uv](https://docs.astral.sh/uv/) for dependency and environment management.
32
+
31
33
  ```bash
32
34
  git clone https://github.com/GiorgioMedico/InterpolatePy.git
33
35
  cd InterpolatePy
34
- pip install -e '.[all]' # Includes testing and development tools
36
+ uv sync # creates .venv with the default dev + test groups
35
37
  ```
38
+
39
+ To include the docs group as well: `uv sync --all-groups`.
36
40
  </details>
37
41
 
38
42
  ## Quick Start
@@ -253,22 +257,22 @@ Set `INTERPOLATEPY_NO_CPP=1` to force pure-Python mode.
253
257
  ```bash
254
258
  git clone https://github.com/GiorgioMedico/InterpolatePy.git
255
259
  cd InterpolatePy
256
- pip install -e '.[all]'
257
- pre-commit install
260
+ uv sync # creates .venv with dev + test groups
261
+ uv run pre-commit install
258
262
 
259
263
  # Run tests
260
- python -m pytest tests/
264
+ uv run pytest tests/
261
265
 
262
266
  # Run tests with coverage
263
- python -m pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
267
+ uv run pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
264
268
 
265
269
  # Code quality
266
- ruff format interpolatepy/
267
- ruff check interpolatepy/
268
- mypy interpolatepy/
270
+ uv run ruff format interpolatepy/
271
+ uv run ruff check interpolatepy/
272
+ uv run mypy interpolatepy/
269
273
 
270
274
  # Run all pre-commit hooks
271
- pre-commit run --all-files
275
+ uv run pre-commit run --all-files
272
276
  ```
273
277
  </details>
274
278
 
@@ -279,9 +283,9 @@ pre-commit run --all-files
279
283
  Contributions welcome! Please:
280
284
 
281
285
  1. Fork the repo and create a feature branch
282
- 2. Install dev dependencies: `pip install -e '.[all]'`
286
+ 2. Install dev dependencies: `uv sync`
283
287
  3. Follow existing patterns and add tests
284
- 4. Run `pre-commit run --all-files` before submitting
288
+ 4. Run `uv run pre-commit run --all-files` before submitting
285
289
  5. Open a pull request with clear description
286
290
 
287
291
  For major changes, open an issue first to discuss the approach.
@@ -22,26 +22,22 @@ Thank you for your interest in contributing to InterpolatePy! This guide will he
22
22
  cd InterpolatePy
23
23
  ```
24
24
 
25
- 2. **Create a virtual environment**:
26
- ```bash
27
- python -m venv venv
28
- source venv/bin/activate # On Windows: venv\Scripts\activate
29
- ```
25
+ 2. **Install [uv](https://docs.astral.sh/uv/)** (project uses uv for environment management).
30
26
 
31
27
  3. **Install development dependencies**:
32
28
  ```bash
33
- pip install -e '.[all]' # Installs package + dev dependencies
29
+ uv sync # creates .venv with the default dev + test groups
34
30
  ```
35
31
 
36
32
  4. **Install pre-commit hooks**:
37
33
  ```bash
38
- pre-commit install
34
+ uv run pre-commit install
39
35
  ```
40
36
 
41
37
  5. **Verify installation**:
42
38
  ```bash
43
- python -c "import interpolatepy; print(interpolatepy.__version__)"
44
- pytest tests/ -v
39
+ uv run python -c "import interpolatepy; print(interpolatepy.__version__)"
40
+ uv run pytest tests/ -v
45
41
  ```
46
42
 
47
43
  ### Project Structure
@@ -104,32 +100,32 @@ Follow our [coding standards](#coding-standards) and ensure your changes:
104
100
 
105
101
  ```bash
106
102
  # Run all tests
107
- pytest tests/
103
+ uv run pytest tests/
108
104
 
109
105
  # Run specific test file
110
- pytest tests/test_cubic_spline.py -v
106
+ uv run pytest tests/test_cubic_spline.py -v
111
107
 
112
108
  # Run with coverage
113
- pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
109
+ uv run pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
114
110
 
115
111
  # Run benchmarks
116
- pytest tests/ -k "benchmark" --benchmark-only
112
+ uv run pytest tests/ -k "benchmark" --benchmark-only
117
113
  ```
118
114
 
119
115
  ### 4. Check Code Quality
120
116
 
121
117
  ```bash
122
118
  # Format code
123
- ruff format interpolatepy/
119
+ uv run ruff format interpolatepy/
124
120
 
125
121
  # Check linting
126
- ruff check interpolatepy/
122
+ uv run ruff check interpolatepy/
127
123
 
128
124
  # Type checking
129
- mypy interpolatepy/
125
+ uv run mypy interpolatepy/
130
126
 
131
127
  # Run pre-commit checks
132
- pre-commit run --all-files
128
+ uv run pre-commit run --all-files
133
129
  ```
134
130
 
135
131
  ### 5. Commit Changes
@@ -66,39 +66,44 @@ For contributing to InterpolatePy or accessing the latest features:
66
66
 
67
67
  ### Clone and Install
68
68
 
69
+ InterpolatePy uses [uv](https://docs.astral.sh/uv/) for development. Install uv first, then:
70
+
69
71
  ```bash
70
72
  git clone https://github.com/GiorgioMedico/InterpolatePy.git
71
73
  cd InterpolatePy
72
- pip install -e '.[all]' # Includes testing and development tools
74
+ uv sync # creates .venv with the default dev + test groups
73
75
  ```
74
76
 
75
- ### With Development Dependencies
77
+ ### Selecting Dependency Groups
76
78
 
77
79
  ```bash
78
- # Install with all optional dependencies
79
- pip install -e '.[all]'
80
+ # Default: dev + test groups
81
+ uv sync
82
+
83
+ # Include the docs group as well
84
+ uv sync --all-groups
80
85
 
81
- # Or install specific groups
82
- pip install -e '.[test]' # Testing tools
83
- pip install -e '.[dev]' # Development tools
86
+ # Or pick a specific group
87
+ uv sync --group test
88
+ uv sync --group docs
84
89
  ```
85
90
 
86
91
  ### Development Tools Setup
87
92
 
88
93
  ```bash
89
94
  # Install pre-commit hooks
90
- pre-commit install
95
+ uv run pre-commit install
91
96
 
92
97
  # Run code quality checks
93
- ruff format interpolatepy/
94
- ruff check interpolatepy/
95
- mypy interpolatepy/
98
+ uv run ruff format interpolatepy/
99
+ uv run ruff check interpolatepy/
100
+ uv run mypy interpolatepy/
96
101
 
97
102
  # Run tests
98
- python -m pytest tests/
103
+ uv run pytest tests/
99
104
 
100
105
  # Run tests with coverage
101
- python -m pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
106
+ uv run pytest tests/ --cov=interpolatepy --cov-report=html --cov-report=term
102
107
  ```
103
108
 
104
109
  ## C++ Backend (Optional)
@@ -18,8 +18,8 @@ ModuleNotFoundError: No module named 'interpolatepy'
18
18
  # Install from PyPI
19
19
  pip install interpolatepy
20
20
 
21
- # Or install from source for development
22
- pip install -e .
21
+ # Or install from source for development (uses uv)
22
+ uv sync
23
23
  ```
24
24
 
25
25
  #### Problem: Specific Class Import Failed
@@ -276,9 +276,9 @@ class Quaternion:
276
276
 
277
277
  For unit q = [cos(θ), v*sin(θ)], log(q) = [0, v*θ]
278
278
  """
279
- # Clamp s to avoid numerical issues with acos
279
+ # Clamp s to avoid numerical issues with arccos
280
280
  s_clamped = max(-1.0, min(1.0, abs(self.s_)))
281
- theta = np.acos(s_clamped)
281
+ theta = np.arccos(s_clamped)
282
282
 
283
283
  if theta < self.EPSILON:
284
284
  # For small angles, return vector part directly to avoid division by zero
@@ -506,16 +506,16 @@ class Quaternion:
506
506
  # Roll (x-axis rotation)
507
507
  sinr_cosp = 2 * (s * v1 + v2 * v3)
508
508
  cosr_cosp = 1 - 2 * (v1 * v1 + v2 * v2)
509
- roll = np.atan2(sinr_cosp, cosr_cosp)
509
+ roll = np.arctan2(sinr_cosp, cosr_cosp)
510
510
 
511
511
  # Pitch (y-axis rotation)
512
512
  sinp = 2 * (s * v2 - v3 * v1)
513
- pitch = np.copysign(np.pi / 2, sinp) if abs(sinp) >= 1 else np.asin(sinp)
513
+ pitch = np.copysign(np.pi / 2, sinp) if abs(sinp) >= 1 else np.arcsin(sinp)
514
514
 
515
515
  # Yaw (z-axis rotation)
516
516
  siny_cosp = 2 * (s * v3 + v1 * v2)
517
517
  cosy_cosp = 1 - 2 * (v2 * v2 + v3 * v3)
518
- yaw = np.atan2(siny_cosp, cosy_cosp)
518
+ yaw = np.arctan2(siny_cosp, cosy_cosp)
519
519
 
520
520
  return roll, pitch, yaw
521
521
 
@@ -524,7 +524,7 @@ class Quaternion:
524
524
  if abs(self.s_) >= 1.0:
525
525
  return np.array([1.0, 0.0, 0.0]), 0.0
526
526
 
527
- angle = 2.0 * np.acos(abs(self.s_))
527
+ angle = 2.0 * np.arccos(abs(self.s_))
528
528
  sin_half_angle = np.sqrt(1.0 - self.s_**2)
529
529
 
530
530
  axis = np.array([1.0, 0.0, 0.0]) if sin_half_angle < self.EPSILON else self.v_ / sin_half_angle
@@ -2,4 +2,4 @@
2
2
  __version__ file.
3
3
  """
4
4
 
5
- __version__ = "3.0.0"
5
+ __version__ = "3.0.1"
@@ -44,14 +44,14 @@ classifiers = [
44
44
  "Topic :: Software Development :: Libraries :: Python Modules",
45
45
  "Programming Language :: C++",
46
46
  ]
47
- dependencies = ["numpy>=2.3.0", "matplotlib>=3.10.5", "scipy>=1.16.0"]
47
+ dependencies = ["numpy>=1.26", "matplotlib>=3.6", "scipy>=1.11"]
48
48
  dynamic = ["version"]
49
49
 
50
50
  [project.urls]
51
51
  "Homepage" = "https://github.com/GiorgioMedico/InterpolatePy"
52
52
  "Bug Tracker" = "https://github.com/GiorgioMedico/InterpolatePy/issues"
53
53
 
54
- [project.optional-dependencies]
54
+ [dependency-groups]
55
55
  test = [
56
56
  "pytest>=8.4.0",
57
57
  "pytest-cov>=4.1.0",
@@ -76,7 +76,9 @@ docs = [
76
76
  "mkdocstrings-python>=1.7.3",
77
77
  "Pygments>=2.16.1",
78
78
  ]
79
- all = ["interpolatepy[test,dev,docs]"]
79
+
80
+ [tool.uv]
81
+ default-groups = ["dev", "test"]
80
82
 
81
83
  [tool.setuptools]
82
84
  platforms = ["unix", "linux", "osx", "cygwin", "win32"]