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.
- {vector-1.4.3 → vector-1.5.0}/.github/workflows/ci.yml +17 -66
- {vector-1.4.3 → vector-1.5.0}/.github/workflows/notebooks.yml +7 -13
- {vector-1.4.3 → vector-1.5.0}/PKG-INFO +8 -8
- {vector-1.4.3 → vector-1.5.0}/README.md +1 -1
- {vector-1.4.3 → vector-1.5.0}/docs/changelog.md +11 -9
- {vector-1.4.3 → vector-1.5.0}/docs/usage/intro.ipynb +1 -1
- {vector-1.4.3 → vector-1.5.0}/noxfile.py +9 -8
- {vector-1.4.3 → vector-1.5.0}/pyproject.toml +6 -6
- {vector-1.4.3 → vector-1.5.0}/src/vector/__init__.py +2 -10
- {vector-1.4.3 → vector-1.5.0}/src/vector/_version.py +2 -2
- {vector-1.4.3 → vector-1.5.0}/src/vector/backends/awkward.py +5 -25
- {vector-1.4.3 → vector-1.5.0}/src/vector/backends/awkward_constructors.py +4 -21
- {vector-1.4.3 → vector-1.5.0}/src/vector/backends/numpy.py +20 -20
- {vector-1.4.3 → vector-1.5.0}/src/vector/backends/object.py +18 -18
- {vector-1.4.3 → vector-1.5.0}/src/vector/backends/sympy.py +18 -18
- {vector-1.4.3 → vector-1.5.0}/tests/backends/test_awkward.py +24 -29
- {vector-1.4.3 → vector-1.5.0}/tests/test_issues.py +1 -5
- vector-1.4.3/tests/samples/issue-161.pkl +0 -0
- {vector-1.4.3 → vector-1.5.0}/.all-contributorsrc +0 -0
- {vector-1.4.3 → vector-1.5.0}/.git_archival.txt +0 -0
- {vector-1.4.3 → vector-1.5.0}/.gitattributes +0 -0
- {vector-1.4.3 → vector-1.5.0}/.github/CONTRIBUTING.md +0 -0
- {vector-1.4.3 → vector-1.5.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {vector-1.4.3 → vector-1.5.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {vector-1.4.3 → vector-1.5.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {vector-1.4.3 → vector-1.5.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {vector-1.4.3 → vector-1.5.0}/.github/codecov.yml +0 -0
- {vector-1.4.3 → vector-1.5.0}/.github/dependabot.yml +0 -0
- {vector-1.4.3 → vector-1.5.0}/.github/matchers/pylint.json +0 -0
- {vector-1.4.3 → vector-1.5.0}/.github/workflows/cd.yml +0 -0
- {vector-1.4.3 → vector-1.5.0}/.gitignore +0 -0
- {vector-1.4.3 → vector-1.5.0}/.pre-commit-config.yaml +0 -0
- {vector-1.4.3 → vector-1.5.0}/.readthedocs.yml +0 -0
- {vector-1.4.3 → vector-1.5.0}/CITATION.cff +0 -0
- {vector-1.4.3 → vector-1.5.0}/LICENSE +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/Makefile +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/_images/LogoSrc.svg +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/_images/vector-logo.png +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends._numba.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends._numba_object.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.awkward.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.awkward_constructors.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.numba_numpy.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.numpy.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.object.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/backends/vector.backends.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Et.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Et2.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Mt.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Mt2.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.add.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.beta.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostX_beta.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostX_gamma.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostY_beta.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostY_gamma.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostZ_beta.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostZ_gamma.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boost_beta3.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boost_p4.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.deltaRapidityPhi.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.deltaRapidityPhi2.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.dot.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.equal.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.gamma.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.is_lightlike.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.is_spacelike.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.is_timelike.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.isclose.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.not_equal.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.rapidity.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.scale.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.subtract.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.t.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.t2.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.tau.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.tau2.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.to_beta3.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.transform4D.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.unit.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.add.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.deltaphi.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.dot.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.equal.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.is_antiparallel.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.is_parallel.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.is_perpendicular.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.isclose.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.not_equal.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.phi.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rho.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rho2.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rotateZ.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.scale.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.subtract.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.transform2D.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.unit.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.x.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.y.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.add.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.costheta.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.cottheta.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.cross.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaR.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaR2.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaangle.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaeta.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.dot.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.equal.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.eta.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.is_antiparallel.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.is_parallel.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.is_perpendicular.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.isclose.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.mag.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.mag2.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.not_equal.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotateX.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotateY.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotate_axis.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotate_euler.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotate_quaternion.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.scale.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.subtract.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.theta.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.transform3D.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.unit.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.z.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/compute/vector._compute.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/inheritance.svg +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/modules.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/vector._methods.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/vector._typeutils.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/api/vector.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/conf.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/index.rst +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/make.bat +0 -0
- {vector-1.4.3 → vector-1.5.0}/docs/usage/structure.md +0 -0
- {vector-1.4.3 → vector-1.5.0}/environment.yml +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/Et.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/Et2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/Mt.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/Mt2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/add.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostX_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostX_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostY_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostY_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostZ_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boostZ_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boost_beta3.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/boost_p4.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/deltaRapidityPhi.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/deltaRapidityPhi2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/dot.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/is_lightlike.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/is_spacelike.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/is_timelike.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/isclose.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/not_equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/rapidity.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/scale.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/subtract.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/t.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/t2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/tau.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/tau2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/to_beta3.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/transform4D.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/lorentz/unit.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/add.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/deltaphi.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/dot.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/is_antiparallel.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/is_parallel.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/is_perpendicular.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/isclose.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/not_equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/phi.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/rho.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/rho2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/rotateZ.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/scale.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/subtract.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/transform2D.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/unit.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/x.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/planar/y.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/add.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/costheta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/cottheta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/cross.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/deltaR.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/deltaR2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/deltaangle.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/deltaeta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/dot.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/eta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/is_antiparallel.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/is_parallel.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/is_perpendicular.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/isclose.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/mag.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/mag2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/not_equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotateX.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotateY.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotate_axis.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotate_euler.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/rotate_quaternion.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/scale.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/subtract.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/theta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/transform3D.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/unit.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_compute/spatial/z.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_lib.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_methods.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/_typeutils.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/backends/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/backends/_numba.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/backends/_numba_object.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/backends/numba_numpy.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/py.typed +0 -0
- {vector-1.4.3 → vector-1.5.0}/src/vector/version.pyi +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/backends/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/backends/test_awkward_numba.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/backends/test_dask_awkward.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/backends/test_numba_numpy.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/backends/test_numba_object.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/backends/test_numpy.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/backends/test_object.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/backends/test_operators.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/backends/test_sympy.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_Et.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_Et2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_Mt.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_Mt2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostX_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostX_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostY_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostY_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostZ_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boostZ_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boost_beta3.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_boost_p4.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_deltaRapidityPhi.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_deltaRapidityPhi2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_is_lightlike.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_is_spacelike.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_is_timelike.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_rapidity.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_t.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_t2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_tau.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_tau2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/lorentz/test_to_beta3.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_deltaphi.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_phi.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_rho.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_rho2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_rotateZ.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_x.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/planar/test_y.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_costheta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_cottheta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_cross.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_deltaR.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_deltaR2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_deltaangle.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_deltaeta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_eta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_mag.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_mag2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotateX.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotateY.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotate_axis.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotate_euler.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_rotate_quaternion.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_theta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/spatial/test_z.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Et.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Et2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Mt.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Mt2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostX_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostX_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostY_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostY_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostZ_beta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostZ_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boost_beta3.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boost_p4.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_deltaRapidityPhi.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_deltaRapidityPhi2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_gamma.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_is_lightlike.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_is_spacelike.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_is_timelike.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_rapidity.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_t.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_t2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_tau.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_tau2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/lorentz/test_to_beta3.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_deltaphi.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_phi.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_rho.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_rho2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_rotateZ.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_x.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/planar/test_y.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/__init__.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_costheta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_cottheta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_cross.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaR.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaR2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaangle.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaeta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_eta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_mag.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_mag2.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotateX.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotateY.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotate_axis.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotate_euler.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotate_quaternion.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_theta.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/spatial/test_z.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_add.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_conversions.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_dot.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_is_antiparallel.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_is_parallel.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_is_perpendicular.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_not_equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_scale.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_subtract.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/sympy/test_unit.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_add.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_conversions.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_dot.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_is_antiparallel.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_is_parallel.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_is_perpendicular.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_isclose.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_not_equal.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_scale.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_subtract.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/compute/test_unit.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/samples/issue-161-v2.pkl +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/test_compute_features.py +0 -0
- {vector-1.4.3 → vector-1.5.0}/tests/test_methods.py +0 -0
- {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-
|
|
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 }} -
|
|
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:
|
|
91
|
-
run:
|
|
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
|
-
|
|
101
|
-
|
|
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 }} -
|
|
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:
|
|
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:
|
|
86
|
+
run: pipx run nox -s doctests-${{ matrix.python-version.key || matrix.python-version }} --verbose
|
|
135
87
|
|
|
136
|
-
- name: Test package
|
|
137
|
-
run:
|
|
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:
|
|
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.
|
|
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
|
|
32
|
+
Requires-Dist: numpy<2.1,>=1.13.3
|
|
33
33
|
Requires-Dist: packaging>=19
|
|
34
34
|
Provides-Extra: awkward
|
|
35
|
-
Requires-Dist: awkward>=
|
|
35
|
+
Requires-Dist: awkward>=2; extra == 'awkward'
|
|
36
36
|
Provides-Extra: dev
|
|
37
|
-
Requires-Dist: awkward>=
|
|
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>=
|
|
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
|
|
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
|
|
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.
|
|
3
|
+
## Version 1.5
|
|
4
4
|
|
|
5
|
-
### Version 1.
|
|
5
|
+
### Version 1.5.0
|
|
6
6
|
|
|
7
|
-
####
|
|
7
|
+
#### Breaking
|
|
8
8
|
|
|
9
|
-
-
|
|
9
|
+
- drop support for awkward v1 [#434][]
|
|
10
10
|
|
|
11
|
-
[#
|
|
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
|
|
18
|
-
- fix: fix ci for awkward v1.x (numpy v2 is out)
|
|
19
|
-
- fix: sympy tests (sympy v1.13)
|
|
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
|
|
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
|
|
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,
|
|
65
|
-
session.install("jupyter"
|
|
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>=
|
|
49
|
+
"awkward>=2",
|
|
50
50
|
]
|
|
51
51
|
optional-dependencies.dev = [
|
|
52
|
-
"awkward>=
|
|
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>=
|
|
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
|
-
|
|
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("
|
|
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
|
|
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
|
|
|
@@ -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
|
-
|
|
1644
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|