diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index aef79e0..9eeb5ac 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 diff --git a/docs/history.rst b/docs/history.rst index 83d604a..501311a 100644 --- a/docs/history.rst +++ b/docs/history.rst @@ -8,6 +8,7 @@ Version 1.4 - unreleased * Added ``python_file_processor`` parameter to :func:`pyastgrep.api.search_python_files`, which particularly serves the needs of people using pyastgrep as a library who want to apply caching. +* Dropped support for Python 3.8. Version 1.3.2 - 2024-01-10 -------------------------- diff --git a/docs/install.rst b/docs/install.rst index 3d680c6..7df213e 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -2,7 +2,7 @@ Installation ============ -Python 3.8+ required. +Python 3.9+ required. We recommend `pipx `_ to install it conveniently in an isolated environment: diff --git a/pyproject.toml b/pyproject.toml index d803ef4..83e7d8e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,18 +8,18 @@ classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Intended Audience :: Developers", "Operating System :: OS Independent", "License :: OSI Approved :: MIT License", "Natural Language :: English", ] urls = {Homepage = "https://github.com/spookylukey/pyastgrep"} -requires-python = ">=3.8" +requires-python = ">=3.9" dependencies = [ "lxml>=3.3.5", "elementpath", diff --git a/tests/test_xml.py b/tests/test_xml.py index f6973b5..e4171ff 100644 --- a/tests/test_xml.py +++ b/tests/test_xml.py @@ -3,7 +3,6 @@ from pathlib import Path import lxml.etree -import pytest from pyastgrep.asts import ast_to_xml from pyastgrep.files import parse_python_file @@ -102,7 +101,6 @@ def _file_to_xml(path: Path): return lxml.etree.tostring(doc, pretty_print=True).decode("utf-8") -@pytest.mark.skipif(sys.version_info < (3, 9), reason="AST different on Python 3.8") def test_xml_everything(): # Smoke test to check we didn't break anything. EXPECTED = """ diff --git a/tox.ini b/tox.ini index d0235f5..206eea4 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] # Remember to add to .github/workflows/tests.yml if this is added to. -envlist = py38, py39, py310, py311, py312, py313, pyright +envlist = py39, py310, py311, py312, py313, pyright [testenv] commands = pytest {posargs}