vector 1.6.2__tar.gz → 1.7.0__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 (310) hide show
  1. {vector-1.6.2 → vector-1.7.0}/.all-contributorsrc +13 -1
  2. vector-1.7.0/.github/codecov.yml +3 -0
  3. {vector-1.6.2 → vector-1.7.0}/.github/workflows/cd.yml +3 -3
  4. {vector-1.6.2 → vector-1.7.0}/.github/workflows/ci.yml +12 -29
  5. {vector-1.6.2 → vector-1.7.0}/.github/workflows/notebooks.yml +2 -2
  6. {vector-1.6.2 → vector-1.7.0}/.gitignore +3 -0
  7. {vector-1.6.2 → vector-1.7.0}/.pre-commit-config.yaml +7 -8
  8. vector-1.7.0/.readthedocs.yml +27 -0
  9. vector-1.7.0/CITATION.cff +56 -0
  10. {vector-1.6.2/.github → vector-1.7.0}/CONTRIBUTING.md +25 -14
  11. {vector-1.6.2 → vector-1.7.0}/PKG-INFO +62 -56
  12. {vector-1.6.2 → vector-1.7.0}/README.md +55 -19
  13. vector-1.7.0/docs/_static/css/awkward_output.css +9 -0
  14. {vector-1.6.2 → vector-1.7.0}/docs/conf.py +3 -1
  15. {vector-1.6.2 → vector-1.7.0}/docs/index.md +42 -6
  16. {vector-1.6.2 → vector-1.7.0}/docs/src/awkward.ipynb +71 -91
  17. vector-1.7.0/docs/src/pytree.ipynb +292 -0
  18. vector-1.7.0/docs/src/pytree_api.md +5 -0
  19. {vector-1.6.2 → vector-1.7.0}/docs/src/talks.md +8 -2
  20. {vector-1.6.2 → vector-1.7.0}/environment.yml +1 -1
  21. {vector-1.6.2 → vector-1.7.0}/noxfile.py +24 -17
  22. {vector-1.6.2 → vector-1.7.0}/pyproject.toml +72 -40
  23. {vector-1.6.2 → vector-1.7.0}/src/vector/__init__.py +3 -2
  24. {vector-1.6.2/tests → vector-1.7.0/src/vector/_compute}/__init__.py +1 -1
  25. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/Et.py +1 -1
  26. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/Et2.py +1 -1
  27. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/Mt.py +1 -1
  28. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/Mt2.py +1 -1
  29. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/__init__.py +1 -1
  30. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/add.py +1 -1
  31. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/beta.py +1 -1
  32. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/boostX_beta.py +1 -1
  33. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/boostX_gamma.py +1 -1
  34. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/boostY_beta.py +1 -1
  35. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/boostY_gamma.py +1 -1
  36. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/boostZ_beta.py +1 -1
  37. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/boostZ_gamma.py +1 -1
  38. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/boost_beta3.py +1 -1
  39. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/boost_p4.py +1 -1
  40. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/deltaRapidityPhi.py +1 -1
  41. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/deltaRapidityPhi2.py +1 -1
  42. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/dot.py +1 -1
  43. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/equal.py +1 -1
  44. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/gamma.py +1 -1
  45. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/is_lightlike.py +1 -1
  46. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/is_spacelike.py +1 -1
  47. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/is_timelike.py +1 -1
  48. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/isclose.py +1 -1
  49. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/not_equal.py +1 -1
  50. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/rapidity.py +1 -1
  51. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/scale.py +1 -1
  52. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/subtract.py +1 -1
  53. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/t.py +1 -1
  54. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/t2.py +1 -1
  55. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/tau.py +1 -1
  56. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/tau2.py +1 -1
  57. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/to_beta3.py +1 -1
  58. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/transform4D.py +1 -1
  59. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/lorentz/unit.py +1 -1
  60. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/__init__.py +1 -1
  61. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/add.py +1 -1
  62. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/deltaphi.py +1 -1
  63. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/dot.py +1 -1
  64. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/equal.py +1 -1
  65. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/is_antiparallel.py +1 -1
  66. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/is_parallel.py +1 -1
  67. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/is_perpendicular.py +1 -1
  68. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/isclose.py +1 -1
  69. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/not_equal.py +1 -1
  70. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/phi.py +1 -1
  71. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/rho.py +1 -1
  72. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/rho2.py +1 -1
  73. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/rotateZ.py +1 -1
  74. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/scale.py +1 -1
  75. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/subtract.py +1 -1
  76. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/transform2D.py +1 -1
  77. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/unit.py +1 -1
  78. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/x.py +1 -1
  79. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/planar/y.py +1 -1
  80. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/__init__.py +1 -1
  81. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/add.py +1 -1
  82. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/costheta.py +1 -1
  83. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/cottheta.py +1 -1
  84. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/cross.py +1 -1
  85. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/deltaR.py +1 -1
  86. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/deltaR2.py +1 -1
  87. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/deltaangle.py +1 -1
  88. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/deltaeta.py +1 -1
  89. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/dot.py +1 -1
  90. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/equal.py +1 -1
  91. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/eta.py +16 -13
  92. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/is_antiparallel.py +1 -1
  93. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/is_parallel.py +1 -1
  94. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/is_perpendicular.py +1 -1
  95. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/isclose.py +1 -1
  96. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/mag.py +1 -1
  97. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/mag2.py +1 -1
  98. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/not_equal.py +1 -1
  99. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/rotateX.py +1 -1
  100. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/rotateY.py +1 -1
  101. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/rotate_axis.py +1 -1
  102. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/rotate_euler.py +1 -1
  103. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/rotate_quaternion.py +1 -1
  104. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/scale.py +1 -1
  105. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/subtract.py +1 -1
  106. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/theta.py +1 -1
  107. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/transform3D.py +1 -1
  108. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/unit.py +1 -1
  109. {vector-1.6.2 → vector-1.7.0}/src/vector/_compute/spatial/z.py +1 -1
  110. {vector-1.6.2 → vector-1.7.0}/src/vector/_methods.py +1 -1
  111. vector-1.7.0/src/vector/_pytree.py +218 -0
  112. {vector-1.6.2 → vector-1.7.0}/src/vector/_typeutils.py +1 -1
  113. {vector-1.6.2 → vector-1.7.0}/src/vector/_version.py +16 -3
  114. {vector-1.6.2 → vector-1.7.0}/src/vector/backends/__init__.py +1 -1
  115. {vector-1.6.2 → vector-1.7.0}/src/vector/backends/_numba.py +1 -1
  116. {vector-1.6.2 → vector-1.7.0}/src/vector/backends/_numba_object.py +19 -33
  117. {vector-1.6.2 → vector-1.7.0}/src/vector/backends/awkward.py +5 -6
  118. {vector-1.6.2 → vector-1.7.0}/src/vector/backends/awkward_constructors.py +8 -9
  119. {vector-1.6.2 → vector-1.7.0}/src/vector/backends/numba_numpy.py +1 -1
  120. {vector-1.6.2 → vector-1.7.0}/src/vector/backends/numpy.py +19 -37
  121. {vector-1.6.2 → vector-1.7.0}/src/vector/backends/object.py +53 -12
  122. {vector-1.6.2 → vector-1.7.0}/src/vector/backends/sympy.py +102 -4
  123. {vector-1.6.2/src/vector/_compute → vector-1.7.0/tests}/__init__.py +1 -1
  124. {vector-1.6.2 → vector-1.7.0}/tests/backends/__init__.py +1 -1
  125. {vector-1.6.2 → vector-1.7.0}/tests/backends/test_awkward.py +1 -1
  126. {vector-1.6.2 → vector-1.7.0}/tests/backends/test_awkward_numba.py +1 -1
  127. {vector-1.6.2 → vector-1.7.0}/tests/backends/test_dask_awkward.py +1 -1
  128. {vector-1.6.2 → vector-1.7.0}/tests/backends/test_numba_numpy.py +1 -1
  129. {vector-1.6.2 → vector-1.7.0}/tests/backends/test_numba_object.py +1 -1
  130. {vector-1.6.2 → vector-1.7.0}/tests/backends/test_numpy.py +1 -1
  131. vector-1.7.0/tests/backends/test_object.py +453 -0
  132. {vector-1.6.2 → vector-1.7.0}/tests/backends/test_operators.py +1 -1
  133. {vector-1.6.2 → vector-1.7.0}/tests/backends/test_sympy.py +1 -1
  134. {vector-1.6.2 → vector-1.7.0}/tests/compute/__init__.py +1 -1
  135. vector-1.7.0/tests/compute/lorentz/__init__.py +4 -0
  136. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_Et.py +1 -1
  137. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_Et2.py +1 -1
  138. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_Mt.py +1 -1
  139. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_Mt2.py +1 -1
  140. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_beta.py +1 -1
  141. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_boostX_beta.py +1 -1
  142. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_boostX_gamma.py +1 -1
  143. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_boostY_beta.py +1 -1
  144. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_boostY_gamma.py +1 -1
  145. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_boostZ_beta.py +1 -1
  146. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_boostZ_gamma.py +1 -1
  147. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_boost_beta3.py +1 -1
  148. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_boost_p4.py +1 -1
  149. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_deltaRapidityPhi.py +1 -1
  150. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_deltaRapidityPhi2.py +1 -1
  151. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_gamma.py +1 -1
  152. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_is_lightlike.py +1 -1
  153. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_rapidity.py +1 -1
  154. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_t.py +1 -1
  155. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_t2.py +1 -1
  156. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_tau.py +1 -1
  157. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_tau2.py +1 -1
  158. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_to_beta3.py +1 -1
  159. vector-1.7.0/tests/compute/planar/__init__.py +4 -0
  160. {vector-1.6.2 → vector-1.7.0}/tests/compute/planar/test_deltaphi.py +1 -1
  161. {vector-1.6.2 → vector-1.7.0}/tests/compute/planar/test_phi.py +1 -1
  162. {vector-1.6.2 → vector-1.7.0}/tests/compute/planar/test_rho.py +1 -1
  163. {vector-1.6.2 → vector-1.7.0}/tests/compute/planar/test_rho2.py +1 -1
  164. {vector-1.6.2 → vector-1.7.0}/tests/compute/planar/test_rotateZ.py +1 -1
  165. {vector-1.6.2 → vector-1.7.0}/tests/compute/planar/test_x.py +1 -1
  166. {vector-1.6.2 → vector-1.7.0}/tests/compute/planar/test_y.py +1 -1
  167. vector-1.7.0/tests/compute/spatial/__init__.py +4 -0
  168. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_costheta.py +1 -1
  169. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_cottheta.py +1 -1
  170. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_cross.py +1 -1
  171. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_deltaR.py +1 -1
  172. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_deltaR2.py +1 -1
  173. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_deltaangle.py +1 -1
  174. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_deltaeta.py +1 -1
  175. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_eta.py +1 -1
  176. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_mag.py +1 -1
  177. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_mag2.py +1 -1
  178. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_rotateX.py +1 -1
  179. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_rotateY.py +1 -1
  180. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_rotate_axis.py +1 -1
  181. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_rotate_euler.py +1 -1
  182. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_rotate_quaternion.py +1 -1
  183. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_theta.py +1 -1
  184. {vector-1.6.2 → vector-1.7.0}/tests/compute/spatial/test_z.py +1 -1
  185. vector-1.7.0/tests/compute/sympy/lorentz/__init__.py +4 -0
  186. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_Et.py +1 -1
  187. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_Et2.py +1 -1
  188. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_Mt.py +1 -1
  189. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_Mt2.py +1 -1
  190. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_boostX_beta.py +1 -1
  191. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_boostX_gamma.py +1 -1
  192. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_boostY_beta.py +1 -1
  193. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_boostY_gamma.py +1 -1
  194. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_boostZ_beta.py +1 -1
  195. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_boostZ_gamma.py +1 -1
  196. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_boost_beta3.py +1 -1
  197. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_boost_p4.py +1 -1
  198. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_deltaRapidityPhi.py +8 -8
  199. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_deltaRapidityPhi2.py +8 -8
  200. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_gamma.py +7 -14
  201. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_is_lightlike.py +1 -1
  202. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_rapidity.py +5 -8
  203. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_t.py +4 -8
  204. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_t2.py +6 -8
  205. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_tau.py +3 -4
  206. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_tau2.py +3 -4
  207. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_to_beta3.py +10 -14
  208. vector-1.7.0/tests/compute/sympy/planar/__init__.py +4 -0
  209. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/planar/test_deltaphi.py +1 -1
  210. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/planar/test_phi.py +1 -1
  211. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/planar/test_rho.py +1 -1
  212. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/planar/test_rho2.py +1 -1
  213. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/planar/test_rotateZ.py +1 -1
  214. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/planar/test_x.py +1 -1
  215. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/planar/test_y.py +1 -1
  216. vector-1.7.0/tests/compute/sympy/spatial/__init__.py +4 -0
  217. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_costheta.py +1 -1
  218. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_cottheta.py +1 -1
  219. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_cross.py +1 -1
  220. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_deltaR.py +1 -1
  221. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_deltaR2.py +1 -1
  222. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_deltaangle.py +1 -1
  223. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_deltaeta.py +1 -1
  224. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_eta.py +1 -1
  225. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_mag.py +1 -1
  226. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_mag2.py +1 -1
  227. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_rotateX.py +1 -1
  228. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_rotateY.py +1 -1
  229. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_rotate_axis.py +1 -1
  230. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_rotate_euler.py +1 -1
  231. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_rotate_quaternion.py +1 -1
  232. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_theta.py +1 -1
  233. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/spatial/test_z.py +1 -1
  234. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_add.py +1 -1
  235. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_conversions.py +1 -1
  236. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_dot.py +1 -1
  237. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_equal.py +1 -1
  238. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_is_antiparallel.py +1 -1
  239. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_is_parallel.py +1 -1
  240. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_is_perpendicular.py +1 -1
  241. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_not_equal.py +1 -1
  242. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_scale.py +1 -1
  243. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_subtract.py +1 -1
  244. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/test_unit.py +1 -1
  245. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_add.py +1 -1
  246. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_conversions.py +1 -1
  247. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_dot.py +1 -1
  248. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_equal.py +1 -1
  249. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_is_antiparallel.py +1 -1
  250. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_is_parallel.py +1 -1
  251. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_is_perpendicular.py +1 -1
  252. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_isclose.py +1 -1
  253. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_not_equal.py +1 -1
  254. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_scale.py +1 -1
  255. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_subtract.py +1 -1
  256. {vector-1.6.2 → vector-1.7.0}/tests/compute/test_unit.py +1 -1
  257. {vector-1.6.2 → vector-1.7.0}/tests/test_issues.py +16 -1
  258. {vector-1.6.2 → vector-1.7.0}/tests/test_methods.py +1 -1
  259. vector-1.7.0/tests/test_pytree.py +173 -0
  260. vector-1.6.2/.github/codecov.yml +0 -3
  261. vector-1.6.2/.readthedocs.yml +0 -24
  262. vector-1.6.2/CITATION.cff +0 -26
  263. vector-1.6.2/src/vector/_lib.py +0 -95
  264. vector-1.6.2/tests/backends/test_object.py +0 -222
  265. vector-1.6.2/tests/compute/lorentz/__init__.py +0 -4
  266. vector-1.6.2/tests/compute/planar/__init__.py +0 -4
  267. vector-1.6.2/tests/compute/spatial/__init__.py +0 -4
  268. vector-1.6.2/tests/compute/sympy/lorentz/__init__.py +0 -4
  269. vector-1.6.2/tests/compute/sympy/planar/__init__.py +0 -4
  270. vector-1.6.2/tests/compute/sympy/spatial/__init__.py +0 -4
  271. vector-1.6.2/tests/test_compute_features.py +0 -380
  272. {vector-1.6.2 → vector-1.7.0}/.git_archival.txt +0 -0
  273. {vector-1.6.2 → vector-1.7.0}/.gitattributes +0 -0
  274. {vector-1.6.2 → vector-1.7.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  275. {vector-1.6.2 → vector-1.7.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  276. {vector-1.6.2 → vector-1.7.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  277. {vector-1.6.2 → vector-1.7.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  278. {vector-1.6.2 → vector-1.7.0}/.github/dependabot.yml +0 -0
  279. {vector-1.6.2 → vector-1.7.0}/.github/matchers/pylint.json +0 -0
  280. {vector-1.6.2 → vector-1.7.0}/LICENSE +0 -0
  281. {vector-1.6.2 → vector-1.7.0}/docs/Makefile +0 -0
  282. {vector-1.6.2 → vector-1.7.0}/docs/_images/LogoSrc.svg +0 -0
  283. {vector-1.6.2 → vector-1.7.0}/docs/_images/coordinate-systems.png +0 -0
  284. {vector-1.6.2 → vector-1.7.0}/docs/_images/coordinate-systems.svg +0 -0
  285. {vector-1.6.2 → vector-1.7.0}/docs/_images/vector-logo.png +0 -0
  286. {vector-1.6.2 → vector-1.7.0}/docs/make.bat +0 -0
  287. {vector-1.6.2 → vector-1.7.0}/docs/src/common.md +0 -0
  288. {vector-1.6.2 → vector-1.7.0}/docs/src/make_awkward.md +0 -0
  289. {vector-1.6.2 → vector-1.7.0}/docs/src/make_numpy.md +0 -0
  290. {vector-1.6.2 → vector-1.7.0}/docs/src/make_object.md +0 -0
  291. {vector-1.6.2 → vector-1.7.0}/docs/src/make_sympy.md +0 -0
  292. {vector-1.6.2 → vector-1.7.0}/docs/src/momentum2d.md +0 -0
  293. {vector-1.6.2 → vector-1.7.0}/docs/src/momentum3d.md +0 -0
  294. {vector-1.6.2 → vector-1.7.0}/docs/src/momentum4d.md +0 -0
  295. {vector-1.6.2 → vector-1.7.0}/docs/src/numba.ipynb +0 -0
  296. {vector-1.6.2 → vector-1.7.0}/docs/src/numpy.ipynb +0 -0
  297. {vector-1.6.2 → vector-1.7.0}/docs/src/object.ipynb +0 -0
  298. {vector-1.6.2 → vector-1.7.0}/docs/src/sympy.ipynb +0 -0
  299. {vector-1.6.2 → vector-1.7.0}/docs/src/vector2d.md +0 -0
  300. {vector-1.6.2 → vector-1.7.0}/docs/src/vector3d.md +0 -0
  301. {vector-1.6.2 → vector-1.7.0}/docs/src/vector4d.md +0 -0
  302. {vector-1.6.2 → vector-1.7.0}/src/vector/_version.pyi +0 -0
  303. {vector-1.6.2 → vector-1.7.0}/src/vector/py.typed +0 -0
  304. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_is_spacelike.py +0 -0
  305. {vector-1.6.2 → vector-1.7.0}/tests/compute/lorentz/test_is_timelike.py +0 -0
  306. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_beta.py +0 -0
  307. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_is_spacelike.py +0 -0
  308. {vector-1.6.2 → vector-1.7.0}/tests/compute/sympy/lorentz/test_is_timelike.py +0 -0
  309. {vector-1.6.2 → vector-1.7.0}/tests/samples/issue-161-v2.pkl +0 -0
  310. {vector-1.6.2 → vector-1.7.0}/tests/test_notebooks.py +0 -0
@@ -87,7 +87,19 @@
87
87
  "contributions": [
88
88
  "ideas"
89
89
  ]
90
+ },
91
+ {
92
+ "login": "Saransh-cpp",
93
+ "name": "Saransh Chopra",
94
+ "avatar_url": "https://avatars.githubusercontent.com/u/74055102?v=4",
95
+ "profile": "https://saransh-cpp.github.io/",
96
+ "contributions": [
97
+ "maintenance",
98
+ "code",
99
+ "doc"
100
+ ]
90
101
  }
91
102
  ],
92
- "contributorsPerLine": 7
103
+ "contributorsPerLine": 7,
104
+ "commitType": "docs"
93
105
  }
@@ -0,0 +1,3 @@
1
+ codecov:
2
+ notify:
3
+ after_n_builds: 6
@@ -10,7 +10,7 @@ jobs:
10
10
  dist:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v4
13
+ - uses: actions/checkout@v5
14
14
  with:
15
15
  fetch-depth: 0
16
16
 
@@ -28,7 +28,7 @@ jobs:
28
28
  attestations: write
29
29
 
30
30
  steps:
31
- - uses: actions/download-artifact@v4
31
+ - uses: actions/download-artifact@v5
32
32
  with:
33
33
  name: Packages
34
34
  path: dist
@@ -37,7 +37,7 @@ jobs:
37
37
  run: ls -l dist/
38
38
 
39
39
  - name: Generate artifact attestation for sdist and wheel
40
- uses: actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2.2.3
40
+ uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
41
41
  with:
42
42
  subject-path: "dist/vector-*"
43
43
 
@@ -24,11 +24,11 @@ jobs:
24
24
  runs-on: ubuntu-latest
25
25
  name: Check SDist
26
26
  steps:
27
- - uses: actions/checkout@v4
28
- - uses: actions/setup-python@v5
27
+ - uses: actions/checkout@v5
28
+ - uses: actions/setup-python@v6
29
29
  with:
30
30
  python-version: 3.x
31
- - uses: astral-sh/setup-uv@v5
31
+ - uses: astral-sh/setup-uv@v7
32
32
  - name: PyLint
33
33
  run: uvx nox -s pylint -- --output-format=github
34
34
 
@@ -38,7 +38,6 @@ jobs:
38
38
  fail-fast: false
39
39
  matrix:
40
40
  python-version:
41
- - "3.8"
42
41
  - "3.9"
43
42
  - "3.10"
44
43
  - "3.11"
@@ -46,14 +45,14 @@ jobs:
46
45
  - "3.13"
47
46
  name: Python ${{ matrix.python-version }} - Lite
48
47
  steps:
49
- - uses: actions/checkout@v4
48
+ - uses: actions/checkout@v5
50
49
 
51
- - uses: actions/setup-python@v5
50
+ - uses: actions/setup-python@v6
52
51
  with:
53
52
  python-version: ${{ matrix.python-version }}
54
53
  allow-prereleases: true
55
54
 
56
- - uses: astral-sh/setup-uv@v5
55
+ - uses: astral-sh/setup-uv@v7
57
56
 
58
57
  - name: Test lite package
59
58
  run: uvx nox -s lite-${{ matrix.python-version }} --verbose
@@ -65,7 +64,6 @@ jobs:
65
64
  fail-fast: false
66
65
  matrix:
67
66
  python-version:
68
- - "3.8"
69
67
  - "3.9"
70
68
  - "3.10"
71
69
  - "3.11"
@@ -73,14 +71,14 @@ jobs:
73
71
  - "3.13"
74
72
  name: Python ${{ matrix.python-version }} - Full
75
73
  steps:
76
- - uses: actions/checkout@v4
74
+ - uses: actions/checkout@v5
77
75
 
78
- - uses: actions/setup-python@v5
76
+ - uses: actions/setup-python@v6
79
77
  with:
80
78
  python-version: ${{ matrix.python-version }}
81
79
  allow-prereleases: true
82
80
 
83
- - uses: astral-sh/setup-uv@v5
81
+ - uses: astral-sh/setup-uv@v7
84
82
 
85
83
  - name: Install nox
86
84
  run: uv tool install nox
@@ -93,27 +91,12 @@ jobs:
93
91
  run: nox -s coverage-${{ matrix.python-version }} --verbose
94
92
 
95
93
  - name: Upload coverage report
96
- uses: codecov/codecov-action@v5.4.2
94
+ uses: codecov/codecov-action@v5.5.1
97
95
  with:
98
96
  token: ${{ secrets.CODECOV_TOKEN }}
99
97
 
100
- discheck:
101
- runs-on: ubuntu-latest
102
- name: Disassemble check
103
- steps:
104
- - uses: actions/checkout@v4
105
-
106
- - uses: actions/setup-python@v5
107
- with:
108
- python-version: 3.8.13
109
-
110
- - uses: astral-sh/setup-uv@v5
111
-
112
- - name: Test compute features
113
- run: uvx nox -s disassemble --verbose
114
-
115
98
  pass:
116
- needs: [pre-commit, check-lite, check-full, discheck]
99
+ needs: [pre-commit, check-lite, check-full]
117
100
  runs-on: ubuntu-latest
118
101
  steps:
119
102
  - run: echo "All jobs passed"
@@ -121,7 +104,7 @@ jobs:
121
104
  # root:
122
105
  # runs-on: ubuntu-latest
123
106
  # steps:
124
- # - uses: actions/checkout@v4
107
+ # - uses: actions/checkout@v5
125
108
 
126
109
  # - name: Get Conda
127
110
  # uses: conda-incubator/setup-miniconda@v2
@@ -21,10 +21,10 @@ jobs:
21
21
  runs-on: ubuntu-latest
22
22
 
23
23
  steps:
24
- - uses: actions/checkout@v4
24
+ - uses: actions/checkout@v5
25
25
 
26
26
  - name: Set up Python
27
- uses: actions/setup-python@v5
27
+ uses: actions/setup-python@v6
28
28
  with:
29
29
  python-version: "3.10"
30
30
 
@@ -132,6 +132,9 @@ dmypy.json
132
132
  .vscode
133
133
  /.idea/*
134
134
 
135
+ # Lock files
136
+ uv.lock
137
+
135
138
  # Version file
136
139
  /src/vector/_version.py
137
140
 
@@ -4,7 +4,7 @@ ci:
4
4
 
5
5
  repos:
6
6
  - repo: https://github.com/pre-commit/pre-commit-hooks
7
- rev: v5.0.0
7
+ rev: v6.0.0
8
8
  hooks:
9
9
  - id: check-added-large-files
10
10
  - id: check-case-conflict
@@ -19,14 +19,14 @@ repos:
19
19
  - id: trailing-whitespace
20
20
 
21
21
  - repo: https://github.com/astral-sh/ruff-pre-commit
22
- rev: "v0.11.6"
22
+ rev: "v0.14.1"
23
23
  hooks:
24
- - id: ruff
24
+ - id: ruff-check
25
25
  args: ["--fix", "--show-fixes"]
26
26
  - id: ruff-format
27
27
 
28
28
  - repo: https://github.com/pre-commit/mirrors-mypy
29
- rev: v1.15.0
29
+ rev: v1.18.2
30
30
  hooks:
31
31
  - id: mypy
32
32
  files: src
@@ -35,23 +35,22 @@ repos:
35
35
  - numpy
36
36
  - packaging
37
37
  - sympy
38
+ - optree
38
39
 
39
40
  - repo: https://github.com/codespell-project/codespell
40
41
  rev: v2.4.1
41
42
  hooks:
42
43
  - id: codespell
43
- args: ["-LHEP"]
44
- exclude: ^docs/usage/intro.ipynb$
45
44
 
46
45
  - repo: https://github.com/rbubley/mirrors-prettier
47
- rev: "v3.5.3"
46
+ rev: "v3.6.2"
48
47
  hooks:
49
48
  - id: prettier
50
49
  types_or: [yaml, markdown, html, css, scss, javascript, json]
51
50
  exclude: assets/js/webapp\.js
52
51
 
53
52
  - repo: https://github.com/adamchainz/blacken-docs
54
- rev: 1.19.1
53
+ rev: 1.20.0
55
54
  hooks:
56
55
  - id: blacken-docs
57
56
  args: ["-E"]
@@ -0,0 +1,27 @@
1
+ # .readthedocs.yml
2
+ # Read the Docs configuration file
3
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4
+
5
+ # Required
6
+ version: 2
7
+ build:
8
+ os: ubuntu-24.04
9
+ tools:
10
+ python: latest
11
+ jobs:
12
+ pre_create_environment:
13
+ - asdf plugin add uv
14
+ - asdf install uv latest
15
+ - asdf global uv latest
16
+ create_environment:
17
+ - uv venv $READTHEDOCS_VIRTUALENV_PATH
18
+ install:
19
+ # Optimize cache location on readthedocs
20
+ - VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH uv pip install --cache-dir $READTHEDOCS_VIRTUALENV_PATH/../../uv_cache -e. --group docs
21
+
22
+ # Build documentation in the docs/ directory with Sphinx
23
+ sphinx:
24
+ configuration: docs/conf.py
25
+
26
+ # Include PDF and ePub
27
+ formats: all
@@ -0,0 +1,56 @@
1
+ cff-version: "1.2.0"
2
+ authors:
3
+ - family-names: Chopra
4
+ given-names: Saransh
5
+ orcid: "https://orcid.org/0000-0003-3046-7675"
6
+ - family-names: Schreiner
7
+ given-names: Henry
8
+ orcid: "https://orcid.org/0000-0002-7833-783X"
9
+ - family-names: Rodrigues
10
+ given-names: Eduardo
11
+ orcid: "https://orcid.org/0000-0003-2846-7625"
12
+ - family-names: Eschle
13
+ given-names: Jonas
14
+ orcid: "https://orcid.org/0000-0002-7312-3699"
15
+ - family-names: Pivarski
16
+ given-names: Jim
17
+ orcid: "https://orcid.org/0000-0002-6649-343X"
18
+ contact:
19
+ - family-names: Pivarski
20
+ given-names: Jim
21
+ orcid: "https://orcid.org/0000-0002-6649-343X"
22
+ doi: 10.5281/zenodo.15263860
23
+ message: If you use this software, please cite our article in the
24
+ Journal of Open Source Software.
25
+ preferred-citation:
26
+ authors:
27
+ - family-names: Chopra
28
+ given-names: Saransh
29
+ orcid: "https://orcid.org/0000-0003-3046-7675"
30
+ - family-names: Schreiner
31
+ given-names: Henry
32
+ orcid: "https://orcid.org/0000-0002-7833-783X"
33
+ - family-names: Rodrigues
34
+ given-names: Eduardo
35
+ orcid: "https://orcid.org/0000-0003-2846-7625"
36
+ - family-names: Eschle
37
+ given-names: Jonas
38
+ orcid: "https://orcid.org/0000-0002-7312-3699"
39
+ - family-names: Pivarski
40
+ given-names: Jim
41
+ orcid: "https://orcid.org/0000-0002-6649-343X"
42
+ date-published: 2025-05-23
43
+ doi: 10.21105/joss.07791
44
+ issn: 2475-9066
45
+ issue: 109
46
+ journal: Journal of Open Source Software
47
+ publisher:
48
+ name: Open Journals
49
+ start: 7791
50
+ title: "Vector: JIT-compilable mathematical manipulations of ragged
51
+ Lorentz vectors"
52
+ type: article
53
+ url: "https://joss.theoj.org/papers/10.21105/joss.07791"
54
+ volume: 10
55
+ title: "Vector: JIT-compilable mathematical manipulations of ragged
56
+ Lorentz vectors"
@@ -11,7 +11,8 @@ the stable version of `vector`. The steps below describe the installation proces
11
11
  We recommend using a virtual environment to install `vector`. This would isolate the library from your global `Python` environment, which would be beneficial for reproducing bugs, and the overall development of `vector`. The first step would be to clone `vector` -
12
12
 
13
13
  ```bash
14
- git clone https://github.com/Scikit-hep/vector.git
14
+ # fork scikit-hep/vector
15
+ git clone https://github.com/<your_github_userame>/vector.git
15
16
  ```
16
17
 
17
18
  and then we can change the current working directory and enter `vector` -
@@ -22,7 +23,8 @@ cd vector
22
23
 
23
24
  ### Creating a virtual environment
24
25
 
25
- A virtual environment can be set up and activated using `venv` in both `UNIX` and `Windows` systems.
26
+ A virtual environment can be set up and activated using `venv` in both `UNIX` and `Windows` systems
27
+ (or use your favorite environment tool).
26
28
 
27
29
  **UNIX**:
28
30
 
@@ -42,11 +44,13 @@ python -m venv .env
42
44
 
43
45
  The developer installation of `vector` comes with several options -
44
46
 
45
- - `awkward`: installs [awkward](https://github.com/scikit-hep/awkward) along with `vector`
47
+ - `awkward`: installs [awkward](https://github.com/scikit-hep/awkward) for the `awkward` backend
48
+ - `numba`: installs [numba](https://github.com/numba/numba) for JIT compilation
49
+ - `sympy`: installs [sympy](https://github.com/sympy/sympy) for the `sympy` backend
46
50
  - `test`: the test dependencies
47
- - `test-extras`: extra dependencies to run tests on a specific Python version and Operating System
51
+ - `test-extras`: extra dependencies to run disassemble and `dask_awkward` tests
48
52
  - `docs`: extra dependencies to build and develop `vector`'s documentation
49
- - `dev`: installs the `awkward` option + the `test` option + [numba](https://github.com/numba/numba)
53
+ - `dev`: installs the `awkward`, `test`, `numba`, and `sympy` options
50
54
 
51
55
  These options can be used with `pip` with the editable (`-e`) mode of installation in the following way -
52
56
 
@@ -65,7 +69,7 @@ Furthermore, `vector` can also be installed using `conda`. This installation als
65
69
  ```bash
66
70
  conda env create
67
71
  conda activate vector
68
- conda config --env --add channels conda-forge # Optional
72
+ conda config --env --add channels conda-forge # optional
69
73
  ```
70
74
 
71
75
  ### Adding vector for notebooks
@@ -170,7 +174,7 @@ folder. You can view this build in any browser by opening the `index.html` file.
170
174
  pip install nox
171
175
  ```
172
176
 
173
- The default sessions (`lint`, `tests`, and `doctests`) can be executed using -
177
+ The default sessions (`lint`, `lite`, `tests`, `doctests`, and `disassemble`) can be executed using -
174
178
 
175
179
  ```bash
176
180
  nox
@@ -178,24 +182,31 @@ nox
178
182
 
179
183
  ### Running pre-commit with nox
180
184
 
181
- The `pre-commit` hooks can be run with `nox` in the following way -
185
+ The `pre-commit` hooks and `pylint` can be run with `nox` in the following way -
182
186
 
183
187
  ```
184
- nox -s lint
188
+ nox -s lint # run pre-commit on the default Python version
189
+ nox -s pylint # run pylint on the default Python version
185
190
  ```
186
191
 
187
- ### Running tests with nox
192
+ ### Building vector with nox
188
193
 
189
- Tests can be run with `nox` in the following way -
194
+ `vector` can be built with `nox` in the following way -
190
195
 
191
196
  ```
192
- nox -s tests
197
+ nox -s build
193
198
  ```
194
199
 
195
- Notebooks can be tested with `nox` in the following way -
200
+ ### Running tests with nox
201
+
202
+ Tests can be run with `nox` in the following way -
196
203
 
197
204
  ```
198
- nox -s notebooks
205
+ nox -s lite # test only with the required dependencies on all available Python versions (use lite-3.11 for a specific Python version)
206
+ nox -s tests # test with all extra dependencies on all available Python versions
207
+ nox -s tests # run doctests on all available Python versions
208
+ nox -s coverage # run the tests session and generate a coverage report on all available Python versions
209
+ nox -s notebooks # test notebooks on the default Python version
199
210
  ```
200
211
 
201
212
  ### Building documentation with nox
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vector
3
- Version: 1.6.2
3
+ Version: 1.7.0
4
4
  Summary: Vector classes and utilities
5
5
  Project-URL: Bug Tracker, https://github.com/scikit-hep/vector/issues
6
6
  Project-URL: Changelog, https://vector.readthedocs.io/en/latest/changelog.html
@@ -9,84 +9,57 @@ Project-URL: Documentation, https://vector.readthedocs.io/
9
9
  Project-URL: Homepage, https://github.com/scikit-hep/vector
10
10
  Author-email: "Jim Pivarski, Henry Schreiner, Eduardo Rodrigues" <eduardo.rodrigues@cern.ch>
11
11
  Maintainer-email: The Scikit-HEP admins <scikit-hep-admins@googlegroups.com>
12
+ License-Expression: BSD-3-Clause
12
13
  License-File: LICENSE
13
14
  Keywords: vector
14
15
  Classifier: Development Status :: 5 - Production/Stable
15
16
  Classifier: Intended Audience :: Developers
16
17
  Classifier: Intended Audience :: Science/Research
17
- Classifier: License :: OSI Approved :: BSD License
18
18
  Classifier: Operating System :: OS Independent
19
19
  Classifier: Programming Language :: Python
20
20
  Classifier: Programming Language :: Python :: 3 :: Only
21
- Classifier: Programming Language :: Python :: 3.8
22
21
  Classifier: Programming Language :: Python :: 3.9
23
22
  Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
26
+ Classifier: Programming Language :: Python :: 3.14
27
27
  Classifier: Topic :: Scientific/Engineering
28
28
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
29
29
  Classifier: Topic :: Scientific/Engineering :: Mathematics
30
30
  Classifier: Topic :: Scientific/Engineering :: Physics
31
31
  Classifier: Typing :: Typed
32
- Requires-Python: >=3.8
33
- Requires-Dist: numpy>=1.13.3
34
- Requires-Dist: packaging>=19
32
+ Requires-Python: >=3.9
33
+ Requires-Dist: numpy>=1.19.3
34
+ Requires-Dist: packaging>=20
35
35
  Provides-Extra: awkward
36
36
  Requires-Dist: awkward>=2; extra == 'awkward'
37
- Provides-Extra: dev
38
- Requires-Dist: awkward>=2; extra == 'dev'
39
- Requires-Dist: dask-awkward; extra == 'dev'
40
- Requires-Dist: nox; extra == 'dev'
41
- Requires-Dist: numba>=0.57; (python_version < '3.13') and extra == 'dev'
42
- Requires-Dist: papermill>=2.4; extra == 'dev'
43
- Requires-Dist: pytest-cov>=3; extra == 'dev'
44
- Requires-Dist: pytest-doctestplus; extra == 'dev'
45
- Requires-Dist: pytest>=6; extra == 'dev'
46
- Requires-Dist: sympy; extra == 'dev'
47
- Provides-Extra: docs
48
- Requires-Dist: awkward>=2; extra == 'docs'
49
- Requires-Dist: ipykernel; extra == 'docs'
50
- Requires-Dist: myst-parser>0.13; extra == 'docs'
51
- Requires-Dist: nbsphinx; extra == 'docs'
52
- Requires-Dist: sphinx-book-theme>=0.0.42; extra == 'docs'
53
- Requires-Dist: sphinx-copybutton; extra == 'docs'
54
- Requires-Dist: sphinx-math-dollar; extra == 'docs'
55
- Requires-Dist: sphinx>=4; extra == 'docs'
56
- Requires-Dist: sympy; extra == 'docs'
57
37
  Provides-Extra: numba
58
- Requires-Dist: numba>=0.57; (python_version < '3.13') and extra == 'numba'
38
+ Requires-Dist: numba>=0.57; (python_version < '3.14') and extra == 'numba'
59
39
  Provides-Extra: sympy
60
40
  Requires-Dist: sympy; extra == 'sympy'
61
- Provides-Extra: test
62
- Requires-Dist: nox; extra == 'test'
63
- Requires-Dist: papermill>=2.4; extra == 'test'
64
- Requires-Dist: pytest-cov>=3; extra == 'test'
65
- Requires-Dist: pytest-doctestplus; extra == 'test'
66
- Requires-Dist: pytest>=6; extra == 'test'
67
- Provides-Extra: test-extras
68
- Requires-Dist: dask-awkward; extra == 'test-extras'
69
- Requires-Dist: spark-parser; extra == 'test-extras'
70
- Requires-Dist: uncompyle6; (python_version == '3.8') and extra == 'test-extras'
71
41
  Description-Content-Type: text/markdown
72
42
 
73
43
  <img alt="Vector logo" width="50%" src="https://raw.githubusercontent.com/scikit-hep/vector/main/docs/_images/LogoSrc.svg"/>
74
44
 
75
45
  # Vector: arrays of 2D, 3D, and Lorentz vectors
76
46
 
47
+ [![DOI][zenodo-badge]][zenodo-link]
48
+ [![DOI][joss-badge]][joss-link]
49
+ [![Scikit-HEP][sk-badge]][sk-link]
50
+
77
51
  [![Actions Status][actions-badge]][actions-link]
78
52
  [![Documentation Status][rtd-badge]][rtd-link]
79
53
  [![pre-commit.ci status][pre-commit-badge]][pre-commit-link]
80
54
  [![codecov percentage][codecov-badge]][codecov-link]
81
- [![GitHub Discussion][github-discussions-badge]][github-discussions-link]
82
- [![Gitter][gitter-badge]][gitter-link]
83
55
 
84
56
  [![PyPI platforms][pypi-platforms]][pypi-link]
85
57
  [![PyPI version][pypi-version]][pypi-link]
86
58
  [![Conda latest release][conda-version]][conda-link]
87
- [![DOI][zenodo-badge]][zenodo-link]
59
+
88
60
  [![LICENSE][license-badge]][license-link]
89
- [![Scikit-HEP][sk-badge]][sk-link]
61
+ [![GitHub Discussion][github-discussions-badge]][github-discussions-link]
62
+ [![Gitter][gitter-badge]][gitter-link]
90
63
 
91
64
  ## Installation
92
65
 
@@ -126,6 +99,12 @@ Vectors may be included in any of these data types:
126
99
 
127
100
  Each of these "backends" provides the same suite of properties and methods, through a common "compute" library.
128
101
 
102
+ ### Integrations
103
+
104
+ Optionally, the vector package provides integration with other libraries. Currently, this includes:
105
+
106
+ - [PyTree integrations](https://vector.readthedocs.io/en/latest/src/pytree.html) using the [optree](https://github.com/metaopt/optree) package.
107
+
129
108
  ### Geometric versus momentum
130
109
 
131
110
  Finally, vectors come in two flavors:
@@ -158,6 +137,24 @@ pip install -e .
158
137
 
159
138
  Refer to [CONTRIBUTING.md](https://github.com/scikit-hep/vector/blob/main/.github/CONTRIBUTING.md) for more.
160
139
 
140
+ ## Citing Vector
141
+
142
+ To cite Vector, please use [![DOI][joss-badge]][joss-link]
143
+
144
+ ```bib
145
+ @article{Chopra2025,
146
+ doi = {10.21105/joss.07791},
147
+ url = {https://doi.org/10.21105/joss.07791},
148
+ year = {2025}, publisher = {The Open Journal},
149
+ volume = {10},
150
+ number = {109},
151
+ pages = {7791},
152
+ author = {Saransh Chopra and Henry Schreiner and Eduardo Rodrigues and Jonas Eschle and Jim Pivarski},
153
+ title = {Vector: JIT-compilable mathematical manipulations of ragged Lorentz vectors},
154
+ journal = {Journal of Open Source Software}
155
+ }
156
+ ```
157
+
161
158
  ## Documentation
162
159
 
163
160
  ### Tutorials
@@ -185,9 +182,13 @@ Refer to [CONTRIBUTING.md](https://github.com/scikit-hep/vector/blob/main/.githu
185
182
  - [Interface for 3D momentum](https://vector.readthedocs.io/en/latest/src/momentum3d.html)
186
183
  - [Interface for 4D momentum](https://vector.readthedocs.io/en/latest/src/momentum4d.html)
187
184
 
185
+ ### Integrations
186
+
187
+ - [PyTree integration API](https://vector.readthedocs.io/en/latest/src/pytree_api.html)
188
+
188
189
  ### More ways to learn
189
190
 
190
- - [Presentations about Vector](https://vector.readthedocs.io/en/latest/src/talks.html)
191
+ - [Papers and talks](https://vector.readthedocs.io/en/latest/src/talks.html)
191
192
 
192
193
  ## Contributors
193
194
 
@@ -197,18 +198,21 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
197
198
  <!-- prettier-ignore-start -->
198
199
  <!-- markdownlint-disable -->
199
200
  <table>
200
- <tr>
201
- <td align="center"><a href="https://github.com/jpivarski"><img src="https://avatars.githubusercontent.com/u/1852447?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jim Pivarski</b></sub></a><br /><a href="#maintenance-jpivarski" title="Maintenance">🚧</a> <a href="https://github.com/scikit-hep/vector/commits?author=jpivarski" title="Code">💻</a> <a href="https://github.com/scikit-hep/vector/commits?author=jpivarski" title="Documentation">📖</a></td>
202
- <td align="center"><a href="https://github.com/henryiii"><img src="https://avatars.githubusercontent.com/u/4616906?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Henry Schreiner</b></sub></a><br /><a href="#maintenance-henryiii" title="Maintenance">🚧</a> <a href="https://github.com/scikit-hep/vector/commits?author=henryiii" title="Code">💻</a> <a href="https://github.com/scikit-hep/vector/commits?author=henryiii" title="Documentation">📖</a></td>
203
- <td align="center"><a href="https://github.com/eduardo-rodrigues"><img src="https://avatars.githubusercontent.com/u/5013581?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Eduardo Rodrigues</b></sub></a><br /><a href="#maintenance-eduardo-rodrigues" title="Maintenance">🚧</a> <a href="https://github.com/scikit-hep/vector/commits?author=eduardo-rodrigues" title="Code">💻</a> <a href="https://github.com/scikit-hep/vector/commits?author=eduardo-rodrigues" title="Documentation">📖</a></td>
204
- <td align="center"><a href="http://lovelybuggies.com.cn/"><img src="https://avatars.githubusercontent.com/u/29083689?v=4?s=100" width="100px;" alt=""/><br /><sub><b>N!no</b></sub></a><br /><a href="https://github.com/scikit-hep/vector/commits?author=LovelyBuggies" title="Documentation">📖</a></td>
205
- <td align="center"><a href="https://github.com/pfackeldey"><img src="https://avatars.githubusercontent.com/u/18463582?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Peter Fackeldey</b></sub></a><br /><a href="https://github.com/scikit-hep/vector/commits?author=pfackeldey" title="Documentation">📖</a></td>
206
- <td align="center"><a href="https://github.com/kreczko"><img src="https://avatars.githubusercontent.com/u/1213276?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Luke Kreczko</b></sub></a><br /><a href="https://github.com/scikit-hep/vector/commits?author=kreczko" title="Code">💻</a></td>
207
- <td align="center"><a href="https://github.com/nsmith-"><img src="https://avatars.githubusercontent.com/u/6587412?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nicholas Smith</b></sub></a><br /><a href="#ideas-nsmith-" title="Ideas, Planning, & Feedback">🤔</a></td>
208
- </tr>
209
- <tr>
210
- <td align="center"><a href="https://github.com/mayou36"><img src="https://avatars.githubusercontent.com/u/17454848?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonas Eschle</b></sub></a><br /><a href="#ideas-mayou36" title="Ideas, Planning, & Feedback">🤔</a></td>
211
- </tr>
201
+ <tbody>
202
+ <tr>
203
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jpivarski"><img src="https://avatars.githubusercontent.com/u/1852447?v=4?s=100" width="100px;" alt="Jim Pivarski"/><br /><sub><b>Jim Pivarski</b></sub></a><br /><a href="#maintenance-jpivarski" title="Maintenance">🚧</a> <a href="https://github.com/scikit-hep/vector/commits?author=jpivarski" title="Code">💻</a> <a href="https://github.com/scikit-hep/vector/commits?author=jpivarski" title="Documentation">📖</a></td>
204
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/henryiii"><img src="https://avatars.githubusercontent.com/u/4616906?v=4?s=100" width="100px;" alt="Henry Schreiner"/><br /><sub><b>Henry Schreiner</b></sub></a><br /><a href="#maintenance-henryiii" title="Maintenance">🚧</a> <a href="https://github.com/scikit-hep/vector/commits?author=henryiii" title="Code">💻</a> <a href="https://github.com/scikit-hep/vector/commits?author=henryiii" title="Documentation">📖</a></td>
205
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/eduardo-rodrigues"><img src="https://avatars.githubusercontent.com/u/5013581?v=4?s=100" width="100px;" alt="Eduardo Rodrigues"/><br /><sub><b>Eduardo Rodrigues</b></sub></a><br /><a href="#maintenance-eduardo-rodrigues" title="Maintenance">🚧</a> <a href="https://github.com/scikit-hep/vector/commits?author=eduardo-rodrigues" title="Code">💻</a> <a href="https://github.com/scikit-hep/vector/commits?author=eduardo-rodrigues" title="Documentation">📖</a></td>
206
+ <td align="center" valign="top" width="14.28%"><a href="http://lovelybuggies.com.cn/"><img src="https://avatars.githubusercontent.com/u/29083689?v=4?s=100" width="100px;" alt="N!no"/><br /><sub><b>N!no</b></sub></a><br /><a href="https://github.com/scikit-hep/vector/commits?author=LovelyBuggies" title="Documentation">📖</a></td>
207
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pfackeldey"><img src="https://avatars.githubusercontent.com/u/18463582?v=4?s=100" width="100px;" alt="Peter Fackeldey"/><br /><sub><b>Peter Fackeldey</b></sub></a><br /><a href="https://github.com/scikit-hep/vector/commits?author=pfackeldey" title="Documentation">📖</a></td>
208
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/kreczko"><img src="https://avatars.githubusercontent.com/u/1213276?v=4?s=100" width="100px;" alt="Luke Kreczko"/><br /><sub><b>Luke Kreczko</b></sub></a><br /><a href="https://github.com/scikit-hep/vector/commits?author=kreczko" title="Code">💻</a></td>
209
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/nsmith-"><img src="https://avatars.githubusercontent.com/u/6587412?v=4?s=100" width="100px;" alt="Nicholas Smith"/><br /><sub><b>Nicholas Smith</b></sub></a><br /><a href="#ideas-nsmith-" title="Ideas, Planning, & Feedback">🤔</a></td>
210
+ </tr>
211
+ <tr>
212
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mayou36"><img src="https://avatars.githubusercontent.com/u/17454848?v=4?s=100" width="100px;" alt="Jonas Eschle"/><br /><sub><b>Jonas Eschle</b></sub></a><br /><a href="#ideas-mayou36" title="Ideas, Planning, & Feedback">🤔</a></td>
213
+ <td align="center" valign="top" width="14.28%"><a href="https://saransh-cpp.github.io/"><img src="https://avatars.githubusercontent.com/u/74055102?v=4?s=100" width="100px;" alt="Saransh Chopra"/><br /><sub><b>Saransh Chopra</b></sub></a><br /><a href="#maintenance-Saransh-cpp" title="Maintenance">🚧</a> <a href="https://github.com/scikit-hep/vector/commits?author=Saransh-cpp" title="Code">💻</a> <a href="https://github.com/scikit-hep/vector/commits?author=Saransh-cpp" title="Documentation">📖</a></td>
214
+ </tr>
215
+ </tbody>
212
216
  </table>
213
217
 
214
218
  <!-- markdownlint-restore -->
@@ -238,6 +242,8 @@ Support for this work was provided by the National Science Foundation cooperativ
238
242
  [github-discussions-link]: https://github.com/scikit-hep/vector/discussions
239
243
  [gitter-badge]: https://badges.gitter.im/Scikit-HEP/vector.svg
240
244
  [gitter-link]: https://gitter.im/Scikit-HEP/vector?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
245
+ [joss-badge]: https://joss.theoj.org/papers/10.21105/joss.07791/status.svg
246
+ [joss-link]: https://doi.org/10.21105/joss.07791
241
247
  [license-badge]: https://img.shields.io/badge/License-BSD_3--Clause-blue.svg
242
248
  [license-link]: https://opensource.org/licenses/BSD-3-Clause
243
249
  [pre-commit-badge]: https://results.pre-commit.ci/badge/github/scikit-hep/vector/main.svg
@@ -249,5 +255,5 @@ Support for this work was provided by the National Science Foundation cooperativ
249
255
  [rtd-link]: https://vector.readthedocs.io/en/latest/?badge=latest
250
256
  [sk-badge]: https://scikit-hep.org/assets/images/Scikit--HEP-Project-blue.svg
251
257
  [sk-link]: https://scikit-hep.org/
252
- [zenodo-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.7054478.svg
253
- [zenodo-link]: https://doi.org/10.5281/zenodo.7054478
258
+ [zenodo-badge]: https://zenodo.org/badge/DOI/10.5281/zenodo.15263860.svg
259
+ [zenodo-link]: https://zenodo.org/records/15263860