diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c592ad69..183304ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,7 +38,6 @@ jobs: fail-fast: false matrix: python-version: - - "3.8" - "3.9" - "3.10" - "3.11" @@ -65,7 +64,6 @@ jobs: fail-fast: false matrix: python-version: - - "3.8" - "3.9" - "3.10" - "3.11" @@ -105,7 +103,7 @@ jobs: - uses: actions/setup-python@v5 with: - python-version: 3.8.13 + python-version: 3.9 - uses: astral-sh/setup-uv@v6 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7de9bf8e..31f535f7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -207,7 +207,7 @@ nox -s tests # test with all extra dependencies on all available Python v nox -s tests # run doctests on all available Python versions nox -s coverage # run the tests session and generate a coverage report on all available Python versions nox -s notebooks # test notebooks on the default Python version -nox -s disassemble # check compute functions on Python 3.8 +nox -s disassemble # check compute functions on Python 3.9 ``` ### Building documentation with nox diff --git a/noxfile.py b/noxfile.py index 7aa58514..9e5ba15b 100644 --- a/noxfile.py +++ b/noxfile.py @@ -8,7 +8,7 @@ nox.needs_version = ">=2024.4.15" nox.options.default_venv_backend = "uv|virtualenv" -ALL_PYTHON = ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] +ALL_PYTHON = ["3.9", "3.10", "3.11", "3.12", "3.13"] DIR = Path(__file__).parent.resolve() @@ -90,7 +90,7 @@ def build(session: nox.Session) -> None: session.run("python", "-m", "build") -@nox.session(reuse_venv=True, python="3.8", default=False) +@nox.session(reuse_venv=True, python="3.9", default=False) def disassemble(session: nox.Session) -> None: """Disassemble run.""" session.install("-e", ".[test-extras]") diff --git a/pyproject.toml b/pyproject.toml index 17034323..a45f1a01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,7 +18,7 @@ maintainers = [ authors = [ { name = "Jim Pivarski, Henry Schreiner, Eduardo Rodrigues", email = "eduardo.rodrigues@cern.ch" }, ] -requires-python = ">=3.8" +requires-python = ">=3.9" classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", @@ -27,7 +27,6 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -87,7 +86,7 @@ optional-dependencies.test = [ optional-dependencies.test-extras = [ "dask_awkward", "spark-parser", - 'uncompyle6; python_version == "3.8"', + 'uncompyle6; python_version == "3.9"', ] urls."Bug Tracker" = "https://github.com/scikit-hep/vector/issues" urls.Changelog = "https://vector.readthedocs.io/en/latest/changelog.html" @@ -163,7 +162,7 @@ isort.required-imports = [ ] [tool.pylint] -master.py-version = "3.8" +master.py-version = "3.9" reports.output-format = "colorized" similarities.ignore-imports = "yes" master.jobs = "0" @@ -253,7 +252,7 @@ filterwarnings = [ files = [ "src/vector", ] -python_version = "3.8" +python_version = "3.9" strict = true warn_return_any = false enable_error_code = [ diff --git a/tests/test_compute_features.py b/tests/test_compute_features.py index 0fc268db..bc1b5491 100644 --- a/tests/test_compute_features.py +++ b/tests/test_compute_features.py @@ -17,7 +17,7 @@ reason to exclude ``if`` statements. Loops are even more problematic. This suite of tests statically analyzes all of the compute functions by decompiling -their bytecode with uncompyle6 (on Python 3.8; will have to be modified slightly +their bytecode with uncompyle6 (on Python 3.9; will have to be modified slightly every few years). Some compute functions are dynamically generated, so they don't all have an AST to inspect.