vector 1.4.2__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.2 → vector-1.5.0}/.github/workflows/ci.yml +17 -66
- {vector-1.4.2 → vector-1.5.0}/.github/workflows/notebooks.yml +7 -13
- {vector-1.4.2 → vector-1.5.0}/PKG-INFO +7 -7
- {vector-1.4.2 → vector-1.5.0}/README.md +1 -1
- {vector-1.4.2 → vector-1.5.0}/docs/changelog.md +10 -0
- {vector-1.4.2 → vector-1.5.0}/docs/usage/intro.ipynb +1 -1
- {vector-1.4.2 → vector-1.5.0}/noxfile.py +9 -8
- {vector-1.4.2 → vector-1.5.0}/pyproject.toml +5 -5
- {vector-1.4.2 → vector-1.5.0}/src/vector/__init__.py +2 -10
- {vector-1.4.2 → vector-1.5.0}/src/vector/_version.py +2 -2
- {vector-1.4.2 → vector-1.5.0}/src/vector/backends/awkward.py +5 -25
- {vector-1.4.2 → vector-1.5.0}/src/vector/backends/awkward_constructors.py +4 -21
- {vector-1.4.2 → vector-1.5.0}/tests/backends/test_awkward.py +24 -29
- {vector-1.4.2 → vector-1.5.0}/tests/test_issues.py +1 -5
- vector-1.4.2/tests/samples/issue-161.pkl +0 -0
- {vector-1.4.2 → vector-1.5.0}/.all-contributorsrc +0 -0
- {vector-1.4.2 → vector-1.5.0}/.git_archival.txt +0 -0
- {vector-1.4.2 → vector-1.5.0}/.gitattributes +0 -0
- {vector-1.4.2 → vector-1.5.0}/.github/CONTRIBUTING.md +0 -0
- {vector-1.4.2 → vector-1.5.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {vector-1.4.2 → vector-1.5.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {vector-1.4.2 → vector-1.5.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {vector-1.4.2 → vector-1.5.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {vector-1.4.2 → vector-1.5.0}/.github/codecov.yml +0 -0
- {vector-1.4.2 → vector-1.5.0}/.github/dependabot.yml +0 -0
- {vector-1.4.2 → vector-1.5.0}/.github/matchers/pylint.json +0 -0
- {vector-1.4.2 → vector-1.5.0}/.github/workflows/cd.yml +0 -0
- {vector-1.4.2 → vector-1.5.0}/.gitignore +0 -0
- {vector-1.4.2 → vector-1.5.0}/.pre-commit-config.yaml +0 -0
- {vector-1.4.2 → vector-1.5.0}/.readthedocs.yml +0 -0
- {vector-1.4.2 → vector-1.5.0}/CITATION.cff +0 -0
- {vector-1.4.2 → vector-1.5.0}/LICENSE +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/Makefile +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/_images/LogoSrc.svg +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/_images/vector-logo.png +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/backends/vector.backends._numba.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/backends/vector.backends._numba_object.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/backends/vector.backends.awkward.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/backends/vector.backends.awkward_constructors.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/backends/vector.backends.numba_numpy.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/backends/vector.backends.numpy.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/backends/vector.backends.object.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/backends/vector.backends.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Et.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Et2.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Mt.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.Mt2.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.add.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.beta.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostX_beta.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostX_gamma.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostY_beta.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostY_gamma.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostZ_beta.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boostZ_gamma.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boost_beta3.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.boost_p4.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.deltaRapidityPhi.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.deltaRapidityPhi2.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.dot.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.equal.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.gamma.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.is_lightlike.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.is_spacelike.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.is_timelike.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.isclose.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.not_equal.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.rapidity.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.scale.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.subtract.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.t.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.t2.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.tau.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.tau2.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.to_beta3.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.transform4D.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/lorentz/vector._compute.lorentz.unit.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.add.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.deltaphi.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.dot.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.equal.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.is_antiparallel.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.is_parallel.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.is_perpendicular.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.isclose.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.not_equal.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.phi.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rho.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rho2.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rotateZ.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.scale.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.subtract.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.transform2D.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.unit.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.x.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/planar/vector._compute.planar.y.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.add.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.costheta.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.cottheta.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.cross.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaR.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaR2.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaangle.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.deltaeta.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.dot.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.equal.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.eta.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.is_antiparallel.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.is_parallel.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.is_perpendicular.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.isclose.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.mag.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.mag2.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.not_equal.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotateX.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotateY.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotate_axis.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotate_euler.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rotate_quaternion.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.scale.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.subtract.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.theta.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.transform3D.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.unit.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/spatial/vector._compute.spatial.z.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/compute/vector._compute.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/inheritance.svg +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/modules.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/vector._methods.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/vector._typeutils.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/api/vector.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/conf.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/index.rst +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/make.bat +0 -0
- {vector-1.4.2 → vector-1.5.0}/docs/usage/structure.md +0 -0
- {vector-1.4.2 → vector-1.5.0}/environment.yml +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/Et.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/Et2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/Mt.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/Mt2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/add.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/boostX_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/boostX_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/boostY_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/boostY_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/boostZ_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/boostZ_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/boost_beta3.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/boost_p4.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/deltaRapidityPhi.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/deltaRapidityPhi2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/dot.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/is_lightlike.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/is_spacelike.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/is_timelike.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/isclose.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/not_equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/rapidity.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/scale.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/subtract.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/t.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/t2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/tau.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/tau2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/to_beta3.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/transform4D.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/lorentz/unit.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/add.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/deltaphi.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/dot.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/is_antiparallel.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/is_parallel.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/is_perpendicular.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/isclose.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/not_equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/phi.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/rho.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/rho2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/rotateZ.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/scale.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/subtract.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/transform2D.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/unit.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/x.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/planar/y.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/add.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/costheta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/cottheta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/cross.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/deltaR.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/deltaR2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/deltaangle.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/deltaeta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/dot.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/eta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/is_antiparallel.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/is_parallel.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/is_perpendicular.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/isclose.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/mag.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/mag2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/not_equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/rotateX.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/rotateY.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/rotate_axis.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/rotate_euler.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/rotate_quaternion.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/scale.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/subtract.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/theta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/transform3D.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/unit.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_compute/spatial/z.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_lib.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_methods.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/_typeutils.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/backends/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/backends/_numba.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/backends/_numba_object.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/backends/numba_numpy.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/backends/numpy.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/backends/object.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/backends/sympy.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/py.typed +0 -0
- {vector-1.4.2 → vector-1.5.0}/src/vector/version.pyi +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/backends/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/backends/test_awkward_numba.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/backends/test_dask_awkward.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/backends/test_numba_numpy.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/backends/test_numba_object.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/backends/test_numpy.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/backends/test_object.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/backends/test_operators.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/backends/test_sympy.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_Et.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_Et2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_Mt.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_Mt2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_boostX_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_boostX_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_boostY_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_boostY_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_boostZ_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_boostZ_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_boost_beta3.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_boost_p4.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_deltaRapidityPhi.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_deltaRapidityPhi2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_is_lightlike.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_is_spacelike.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_is_timelike.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_rapidity.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_t.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_t2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_tau.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_tau2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/lorentz/test_to_beta3.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/planar/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/planar/test_deltaphi.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/planar/test_phi.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/planar/test_rho.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/planar/test_rho2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/planar/test_rotateZ.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/planar/test_x.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/planar/test_y.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_costheta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_cottheta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_cross.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_deltaR.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_deltaR2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_deltaangle.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_deltaeta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_eta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_mag.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_mag2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_rotateX.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_rotateY.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_rotate_axis.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_rotate_euler.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_rotate_quaternion.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_theta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/spatial/test_z.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Et.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Et2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Mt.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_Mt2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostX_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostX_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostY_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostY_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostZ_beta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boostZ_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boost_beta3.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_boost_p4.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_deltaRapidityPhi.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_deltaRapidityPhi2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_gamma.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_is_lightlike.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_is_spacelike.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_is_timelike.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_rapidity.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_t.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_t2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_tau.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_tau2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/lorentz/test_to_beta3.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/planar/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/planar/test_deltaphi.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/planar/test_phi.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/planar/test_rho.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/planar/test_rho2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/planar/test_rotateZ.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/planar/test_x.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/planar/test_y.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/__init__.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_costheta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_cottheta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_cross.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaR.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaR2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaangle.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_deltaeta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_eta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_mag.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_mag2.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotateX.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotateY.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotate_axis.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotate_euler.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_rotate_quaternion.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_theta.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/spatial/test_z.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_add.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_conversions.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_dot.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_is_antiparallel.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_is_parallel.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_is_perpendicular.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_not_equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_scale.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_subtract.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/sympy/test_unit.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_add.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_conversions.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_dot.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_is_antiparallel.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_is_parallel.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_is_perpendicular.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_isclose.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_not_equal.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_scale.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_subtract.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/compute/test_unit.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/samples/issue-161-v2.pkl +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/test_compute_features.py +0 -0
- {vector-1.4.2 → vector-1.5.0}/tests/test_methods.py +0 -0
- {vector-1.4.2 → 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
|
|
@@ -32,9 +32,9 @@ Requires-Python: >=3.8
|
|
|
32
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
|
|
|
@@ -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")
|
|
@@ -46,10 +46,10 @@ dependencies = [
|
|
|
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")
|
|
@@ -14,11 +14,6 @@ import pytest
|
|
|
14
14
|
|
|
15
15
|
import vector
|
|
16
16
|
from vector import VectorObject2D
|
|
17
|
-
from vector.backends.awkward import (
|
|
18
|
-
MomentumAwkward2D,
|
|
19
|
-
MomentumAwkward3D,
|
|
20
|
-
MomentumAwkward4D,
|
|
21
|
-
)
|
|
22
17
|
|
|
23
18
|
ak = pytest.importorskip("awkward")
|
|
24
19
|
|
|
@@ -310,7 +305,7 @@ def test_zip():
|
|
|
310
305
|
|
|
311
306
|
@pytest.mark.skipif(
|
|
312
307
|
awkward_without_record_reducers,
|
|
313
|
-
reason="record reducers
|
|
308
|
+
reason="record reducers were added before awkward==2.2.3, but had some bugs",
|
|
314
309
|
)
|
|
315
310
|
def test_sum_2d():
|
|
316
311
|
v = vector.Array(
|
|
@@ -380,7 +375,7 @@ def test_sum_2d():
|
|
|
380
375
|
|
|
381
376
|
@pytest.mark.skipif(
|
|
382
377
|
awkward_without_record_reducers,
|
|
383
|
-
reason="record reducers
|
|
378
|
+
reason="record reducers were added before awkward==2.2.3, but had some bugs",
|
|
384
379
|
)
|
|
385
380
|
def test_sum_3d():
|
|
386
381
|
v = vector.Array(
|
|
@@ -420,7 +415,7 @@ def test_sum_3d():
|
|
|
420
415
|
|
|
421
416
|
@pytest.mark.skipif(
|
|
422
417
|
awkward_without_record_reducers,
|
|
423
|
-
reason="record reducers
|
|
418
|
+
reason="record reducers were added before awkward==2.2.3, but had some bugs",
|
|
424
419
|
)
|
|
425
420
|
def test_sum_4d():
|
|
426
421
|
v = vector.Array(
|
|
@@ -465,7 +460,7 @@ def test_sum_4d():
|
|
|
465
460
|
|
|
466
461
|
@pytest.mark.skipif(
|
|
467
462
|
awkward_without_record_reducers,
|
|
468
|
-
reason="record reducers
|
|
463
|
+
reason="record reducers were added before awkward==2.2.3, but had some bugs",
|
|
469
464
|
)
|
|
470
465
|
def test_count_nonzero_2d():
|
|
471
466
|
v = vector.Array(
|
|
@@ -490,7 +485,7 @@ def test_count_nonzero_2d():
|
|
|
490
485
|
|
|
491
486
|
@pytest.mark.skipif(
|
|
492
487
|
awkward_without_record_reducers,
|
|
493
|
-
reason="record reducers
|
|
488
|
+
reason="record reducers were added before awkward==2.2.3, but had some bugs",
|
|
494
489
|
)
|
|
495
490
|
def test_count_nonzero_3d():
|
|
496
491
|
v = vector.Array(
|
|
@@ -515,7 +510,7 @@ def test_count_nonzero_3d():
|
|
|
515
510
|
|
|
516
511
|
@pytest.mark.skipif(
|
|
517
512
|
awkward_without_record_reducers,
|
|
518
|
-
reason="record reducers
|
|
513
|
+
reason="record reducers were added before awkward==2.2.3, but had some bugs",
|
|
519
514
|
)
|
|
520
515
|
def test_count_nonzero_4d():
|
|
521
516
|
v = vector.Array(
|
|
@@ -559,7 +554,7 @@ def test_count_nonzero_4d():
|
|
|
559
554
|
|
|
560
555
|
@pytest.mark.skipif(
|
|
561
556
|
awkward_without_record_reducers,
|
|
562
|
-
reason="record reducers
|
|
557
|
+
reason="record reducers were added before awkward==2.2.3, but had some bugs",
|
|
563
558
|
)
|
|
564
559
|
def test_count_2d():
|
|
565
560
|
v = vector.Array(
|
|
@@ -588,7 +583,7 @@ def test_count_2d():
|
|
|
588
583
|
|
|
589
584
|
@pytest.mark.skipif(
|
|
590
585
|
awkward_without_record_reducers,
|
|
591
|
-
reason="record reducers
|
|
586
|
+
reason="record reducers were added before awkward==2.2.3, but had some bugs",
|
|
592
587
|
)
|
|
593
588
|
def test_count_3d():
|
|
594
589
|
v = vector.Array(
|
|
@@ -617,7 +612,7 @@ def test_count_3d():
|
|
|
617
612
|
|
|
618
613
|
@pytest.mark.skipif(
|
|
619
614
|
awkward_without_record_reducers,
|
|
620
|
-
reason="record reducers
|
|
615
|
+
reason="record reducers were added before awkward==2.2.3, but had some bugs",
|
|
621
616
|
)
|
|
622
617
|
def test_count_4d():
|
|
623
618
|
v = vector.Array(
|
|
@@ -880,36 +875,36 @@ def test_momentum_preservation():
|
|
|
880
875
|
|
|
881
876
|
# momentum + generic = momentum
|
|
882
877
|
# 2D + 3D.like(2D) = 2D
|
|
883
|
-
assert isinstance(v1 + v2.like(v1), MomentumAwkward2D)
|
|
884
|
-
assert isinstance(v2.like(v1) + v1, MomentumAwkward2D)
|
|
878
|
+
assert isinstance(v1 + v2.like(v1), vector.backends.awkward.MomentumAwkward2D)
|
|
879
|
+
assert isinstance(v2.like(v1) + v1, vector.backends.awkward.MomentumAwkward2D)
|
|
885
880
|
# 2D + 4D.like(2D) = 2D
|
|
886
|
-
assert isinstance(v1 + v3.like(v1), MomentumAwkward2D)
|
|
887
|
-
assert isinstance(v3.like(v1) + v1, MomentumAwkward2D)
|
|
881
|
+
assert isinstance(v1 + v3.like(v1), vector.backends.awkward.MomentumAwkward2D)
|
|
882
|
+
assert isinstance(v3.like(v1) + v1, vector.backends.awkward.MomentumAwkward2D)
|
|
888
883
|
# 3D + 2D.like(3D) = 3D
|
|
889
|
-
assert isinstance(v2 + v1.like(v2), MomentumAwkward3D)
|
|
890
|
-
assert isinstance(v1.like(v2) + v2, MomentumAwkward3D)
|
|
884
|
+
assert isinstance(v2 + v1.like(v2), vector.backends.awkward.MomentumAwkward3D)
|
|
885
|
+
assert isinstance(v1.like(v2) + v2, vector.backends.awkward.MomentumAwkward3D)
|
|
891
886
|
# 3D + 4D.like(3D) = 3D
|
|
892
|
-
assert isinstance(v2 + v3.like(v2), MomentumAwkward3D)
|
|
893
|
-
assert isinstance(v3.like(v2) + v2, MomentumAwkward3D)
|
|
887
|
+
assert isinstance(v2 + v3.like(v2), vector.backends.awkward.MomentumAwkward3D)
|
|
888
|
+
assert isinstance(v3.like(v2) + v2, vector.backends.awkward.MomentumAwkward3D)
|
|
894
889
|
# 4D + 2D.like(4D) = 4D
|
|
895
|
-
assert isinstance(v3 + v1.like(v3), MomentumAwkward4D)
|
|
896
|
-
assert isinstance(v1.like(v3) + v3, MomentumAwkward4D)
|
|
890
|
+
assert isinstance(v3 + v1.like(v3), vector.backends.awkward.MomentumAwkward4D)
|
|
891
|
+
assert isinstance(v1.like(v3) + v3, vector.backends.awkward.MomentumAwkward4D)
|
|
897
892
|
# 4D + 3D.like(4D) = 4D
|
|
898
|
-
assert isinstance(v3 + v2.like(v3), MomentumAwkward4D)
|
|
899
|
-
assert isinstance(v2.like(v3) + v3, MomentumAwkward4D)
|
|
893
|
+
assert isinstance(v3 + v2.like(v3), vector.backends.awkward.MomentumAwkward4D)
|
|
894
|
+
assert isinstance(v2.like(v3) + v3, vector.backends.awkward.MomentumAwkward4D)
|
|
900
895
|
|
|
901
896
|
|
|
902
897
|
def test_subclass_fields():
|
|
903
898
|
@ak.mixin_class(vector.backends.awkward.behavior)
|
|
904
|
-
class TwoVector(MomentumAwkward2D):
|
|
899
|
+
class TwoVector(vector.backends.awkward.MomentumAwkward2D):
|
|
905
900
|
pass
|
|
906
901
|
|
|
907
902
|
@ak.mixin_class(vector.backends.awkward.behavior)
|
|
908
|
-
class ThreeVector(MomentumAwkward3D):
|
|
903
|
+
class ThreeVector(vector.backends.awkward.MomentumAwkward3D):
|
|
909
904
|
pass
|
|
910
905
|
|
|
911
906
|
@ak.mixin_class(vector.backends.awkward.behavior)
|
|
912
|
-
class LorentzVector(MomentumAwkward4D):
|
|
907
|
+
class LorentzVector(vector.backends.awkward.MomentumAwkward4D):
|
|
913
908
|
@ak.mixin_class_method(np.divide, {numbers.Number})
|
|
914
909
|
def divide(self, factor):
|
|
915
910
|
return self.scale(1 / factor)
|
|
@@ -39,11 +39,7 @@ def test_issue_161():
|
|
|
39
39
|
for generator_like_constituent in sublist:
|
|
40
40
|
s += generator_like_constituent.pt
|
|
41
41
|
|
|
42
|
-
file_path = (
|
|
43
|
-
os.path.join("tests", "samples", "issue-161.pkl")
|
|
44
|
-
if not vector._is_awkward_v2
|
|
45
|
-
else os.path.join("tests", "samples", "issue-161-v2.pkl")
|
|
46
|
-
)
|
|
42
|
+
file_path = os.path.join("tests", "samples", "issue-161-v2.pkl")
|
|
47
43
|
|
|
48
44
|
with open(file_path, "rb") as f:
|
|
49
45
|
a = ak.from_buffers(*pickle.load(f))
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|