vector 1.4.3__tar.gz → 1.5.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 (379) hide show
  1. {vector-1.4.3 → vector-1.5.0}/.github/workflows/ci.yml +17 -66
  2. {vector-1.4.3 → vector-1.5.0}/.github/workflows/notebooks.yml +7 -13
  3. {vector-1.4.3 → vector-1.5.0}/PKG-INFO +8 -8
  4. {vector-1.4.3 → vector-1.5.0}/README.md +1 -1
  5. {vector-1.4.3 → vector-1.5.0}/docs/changelog.md +11 -9
  6. {vector-1.4.3 → vector-1.5.0}/docs/usage/intro.ipynb +1 -1
  7. {vector-1.4.3 → vector-1.5.0}/noxfile.py +9 -8
  8. {vector-1.4.3 → vector-1.5.0}/pyproject.toml +6 -6
  9. {vector-1.4.3 → vector-1.5.0}/src/vector/__init__.py +2 -10
  10. {vector-1.4.3 → vector-1.5.0}/src/vector/_version.py +2 -2
  11. {vector-1.4.3 → vector-1.5.0}/src/vector/backends/awkward.py +5 -25
  12. {vector-1.4.3 → vector-1.5.0}/src/vector/backends/awkward_constructors.py +4 -21
  13. {vector-1.4.3 → vector-1.5.0}/src/vector/backends/numpy.py +20 -20
  14. {vector-1.4.3 → vector-1.5.0}/src/vector/backends/object.py +18 -18
  15. {vector-1.4.3 → vector-1.5.0}/src/vector/backends/sympy.py +18 -18
  16. {vector-1.4.3 → vector-1.5.0}/tests/backends/test_awkward.py +24 -29
  17. {vector-1.4.3 → vector-1.5.0}/tests/test_issues.py +1 -5
  18. vector-1.4.3/tests/samples/issue-161.pkl +0 -0
  19. {vector-1.4.3 → vector-1.5.0}/.all-contributorsrc +0 -0
  20. {vector-1.4.3 → vector-1.5.0}/.git_archival.txt +0 -0
  21. {vector-1.4.3 → vector-1.5.0}/.gitattributes +0 -0
  22. {vector-1.4.3 → vector-1.5.0}/.github/CONTRIBUTING.md +0 -0
  23. {vector-1.4.3 → vector-1.5.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  24. {vector-1.4.3 → vector-1.5.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  25. {vector-1.4.3 → vector-1.5.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  26. {vector-1.4.3 → vector-1.5.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  27. {vector-1.4.3 → vector-1.5.0}/.github/codecov.yml +0 -0
  28. {vector-1.4.3 → vector-1.5.0}/.github/dependabot.yml +0 -0
  29. {vector-1.4.3 → vector-1.5.0}/.github/matchers/pylint.json +0 -0
  30. {vector-1.4.3 → vector-1.5.0}/.github/workflows/cd.yml +0 -0
  31. {vector-1.4.3 → vector-1.5.0}/.gitignore +0 -0
  32. {vector-1.4.3 → vector-1.5.0}/.pre-commit-config.yaml +0 -0
  33. {vector-1.4.3 → vector-1.5.0}/.readthedocs.yml +0 -0
  34. {vector-1.4.3 → vector-1.5.0}/CITATION.cff +0 -0
  35. {vector-1.4.3 → vector-1.5.0}/LICENSE +0 -0
  36. {vector-1.4.3 → vector-1.5.0}/docs/Makefile +0 -0
  37. {vector-1.4.3 → vector-1.5.0}/docs/_images/LogoSrc.svg +0 -0
  38. {vector-1.4.3 → vector-1.5.0}/docs/_images/vector-logo.png +0 -0
  39. {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends._numba.rst +0 -0
  40. {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends._numba_object.rst +0 -0
  41. {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.awkward.rst +0 -0
  42. {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.awkward_constructors.rst +0 -0
  43. {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.numba_numpy.rst +0 -0
  44. {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.numpy.rst +0 -0
  45. {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.object.rst +0 -0
  46. {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.rst +0 -0
  47. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Et.rst +0 -0
  48. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Et2.rst +0 -0
  49. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Mt.rst +0 -0
  50. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Mt2.rst +0 -0
  51. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.add.rst +0 -0
  52. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.beta.rst +0 -0
  53. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostX_beta.rst +0 -0
  54. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostX_gamma.rst +0 -0
  55. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostY_beta.rst +0 -0
  56. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostY_gamma.rst +0 -0
  57. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostZ_beta.rst +0 -0
  58. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostZ_gamma.rst +0 -0
  59. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boost_beta3.rst +0 -0
  60. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boost_p4.rst +0 -0
  61. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.deltaRapidityPhi.rst +0 -0
  62. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.deltaRapidityPhi2.rst +0 -0
  63. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.dot.rst +0 -0
  64. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.equal.rst +0 -0
  65. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.gamma.rst +0 -0
  66. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.is_lightlike.rst +0 -0
  67. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.is_spacelike.rst +0 -0
  68. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.is_timelike.rst +0 -0
  69. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.isclose.rst +0 -0
  70. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.not_equal.rst +0 -0
  71. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.rapidity.rst +0 -0
  72. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.rst +0 -0
  73. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.scale.rst +0 -0
  74. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.subtract.rst +0 -0
  75. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.t.rst +0 -0
  76. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.t2.rst +0 -0
  77. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.tau.rst +0 -0
  78. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.tau2.rst +0 -0
  79. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.to_beta3.rst +0 -0
  80. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.transform4D.rst +0 -0
  81. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.unit.rst +0 -0
  82. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.add.rst +0 -0
  83. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.deltaphi.rst +0 -0
  84. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.dot.rst +0 -0
  85. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.equal.rst +0 -0
  86. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.is_antiparallel.rst +0 -0
  87. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.is_parallel.rst +0 -0
  88. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.is_perpendicular.rst +0 -0
  89. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.isclose.rst +0 -0
  90. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.not_equal.rst +0 -0
  91. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.phi.rst +0 -0
  92. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rho.rst +0 -0
  93. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rho2.rst +0 -0
  94. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rotateZ.rst +0 -0
  95. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rst +0 -0
  96. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.scale.rst +0 -0
  97. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.subtract.rst +0 -0
  98. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.transform2D.rst +0 -0
  99. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.unit.rst +0 -0
  100. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.x.rst +0 -0
  101. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.y.rst +0 -0
  102. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.add.rst +0 -0
  103. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.costheta.rst +0 -0
  104. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.cottheta.rst +0 -0
  105. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.cross.rst +0 -0
  106. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaR.rst +0 -0
  107. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaR2.rst +0 -0
  108. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaangle.rst +0 -0
  109. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaeta.rst +0 -0
  110. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.dot.rst +0 -0
  111. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.equal.rst +0 -0
  112. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.eta.rst +0 -0
  113. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.is_antiparallel.rst +0 -0
  114. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.is_parallel.rst +0 -0
  115. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.is_perpendicular.rst +0 -0
  116. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.isclose.rst +0 -0
  117. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.mag.rst +0 -0
  118. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.mag2.rst +0 -0
  119. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.not_equal.rst +0 -0
  120. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotateX.rst +0 -0
  121. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotateY.rst +0 -0
  122. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotate_axis.rst +0 -0
  123. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotate_euler.rst +0 -0
  124. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotate_quaternion.rst +0 -0
  125. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rst +0 -0
  126. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.scale.rst +0 -0
  127. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.subtract.rst +0 -0
  128. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.theta.rst +0 -0
  129. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.transform3D.rst +0 -0
  130. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.unit.rst +0 -0
  131. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.z.rst +0 -0
  132. {vector-1.4.3 → vector-1.5.0}/docs/api/compute/vector._compute.rst +0 -0
  133. {vector-1.4.3 → vector-1.5.0}/docs/api/inheritance.svg +0 -0
  134. {vector-1.4.3 → vector-1.5.0}/docs/api/modules.rst +0 -0
  135. {vector-1.4.3 → vector-1.5.0}/docs/api/vector._methods.rst +0 -0
  136. {vector-1.4.3 → vector-1.5.0}/docs/api/vector._typeutils.rst +0 -0
  137. {vector-1.4.3 → vector-1.5.0}/docs/api/vector.rst +0 -0
  138. {vector-1.4.3 → vector-1.5.0}/docs/conf.py +0 -0
  139. {vector-1.4.3 → vector-1.5.0}/docs/index.rst +0 -0
  140. {vector-1.4.3 → vector-1.5.0}/docs/make.bat +0 -0
  141. {vector-1.4.3 → vector-1.5.0}/docs/usage/structure.md +0 -0
  142. {vector-1.4.3 → vector-1.5.0}/environment.yml +0 -0
  143. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/__init__.py +0 -0
  144. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/Et.py +0 -0
  145. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/Et2.py +0 -0
  146. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/Mt.py +0 -0
  147. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/Mt2.py +0 -0
  148. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/__init__.py +0 -0
  149. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/add.py +0 -0
  150. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/beta.py +0 -0
  151. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostX_beta.py +0 -0
  152. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostX_gamma.py +0 -0
  153. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostY_beta.py +0 -0
  154. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostY_gamma.py +0 -0
  155. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostZ_beta.py +0 -0
  156. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostZ_gamma.py +0 -0
  157. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boost_beta3.py +0 -0
  158. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boost_p4.py +0 -0
  159. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/deltaRapidityPhi.py +0 -0
  160. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/deltaRapidityPhi2.py +0 -0
  161. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/dot.py +0 -0
  162. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/equal.py +0 -0
  163. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/gamma.py +0 -0
  164. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/is_lightlike.py +0 -0
  165. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/is_spacelike.py +0 -0
  166. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/is_timelike.py +0 -0
  167. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/isclose.py +0 -0
  168. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/not_equal.py +0 -0
  169. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/rapidity.py +0 -0
  170. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/scale.py +0 -0
  171. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/subtract.py +0 -0
  172. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/t.py +0 -0
  173. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/t2.py +0 -0
  174. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/tau.py +0 -0
  175. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/tau2.py +0 -0
  176. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/to_beta3.py +0 -0
  177. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/transform4D.py +0 -0
  178. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/unit.py +0 -0
  179. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/__init__.py +0 -0
  180. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/add.py +0 -0
  181. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/deltaphi.py +0 -0
  182. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/dot.py +0 -0
  183. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/equal.py +0 -0
  184. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/is_antiparallel.py +0 -0
  185. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/is_parallel.py +0 -0
  186. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/is_perpendicular.py +0 -0
  187. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/isclose.py +0 -0
  188. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/not_equal.py +0 -0
  189. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/phi.py +0 -0
  190. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/rho.py +0 -0
  191. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/rho2.py +0 -0
  192. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/rotateZ.py +0 -0
  193. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/scale.py +0 -0
  194. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/subtract.py +0 -0
  195. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/transform2D.py +0 -0
  196. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/unit.py +0 -0
  197. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/x.py +0 -0
  198. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/y.py +0 -0
  199. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/__init__.py +0 -0
  200. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/add.py +0 -0
  201. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/costheta.py +0 -0
  202. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/cottheta.py +0 -0
  203. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/cross.py +0 -0
  204. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/deltaR.py +0 -0
  205. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/deltaR2.py +0 -0
  206. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/deltaangle.py +0 -0
  207. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/deltaeta.py +0 -0
  208. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/dot.py +0 -0
  209. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/equal.py +0 -0
  210. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/eta.py +0 -0
  211. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/is_antiparallel.py +0 -0
  212. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/is_parallel.py +0 -0
  213. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/is_perpendicular.py +0 -0
  214. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/isclose.py +0 -0
  215. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/mag.py +0 -0
  216. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/mag2.py +0 -0
  217. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/not_equal.py +0 -0
  218. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotateX.py +0 -0
  219. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotateY.py +0 -0
  220. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotate_axis.py +0 -0
  221. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotate_euler.py +0 -0
  222. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotate_quaternion.py +0 -0
  223. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/scale.py +0 -0
  224. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/subtract.py +0 -0
  225. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/theta.py +0 -0
  226. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/transform3D.py +0 -0
  227. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/unit.py +0 -0
  228. {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/z.py +0 -0
  229. {vector-1.4.3 → vector-1.5.0}/src/vector/_lib.py +0 -0
  230. {vector-1.4.3 → vector-1.5.0}/src/vector/_methods.py +0 -0
  231. {vector-1.4.3 → vector-1.5.0}/src/vector/_typeutils.py +0 -0
  232. {vector-1.4.3 → vector-1.5.0}/src/vector/backends/__init__.py +0 -0
  233. {vector-1.4.3 → vector-1.5.0}/src/vector/backends/_numba.py +0 -0
  234. {vector-1.4.3 → vector-1.5.0}/src/vector/backends/_numba_object.py +0 -0
  235. {vector-1.4.3 → vector-1.5.0}/src/vector/backends/numba_numpy.py +0 -0
  236. {vector-1.4.3 → vector-1.5.0}/src/vector/py.typed +0 -0
  237. {vector-1.4.3 → vector-1.5.0}/src/vector/version.pyi +0 -0
  238. {vector-1.4.3 → vector-1.5.0}/tests/__init__.py +0 -0
  239. {vector-1.4.3 → vector-1.5.0}/tests/backends/__init__.py +0 -0
  240. {vector-1.4.3 → vector-1.5.0}/tests/backends/test_awkward_numba.py +0 -0
  241. {vector-1.4.3 → vector-1.5.0}/tests/backends/test_dask_awkward.py +0 -0
  242. {vector-1.4.3 → vector-1.5.0}/tests/backends/test_numba_numpy.py +0 -0
  243. {vector-1.4.3 → vector-1.5.0}/tests/backends/test_numba_object.py +0 -0
  244. {vector-1.4.3 → vector-1.5.0}/tests/backends/test_numpy.py +0 -0
  245. {vector-1.4.3 → vector-1.5.0}/tests/backends/test_object.py +0 -0
  246. {vector-1.4.3 → vector-1.5.0}/tests/backends/test_operators.py +0 -0
  247. {vector-1.4.3 → vector-1.5.0}/tests/backends/test_sympy.py +0 -0
  248. {vector-1.4.3 → vector-1.5.0}/tests/compute/__init__.py +0 -0
  249. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/__init__.py +0 -0
  250. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_Et.py +0 -0
  251. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_Et2.py +0 -0
  252. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_Mt.py +0 -0
  253. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_Mt2.py +0 -0
  254. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_beta.py +0 -0
  255. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostX_beta.py +0 -0
  256. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostX_gamma.py +0 -0
  257. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostY_beta.py +0 -0
  258. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostY_gamma.py +0 -0
  259. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostZ_beta.py +0 -0
  260. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostZ_gamma.py +0 -0
  261. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boost_beta3.py +0 -0
  262. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boost_p4.py +0 -0
  263. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_deltaRapidityPhi.py +0 -0
  264. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_deltaRapidityPhi2.py +0 -0
  265. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_gamma.py +0 -0
  266. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_is_lightlike.py +0 -0
  267. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_is_spacelike.py +0 -0
  268. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_is_timelike.py +0 -0
  269. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_rapidity.py +0 -0
  270. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_t.py +0 -0
  271. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_t2.py +0 -0
  272. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_tau.py +0 -0
  273. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_tau2.py +0 -0
  274. {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_to_beta3.py +0 -0
  275. {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/__init__.py +0 -0
  276. {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_deltaphi.py +0 -0
  277. {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_phi.py +0 -0
  278. {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_rho.py +0 -0
  279. {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_rho2.py +0 -0
  280. {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_rotateZ.py +0 -0
  281. {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_x.py +0 -0
  282. {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_y.py +0 -0
  283. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/__init__.py +0 -0
  284. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_costheta.py +0 -0
  285. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_cottheta.py +0 -0
  286. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_cross.py +0 -0
  287. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_deltaR.py +0 -0
  288. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_deltaR2.py +0 -0
  289. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_deltaangle.py +0 -0
  290. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_deltaeta.py +0 -0
  291. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_eta.py +0 -0
  292. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_mag.py +0 -0
  293. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_mag2.py +0 -0
  294. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotateX.py +0 -0
  295. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotateY.py +0 -0
  296. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotate_axis.py +0 -0
  297. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotate_euler.py +0 -0
  298. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotate_quaternion.py +0 -0
  299. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_theta.py +0 -0
  300. {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_z.py +0 -0
  301. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/__init__.py +0 -0
  302. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Et.py +0 -0
  303. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Et2.py +0 -0
  304. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Mt.py +0 -0
  305. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Mt2.py +0 -0
  306. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_beta.py +0 -0
  307. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostX_beta.py +0 -0
  308. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostX_gamma.py +0 -0
  309. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostY_beta.py +0 -0
  310. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostY_gamma.py +0 -0
  311. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostZ_beta.py +0 -0
  312. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostZ_gamma.py +0 -0
  313. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boost_beta3.py +0 -0
  314. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boost_p4.py +0 -0
  315. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_deltaRapidityPhi.py +0 -0
  316. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_deltaRapidityPhi2.py +0 -0
  317. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_gamma.py +0 -0
  318. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_is_lightlike.py +0 -0
  319. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_is_spacelike.py +0 -0
  320. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_is_timelike.py +0 -0
  321. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_rapidity.py +0 -0
  322. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_t.py +0 -0
  323. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_t2.py +0 -0
  324. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_tau.py +0 -0
  325. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_tau2.py +0 -0
  326. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_to_beta3.py +0 -0
  327. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/__init__.py +0 -0
  328. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_deltaphi.py +0 -0
  329. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_phi.py +0 -0
  330. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_rho.py +0 -0
  331. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_rho2.py +0 -0
  332. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_rotateZ.py +0 -0
  333. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_x.py +0 -0
  334. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_y.py +0 -0
  335. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/__init__.py +0 -0
  336. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_costheta.py +0 -0
  337. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_cottheta.py +0 -0
  338. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_cross.py +0 -0
  339. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaR.py +0 -0
  340. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaR2.py +0 -0
  341. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaangle.py +0 -0
  342. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaeta.py +0 -0
  343. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_eta.py +0 -0
  344. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_mag.py +0 -0
  345. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_mag2.py +0 -0
  346. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotateX.py +0 -0
  347. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotateY.py +0 -0
  348. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotate_axis.py +0 -0
  349. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotate_euler.py +0 -0
  350. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotate_quaternion.py +0 -0
  351. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_theta.py +0 -0
  352. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_z.py +0 -0
  353. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_add.py +0 -0
  354. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_conversions.py +0 -0
  355. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_dot.py +0 -0
  356. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_equal.py +0 -0
  357. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_is_antiparallel.py +0 -0
  358. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_is_parallel.py +0 -0
  359. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_is_perpendicular.py +0 -0
  360. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_not_equal.py +0 -0
  361. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_scale.py +0 -0
  362. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_subtract.py +0 -0
  363. {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_unit.py +0 -0
  364. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_add.py +0 -0
  365. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_conversions.py +0 -0
  366. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_dot.py +0 -0
  367. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_equal.py +0 -0
  368. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_is_antiparallel.py +0 -0
  369. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_is_parallel.py +0 -0
  370. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_is_perpendicular.py +0 -0
  371. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_isclose.py +0 -0
  372. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_not_equal.py +0 -0
  373. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_scale.py +0 -0
  374. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_subtract.py +0 -0
  375. {vector-1.4.3 → vector-1.5.0}/tests/compute/test_unit.py +0 -0
  376. {vector-1.4.3 → vector-1.5.0}/tests/samples/issue-161-v2.pkl +0 -0
  377. {vector-1.4.3 → vector-1.5.0}/tests/test_compute_features.py +0 -0
  378. {vector-1.4.3 → vector-1.5.0}/tests/test_methods.py +0 -0
  379. {vector-1.4.3 → vector-1.5.0}/tests/test_notebooks.py +0 -0
@@ -14,6 +14,11 @@ concurrency:
14
14
  group: ${{ github.workflow }}-${{ github.ref }}
15
15
  cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
16
16
 
17
+ env:
18
+ # The "FORCE_COLOR" variable, when set to 1,
19
+ # tells Nox to colorize itself.
20
+ FORCE_COLOR: "1"
21
+
17
22
  jobs:
18
23
  pre-commit:
19
24
  runs-on: ubuntu-latest
@@ -28,44 +33,7 @@ jobs:
28
33
  echo "::add-matcher::$GITHUB_WORKSPACE/.github/matchers/pylint.json"
29
34
  pipx run nox -s pylint
30
35
 
31
- check-light:
32
- runs-on: ubuntu-latest
33
- strategy:
34
- fail-fast: false
35
- matrix:
36
- python-version:
37
- - "3.8"
38
- - "3.9"
39
- - "3.10"
40
- - "3.11"
41
- - "3.12"
42
- name: Python ${{ matrix.python-version }} - Light
43
- steps:
44
- - uses: actions/checkout@v4
45
-
46
- - uses: actions/setup-python@v5
47
- with:
48
- python-version: ${{ matrix.python-version }}
49
-
50
- - name: Requirements check
51
- run: python -m pip list
52
-
53
- - name: Install package
54
- run: python -m pip install -e .[test]
55
-
56
- - name: Test light package
57
- run: python -m pytest -ra --ignore tests/test_notebooks.py
58
-
59
- - name: Install numpy v2
60
- if: matrix.python-version != 3.8
61
- run: python -m pip install "numpy>=2.0.0b1"
62
-
63
- - name: Test light package with numpy v2.x
64
- if: matrix.python-version != 3.8
65
- run: python -m pytest -ra --ignore tests/test_notebooks.py
66
-
67
- check-awkward-v1:
68
- needs: [check-light]
36
+ check-lite:
69
37
  runs-on: ubuntu-latest
70
38
  strategy:
71
39
  fail-fast: false
@@ -76,7 +44,7 @@ jobs:
76
44
  - "3.10"
77
45
  - "3.11"
78
46
  - "3.12"
79
- name: Python ${{ matrix.python-version }} - Awkward v1
47
+ name: Python ${{ matrix.python-version }} - Lite
80
48
  steps:
81
49
  - uses: actions/checkout@v4
82
50
 
@@ -87,21 +55,11 @@ jobs:
87
55
  - name: Requirements check
88
56
  run: python -m pip list
89
57
 
90
- - name: Install package
91
- run: python -m pip install -e .[dev]
92
-
93
- - name: Install awkward v1 and numpy v1
94
- run: python -m pip install -U "awkward<2" "numpy<2"
95
-
96
- - name: Run doctests on Python 3.11 with awkward v1.x and numpy v1.x
97
- if: matrix.python-version == '3.11'
98
- run: python -m pytest -ra --doctest-plus src/vector/
58
+ - name: Test lite package
59
+ run: pipx run nox -s lite-${{ matrix.python-version.key || matrix.python-version }} --verbose
99
60
 
100
- - name: Test package with awkward v1.x
101
- run: python -m pytest -ra --cov=vector --ignore tests/test_notebooks.py .
102
-
103
- check-awkward-v2:
104
- needs: [check-light]
61
+ check-full:
62
+ needs: [check-lite]
105
63
  runs-on: ubuntu-latest
106
64
  strategy:
107
65
  fail-fast: false
@@ -112,7 +70,7 @@ jobs:
112
70
  - "3.10"
113
71
  - "3.11"
114
72
  - "3.12"
115
- name: Python ${{ matrix.python-version }} - Awkward v2
73
+ name: Python ${{ matrix.python-version }} - Full
116
74
  steps:
117
75
  - uses: actions/checkout@v4
118
76
 
@@ -123,18 +81,12 @@ jobs:
123
81
  - name: Requirements check
124
82
  run: python -m pip list
125
83
 
126
- - name: Install package
127
- run: python -m pip install -e .[dev]
128
-
129
- - name: Install awkward v2
130
- run: python -m pip install -U awkward "numpy<2.1"
131
-
132
- - name: Run doctests on Python 3.11 with awkward v2.x
84
+ - name: Run doctests on Python 3.11
133
85
  if: matrix.python-version == 3.11
134
- run: python -m pytest -ra --doctest-plus src/vector/
86
+ run: pipx run nox -s doctests-${{ matrix.python-version.key || matrix.python-version }} --verbose
135
87
 
136
- - name: Test package with awkward v2.x
137
- run: python -m pytest -ra --cov=vector --ignore tests/test_notebooks.py .
88
+ - name: Test package and generate coverage report
89
+ run: pipx run nox -s coverage-${{ matrix.python-version.key || matrix.python-version }} --verbose
138
90
 
139
91
  - name: Upload coverage report
140
92
  uses: codecov/codecov-action@v4.5.0
@@ -161,8 +113,7 @@ jobs:
161
113
  run: python -m pytest -ra -m dis --ignore tests/test_notebooks.py
162
114
 
163
115
  pass:
164
- needs:
165
- [pre-commit, check-light, check-awkward-v1, check-awkward-v2, discheck]
116
+ needs: [pre-commit, check-lite, check-full, discheck]
166
117
  runs-on: ubuntu-latest
167
118
  steps:
168
119
  - run: echo "All jobs passed"
@@ -11,12 +11,14 @@ concurrency:
11
11
  group: ${{ github.workflow }}-${{ github.ref }}
12
12
  cancel-in-progress: true
13
13
 
14
+ env:
15
+ # The "FORCE_COLOR" variable, when set to 1,
16
+ # tells Nox to colorize itself.
17
+ FORCE_COLOR: "1"
18
+
14
19
  jobs:
15
20
  test:
16
21
  runs-on: ubuntu-latest
17
- strategy:
18
- matrix:
19
- python-version: ["3.10"]
20
22
 
21
23
  steps:
22
24
  - uses: actions/checkout@v4
@@ -24,18 +26,10 @@ jobs:
24
26
  - name: Set up Python
25
27
  uses: actions/setup-python@v5
26
28
  with:
27
- python-version: ${{ matrix.python-version }}
28
-
29
- - name: Install dependencies
30
- run: |
31
- python -m pip install --upgrade pip setuptools wheel
32
- python -m pip install --upgrade .[dev]
33
- python -m pip install numba uproot
34
- python -m pip install jupyter papermill
29
+ python-version: "3.10"
35
30
 
36
31
  - name: List installed Python packages
37
32
  run: python -m pip list
38
33
 
39
34
  - name: Test example notebooks
40
- run: |
41
- pytest tests/test_notebooks.py
35
+ run: pipx run nox -s notebooks
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: vector
3
- Version: 1.4.3
3
+ Version: 1.5.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
@@ -29,12 +29,12 @@ Classifier: Topic :: Scientific/Engineering :: Mathematics
29
29
  Classifier: Topic :: Scientific/Engineering :: Physics
30
30
  Classifier: Typing :: Typed
31
31
  Requires-Python: >=3.8
32
- Requires-Dist: numpy>=1.13.3
32
+ Requires-Dist: numpy<2.1,>=1.13.3
33
33
  Requires-Dist: packaging>=19
34
34
  Provides-Extra: awkward
35
- Requires-Dist: awkward>=1.2; extra == 'awkward'
35
+ Requires-Dist: awkward>=2; extra == 'awkward'
36
36
  Provides-Extra: dev
37
- Requires-Dist: awkward>=1.2; extra == 'dev'
37
+ Requires-Dist: awkward>=2; extra == 'dev'
38
38
  Requires-Dist: dask-awkward; extra == 'dev'
39
39
  Requires-Dist: nox; extra == 'dev'
40
40
  Requires-Dist: numba>=0.57; (python_version < '3.12') and extra == 'dev'
@@ -44,7 +44,7 @@ Requires-Dist: pytest-doctestplus; extra == 'dev'
44
44
  Requires-Dist: pytest>=6; extra == 'dev'
45
45
  Requires-Dist: sympy; extra == 'dev'
46
46
  Provides-Extra: docs
47
- Requires-Dist: awkward>=1.2; extra == 'docs'
47
+ Requires-Dist: awkward>=2; extra == 'docs'
48
48
  Requires-Dist: ipykernel; extra == 'docs'
49
49
  Requires-Dist: myst-parser>0.13; extra == 'docs'
50
50
  Requires-Dist: nbsphinx; extra == 'docs'
@@ -57,15 +57,15 @@ Requires-Dist: numba>=0.57; (python_version < '3.12') and extra == 'numba'
57
57
  Provides-Extra: sympy
58
58
  Requires-Dist: sympy; extra == 'sympy'
59
59
  Provides-Extra: test
60
- Requires-Dist: dask-awkward; extra == 'test'
61
60
  Requires-Dist: nox; extra == 'test'
62
61
  Requires-Dist: papermill>=2.4; extra == 'test'
63
62
  Requires-Dist: pytest-cov>=3; extra == 'test'
64
63
  Requires-Dist: pytest-doctestplus; extra == 'test'
65
64
  Requires-Dist: pytest>=6; extra == 'test'
66
65
  Provides-Extra: test-extras
66
+ Requires-Dist: dask-awkward; extra == 'test-extras'
67
67
  Requires-Dist: spark-parser; extra == 'test-extras'
68
- Requires-Dist: uncompyle6; extra == 'test-extras'
68
+ Requires-Dist: uncompyle6; (python_version == '3.8') and extra == 'test-extras'
69
69
  Description-Content-Type: text/markdown
70
70
 
71
71
  <img alt="Vector logo" width="433" src="https://raw.githubusercontent.com/scikit-hep/vector/main/docs/_images/vector-logo.png"/>
@@ -114,7 +114,7 @@ This overview is based on the [documentation here](https://vector.readthedocs.io
114
114
  ```python
115
115
  import vector
116
116
  import numpy as np
117
- import awkward as ak # at least version 1.2.0
117
+ import awkward as ak # at least v2.0.0 (vector v1.4.* supports awkward v1 and v2 both)
118
118
  import numba as nb
119
119
  ```
120
120
 
@@ -44,7 +44,7 @@ This overview is based on the [documentation here](https://vector.readthedocs.io
44
44
  ```python
45
45
  import vector
46
46
  import numpy as np
47
- import awkward as ak # at least version 1.2.0
47
+ import awkward as ak # at least v2.0.0 (vector v1.4.* supports awkward v1 and v2 both)
48
48
  import numba as nb
49
49
  ```
50
50
 
@@ -1,26 +1,28 @@
1
1
  # Changelog
2
2
 
3
- ## Version 1.4
3
+ ## Version 1.5
4
4
 
5
- ### Version 1.4.3
5
+ ### Version 1.5.0
6
6
 
7
- #### Fixes
7
+ #### Breaking
8
8
 
9
- - fix: uncap numpy [#502][]
9
+ - drop support for awkward v1 [#434][]
10
10
 
11
- [#502]: https://github.com/scikit-hep/vector/pull/502
11
+ [#434]: https://github.com/scikit-hep/vector/pull/434
12
+
13
+ ## Version 1.4
12
14
 
13
15
  ### Version 1.4.2
14
16
 
15
17
  #### Fixes
16
18
 
17
- - fix: depend on numpy<2.1 to support numba [#476][]
18
- - fix: fix ci for awkward v1.x (numpy v2 is out) [#479][]
19
- - fix: sympy tests (sympy v1.13) [#485][]
19
+ - fix: depend on numpy<2.1 to support numba
20
+ - fix: fix ci for awkward v1.x (numpy v2 is out)
21
+ - fix: sympy tests (sympy v1.13)
20
22
 
21
23
  #### Documentation
22
24
 
23
- - docs: update intro notebook + readme [#489][]
25
+ - docs: update intro notebook + readme
24
26
 
25
27
  [#476]: https://github.com/scikit-hep/vector/pull/476
26
28
  [#479]: https://github.com/scikit-hep/vector/pull/479
@@ -38,7 +38,7 @@
38
38
  "\n",
39
39
  "import numbers\n",
40
40
  "\n",
41
- "import awkward as ak # at least version 1.2.0rc5\n",
41
+ "import awkward as ak # at least v2.0.0 (vector v1.4.* supports awkward v1 and v2 both)\n",
42
42
  "import numba as nb\n",
43
43
  "import numpy as np\n",
44
44
  "import sympy\n",
@@ -6,6 +6,7 @@ import nox
6
6
 
7
7
  nox.options.sessions = ["lint", "lite", "tests", "doctests"]
8
8
 
9
+ ALL_PYTHON = ["3.8", "3.9", "3.10", "3.11", "3.12"]
9
10
 
10
11
  DIR = Path(__file__).parent.resolve()
11
12
 
@@ -17,7 +18,7 @@ def lint(session: nox.Session) -> None:
17
18
  session.run("pre-commit", "run", "--all-files", *session.posargs)
18
19
 
19
20
 
20
- @nox.session
21
+ @nox.session(reuse_venv=True)
21
22
  def pylint(session: nox.Session) -> None:
22
23
  """Run pylint."""
23
24
  session.install("pylint~=2.14.0")
@@ -25,14 +26,14 @@ def pylint(session: nox.Session) -> None:
25
26
  session.run("pylint", "src/vector/", *session.posargs)
26
27
 
27
28
 
28
- @nox.session
29
+ @nox.session(reuse_venv=True, python=ALL_PYTHON)
29
30
  def lite(session: nox.Session) -> None:
30
31
  """Run the linter."""
31
32
  session.install("-e", ".[test]")
32
33
  session.run("pytest", "--ignore", "tests/test_notebooks.py", *session.posargs)
33
34
 
34
35
 
35
- @nox.session(reuse_venv=True)
36
+ @nox.session(reuse_venv=True, python=ALL_PYTHON)
36
37
  def tests(session: nox.Session) -> None:
37
38
  """Run the unit and regular tests."""
38
39
  session.install("-e", ".[awkward,numba,test,test-extras,sympy]")
@@ -44,14 +45,14 @@ def tests(session: nox.Session) -> None:
44
45
  )
45
46
 
46
47
 
47
- @nox.session(reuse_venv=True)
48
+ @nox.session(reuse_venv=True, python=ALL_PYTHON)
48
49
  def coverage(session: nox.Session) -> None:
49
50
  """Run tests and compute coverage."""
50
51
  session.posargs.append("--cov=vector")
51
52
  tests(session)
52
53
 
53
54
 
54
- @nox.session(reuse_venv=True)
55
+ @nox.session(reuse_venv=True, python=ALL_PYTHON)
55
56
  def doctests(session: nox.Session) -> None:
56
57
  """Run the doctests."""
57
58
  session.install("-e", ".[awkward,numba,test,test-extras,sympy]")
@@ -61,8 +62,8 @@ def doctests(session: nox.Session) -> None:
61
62
  @nox.session(reuse_venv=True)
62
63
  def notebooks(session: nox.Session) -> None:
63
64
  """Run the notebook tests"""
64
- session.install("-e", ".[awkward,numba,test,test-extras]", "numba")
65
- session.install("jupyter", "papermill")
65
+ session.install("-e", ".[awkward,numba,test,sympy]")
66
+ session.install("jupyter")
66
67
  session.run("pytest", "tests/test_notebooks.py", *session.posargs)
67
68
 
68
69
 
@@ -81,7 +82,7 @@ def docs(session: nox.Session) -> None:
81
82
  print("Unsupported argument to docs")
82
83
 
83
84
 
84
- @nox.session
85
+ @nox.session(reuse_venv=True)
85
86
  def build(session: nox.Session) -> None:
86
87
  """Build an SDist and wheel."""
87
88
  session.install("build")
@@ -42,14 +42,14 @@ dynamic = [
42
42
  "version",
43
43
  ]
44
44
  dependencies = [
45
- "numpy>=1.13.3",
45
+ "numpy>=1.13.3,<2.1",
46
46
  "packaging>=19",
47
47
  ]
48
48
  optional-dependencies.awkward = [
49
- "awkward>=1.2",
49
+ "awkward>=2",
50
50
  ]
51
51
  optional-dependencies.dev = [
52
- "awkward>=1.2",
52
+ "awkward>=2",
53
53
  "dask-awkward",
54
54
  "nox",
55
55
  "numba>=0.57; python_version<'3.12'",
@@ -60,7 +60,7 @@ optional-dependencies.dev = [
60
60
  "sympy",
61
61
  ]
62
62
  optional-dependencies.docs = [
63
- "awkward>=1.2",
63
+ "awkward>=2",
64
64
  "ipykernel",
65
65
  "myst-parser>0.13",
66
66
  "nbsphinx",
@@ -76,7 +76,6 @@ optional-dependencies.sympy = [
76
76
  "sympy",
77
77
  ]
78
78
  optional-dependencies.test = [
79
- "dask-awkward",
80
79
  "nox",
81
80
  "papermill>=2.4",
82
81
  "pytest>=6",
@@ -84,8 +83,9 @@ optional-dependencies.test = [
84
83
  "pytest-doctestplus",
85
84
  ]
86
85
  optional-dependencies.test-extras = [
86
+ "dask_awkward",
87
87
  "spark-parser",
88
- "uncompyle6",
88
+ 'uncompyle6; python_version == "3.8"',
89
89
  ]
90
90
  urls."Bug Tracker" = "https://github.com/scikit-hep/vector/issues"
91
91
  urls.Changelog = "https://vector.readthedocs.io/en/latest/changelog.html"
@@ -60,21 +60,13 @@ from vector.backends.object import (
60
60
 
61
61
  def _import_awkward() -> None:
62
62
  awk_version = packaging.version.Version(importlib.metadata.version("awkward"))
63
- if awk_version < packaging.version.Version("1.2.0rc5"):
63
+ if awk_version < packaging.version.Version("2.0.0"):
64
64
  # the only context users will see this message is if they're trying to use vector.awk
65
65
  # VectorAwkward is still set to None
66
- msg = f"awkward {awk_version} is too old; please upgrade to 1.2.0 or later"
66
+ msg = f"awkward {awk_version} is too old; please upgrade to 2.0.0 or later"
67
67
  raise ImportError(msg)
68
68
 
69
69
 
70
- _is_awkward_v2: bool | None
71
- try:
72
- _is_awkward_v2 = packaging.version.Version(
73
- importlib.metadata.version("awkward")
74
- ) >= packaging.version.Version("2.0.0rc1")
75
- except importlib.metadata.PackageNotFoundError:
76
- _is_awkward_v2 = None
77
-
78
70
  try:
79
71
  import awkward
80
72
 
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.4.3'
16
- __version_tuple__ = version_tuple = (1, 4, 3)
15
+ __version__ = version = '1.5.0'
16
+ __version_tuple__ = version_tuple = (1, 5, 0)
@@ -1638,33 +1638,17 @@ MomentumRecord4D.MomentumClass = MomentumRecord4D
1638
1638
 
1639
1639
  # implementation of behaviors in Numba ########################################
1640
1640
 
1641
- if vector._is_awkward_v2:
1642
1641
 
1643
- def _lookup_field(record_type: typing.Any, name: str) -> int:
1644
- return record_type.fields.index(name)
1645
-
1646
- else:
1647
-
1648
- def _lookup_field(record_type: typing.Any, name: str) -> int:
1649
- return record_type.recordlookup.index(name)
1642
+ def _lookup_field(record_type: typing.Any, name: str) -> int:
1643
+ return record_type.fields.index(name)
1650
1644
 
1651
1645
 
1652
1646
  def _arraytype_of(awkwardtype: typing.Any, component: str) -> typing.Any:
1653
1647
  import numba
1654
1648
 
1655
- if isinstance(
1656
- awkwardtype,
1657
- ak._connect.numba.layout.NumpyArrayType
1658
- if hasattr(ak._connect, "numba") # Awkward v2
1659
- else ak._connect._numba.layout.NumpyArrayType,
1660
- ):
1649
+ if isinstance(awkwardtype, ak._connect.numba.layout.NumpyArrayType):
1661
1650
  return awkwardtype.arraytype
1662
- elif isinstance(
1663
- awkwardtype,
1664
- ak._connect.numba.layout.IndexedArrayType
1665
- if hasattr(ak._connect, "numba") # Awkward v2
1666
- else ak._connect._numba.layout.IndexedArrayType,
1667
- ):
1651
+ elif isinstance(awkwardtype, ak._connect.numba.layout.IndexedArrayType):
1668
1652
  return _arraytype_of(awkwardtype.contenttype, component)
1669
1653
  raise numba.TypingError(
1670
1654
  f"vector components like {component!r} must be NumpyArrayType, not {awkwardtype}"
@@ -1947,11 +1931,7 @@ def _numba_lower(
1947
1931
 
1948
1932
  vectorcls = sig.return_type.instance_class
1949
1933
 
1950
- fields = (
1951
- sig.args[0].arrayviewtype.type.fields
1952
- if vector._is_awkward_v2
1953
- else sig.args[0].arrayviewtype.type.recordlookup
1954
- )
1934
+ fields = sig.args[0].arrayviewtype.type.fields
1955
1935
 
1956
1936
  if issubclass(vectorcls, (VectorObject2D, VectorObject3D, VectorObject4D)):
1957
1937
  if issubclass(sig.return_type.azimuthaltype.instance_class, AzimuthalXY):
@@ -218,37 +218,20 @@ def _is_type_safe(array_type: typing.Any) -> bool:
218
218
  awkward.types.OptionType,
219
219
  ),
220
220
  ):
221
- # .content is Awkward v2
222
- array_type = (
223
- array_type.content if hasattr(array_type, "content") else array_type.type
224
- )
221
+ array_type = array_type.content
225
222
 
226
223
  if not isinstance(array_type, awkward.types.RecordType):
227
224
  return False
228
225
 
229
- # .contents is Awkward v2
230
- contents = (
231
- array_type.contents if hasattr(array_type, "contents") else array_type.fields()
232
- )
226
+ contents = array_type.contents
233
227
  for field_type in contents:
234
228
  if isinstance(field_type, awkward.types.OptionType):
235
229
  field_type = ( # noqa: PLW2901
236
230
  field_type.content
237
- if hasattr(array_type, "content")
238
- else field_type.type
239
231
  )
240
- if not isinstance(
241
- field_type,
242
- awkward.types.NumpyType
243
- if hasattr(awkward.types, "NumpyType")
244
- else awkward.types.PrimitiveType,
245
- ):
232
+ if not isinstance(field_type, awkward.types.NumpyType):
246
233
  return False
247
- dt = (
248
- field_type.primitive
249
- if hasattr(field_type, "primitive")
250
- else field_type.dtype
251
- )
234
+ dt = field_type.primitive
252
235
  if (
253
236
  not dt.startswith("int")
254
237
  and not dt.startswith("uint")
@@ -215,38 +215,38 @@ def _getitem(
215
215
  )
216
216
  if hasattr(array, "_longitudinal_type"):
217
217
  longitudinal = array._longitudinal_type.ObjectClass(
218
- *(out[x] for x in _coordinate_class_to_names[_ltype(array)])
218
+ *(out[x] for x in _coordinate_class_to_names[_ltype(array)]) # type: ignore[arg-type]
219
219
  )
220
220
  if hasattr(array, "_temporal_type"):
221
221
  temporal = array._temporal_type.ObjectClass(
222
- *(out[x] for x in _coordinate_class_to_names[_ttype(array)])
222
+ *(out[x] for x in _coordinate_class_to_names[_ttype(array)]) # type: ignore[arg-type]
223
223
  )
224
224
  if temporal is not None:
225
225
  return array.ObjectClass(
226
226
  azimuthal=azimuthal,
227
- longitudinal=longitudinal, # type: ignore[arg-type]
227
+ longitudinal=longitudinal, # type: ignore[arg-type, return-value]
228
228
  temporal=temporal, # type: ignore[arg-type]
229
229
  )
230
230
  elif longitudinal is not None:
231
- return array.ObjectClass(azimuthal=azimuthal, longitudinal=longitudinal) # type: ignore[arg-type]
231
+ return array.ObjectClass(azimuthal=azimuthal, longitudinal=longitudinal) # type: ignore[arg-type, return-value]
232
232
  elif azimuthal is not None:
233
- return array.ObjectClass(azimuthal=azimuthal)
233
+ return array.ObjectClass(azimuthal=azimuthal) # type: ignore[return-value]
234
234
  elif issubclass(array.ObjectClass, vector.backends.object.AzimuthalObject):
235
- return array.ObjectClass(*tuple(out)[:2]) # type: ignore[arg-type]
235
+ return array.ObjectClass(*tuple(out)[:2]) # type: ignore[arg-type, return-value]
236
236
  elif issubclass(array.ObjectClass, vector.backends.object.LongitudinalObject):
237
237
  coords = (
238
238
  out.view(numpy.ndarray)[0]
239
239
  if len(out) == 1 # type: ignore[arg-type]
240
240
  else out.view(numpy.ndarray)[2]
241
241
  )
242
- return array.ObjectClass(coords)
242
+ return array.ObjectClass(coords) # type: ignore[return-value]
243
243
  else:
244
244
  coords = (
245
245
  out.view(numpy.ndarray)[0]
246
246
  if len(out) == 1 # type: ignore[arg-type]
247
247
  else out.view(numpy.ndarray)[3]
248
248
  )
249
- return array.ObjectClass(coords)
249
+ return array.ObjectClass(coords) # type: ignore[return-value]
250
250
 
251
251
 
252
252
  def _array_repr(
@@ -879,14 +879,14 @@ class VectorNumpy(Vector, GetItem):
879
879
  keepdims=keepdims,
880
880
  initial=initial,
881
881
  where=where,
882
- ),
882
+ ), # type: ignore[call-overload]
883
883
  )
884
884
 
885
885
  def __eq__(self, other: typing.Any) -> typing.Any:
886
- return numpy.equal(self, other)
886
+ return numpy.equal(self, other) # type: ignore[call-overload]
887
887
 
888
888
  def __ne__(self, other: typing.Any) -> typing.Any:
889
- return numpy.not_equal(self, other)
889
+ return numpy.not_equal(self, other) # type: ignore[call-overload]
890
890
 
891
891
  def __reduce__(self) -> str | tuple[typing.Any, ...]:
892
892
  pickled_state = super().__reduce__()
@@ -1197,7 +1197,7 @@ class VectorNumpy2D(VectorNumpy, Planar, Vector2D, FloatArray): # type: ignore[
1197
1197
  AzimuthalNumpyXY([(1.1, 2.1), (1.2, 2.2), (1.3, 2.3), (1.4, 2.4),
1198
1198
  (1.5, 2.5)], dtype=[('x', '<f8'), ('y', '<f8')])
1199
1199
  """
1200
- return self.view(self._azimuthal_type)
1200
+ return self.view(self._azimuthal_type) # type: ignore[return-value]
1201
1201
 
1202
1202
  def _wrap_result(
1203
1203
  self,
@@ -1305,7 +1305,7 @@ class VectorNumpy2D(VectorNumpy, Planar, Vector2D, FloatArray): # type: ignore[
1305
1305
  return _setitem(self, where, what, False)
1306
1306
 
1307
1307
 
1308
- class MomentumNumpy2D(PlanarMomentum, VectorNumpy2D):
1308
+ class MomentumNumpy2D(PlanarMomentum, VectorNumpy2D): # type: ignore[misc]
1309
1309
  """
1310
1310
  Two dimensional momentum vector class for the NumPy backend. This class can be directly
1311
1311
  used to construct two dimensional NumPy momentum vectors. For two dimensional
@@ -1427,13 +1427,13 @@ class VectorNumpy3D(VectorNumpy, Spatial, Vector3D, FloatArray): # type: ignore
1427
1427
  def azimuthal(self) -> AzimuthalNumpy:
1428
1428
  """Returns the azimuthal type class for the given ``VectorNumpy3D`` object."""
1429
1429
  # TODO: Add an example here - see https://github.com/scikit-hep/vector/issues/194
1430
- return self.view(self._azimuthal_type)
1430
+ return self.view(self._azimuthal_type) # type: ignore[return-value]
1431
1431
 
1432
1432
  @property
1433
1433
  def longitudinal(self) -> LongitudinalNumpy:
1434
1434
  """Returns the longitudinal type class for the given ``VectorNumpy3D`` object."""
1435
1435
  # TODO: Add an example here - see https://github.com/scikit-hep/vector/issues/194
1436
- return self.view(self._longitudinal_type)
1436
+ return self.view(self._longitudinal_type) # type: ignore[return-value]
1437
1437
 
1438
1438
  def _wrap_result(
1439
1439
  self,
@@ -1562,7 +1562,7 @@ class VectorNumpy3D(VectorNumpy, Spatial, Vector3D, FloatArray): # type: ignore
1562
1562
  return _setitem(self, where, what, False)
1563
1563
 
1564
1564
 
1565
- class MomentumNumpy3D(SpatialMomentum, VectorNumpy3D):
1565
+ class MomentumNumpy3D(SpatialMomentum, VectorNumpy3D): # type: ignore[misc]
1566
1566
  """
1567
1567
  Three dimensional momentum vector class for the NumPy backend. This class can be directly
1568
1568
  used to construct three dimensional NumPy momentum vectors. For three dimensional
@@ -1707,19 +1707,19 @@ class VectorNumpy4D(VectorNumpy, Lorentz, Vector4D, FloatArray): # type: ignore
1707
1707
  def azimuthal(self) -> AzimuthalNumpy:
1708
1708
  """Returns the azimuthal type class for the given ``VectorNumpy4D`` object."""
1709
1709
  # TODO: Add an example here - see https://github.com/scikit-hep/vector/issues/194
1710
- return self.view(self._azimuthal_type)
1710
+ return self.view(self._azimuthal_type) # type: ignore[return-value]
1711
1711
 
1712
1712
  @property
1713
1713
  def longitudinal(self) -> LongitudinalNumpy:
1714
1714
  """Returns the longitudinal type class for the given ``Vectornumpy4D`` object."""
1715
1715
  # TODO: Add an example here - see https://github.com/scikit-hep/vector/issues/194
1716
- return self.view(self._longitudinal_type)
1716
+ return self.view(self._longitudinal_type) # type: ignore[return-value]
1717
1717
 
1718
1718
  @property
1719
1719
  def temporal(self) -> TemporalNumpy:
1720
1720
  """Returns the azimuthal type class for the given ``VectorNumpy4D`` object."""
1721
1721
  # TODO: Add an example here - see https://github.com/scikit-hep/vector/issues/194
1722
- return self.view(self._temporal_type)
1722
+ return self.view(self._temporal_type) # type: ignore[return-value]
1723
1723
 
1724
1724
  def _wrap_result(
1725
1725
  self,
@@ -1882,7 +1882,7 @@ class VectorNumpy4D(VectorNumpy, Lorentz, Vector4D, FloatArray): # type: ignore
1882
1882
  return _setitem(self, where, what, False)
1883
1883
 
1884
1884
 
1885
- class MomentumNumpy4D(LorentzMomentum, VectorNumpy4D):
1885
+ class MomentumNumpy4D(LorentzMomentum, VectorNumpy4D): # type: ignore[misc]
1886
1886
  """
1887
1887
  Four dimensional momentum vector class for the NumPy backend. This class can be directly
1888
1888
  used to construct four dimensional NumPy momentum vectors. For three dimensional