diff --git a/CHANGELOG.md b/CHANGELOG.md index e35fd11..486db44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to this driver. The format follows ## [Unreleased] +### Changed +- Python 3.12 is the floor (`requires-python = ">=3.12"`): netOrk runs every driver + on 3.12, so 3.10 and 3.11 are no longer tested (NAPALM/driver-standard#6). + ### Fixed - `get_vpn_tunnels()` keys a WireGuard peer by its interface and the start of its public key (`wireguard-wg0-aBcD1234`, URL-safe) instead of its position, so a peer diff --git a/README.md b/README.md index 2b52992..39cc4c5 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ NAPALM community driver for **OPNsense** firewalls (read-only, via REST API). | Dependency | Minimum version | |---|---| -| Python | 3.10 | +| Python | 3.12 | | NAPALM | 4.0 | | napalm-device-types | 4.21.1 | | requests | 2.28 | @@ -212,7 +212,7 @@ python -m venv .venv && .venv/bin/pip install -e ".[dev]" ## CI [.gitea/workflows/ci.yml](.gitea/workflows/ci.yml) calls the shared workflow of the -driver standard: ruff, mypy, the tests on Python 3.10–3.13 and at the lowest declared +driver standard: ruff, mypy, the tests on Python 3.12 and 3.13 and at the lowest declared versions, bandit, pip-audit and a build check. A release tag publishes to PyPI. ## License diff --git a/pyproject.toml b/pyproject.toml index 1270e2d..977a6ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,15 +8,13 @@ version = "0.5.0" description = "NAPALM driver for OPNsense (read-only via REST API)." readme = "README.md" license = "Apache-2.0" -requires-python = ">=3.10" +requires-python = ">=3.12" authors = [ { name = "Christian Manivong" }, ] classifiers = [ "Topic :: Utilities", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Operating System :: POSIX :: Linux", @@ -54,7 +52,7 @@ napalm_opnsense = ["py.typed"] [tool.ruff] line-length = 100 -target-version = "py310" +target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B"] @@ -64,7 +62,7 @@ select = ["E", "F", "I", "UP", "B"] "tests/**" = ["E501"] [tool.mypy] -python_version = "3.10" +python_version = "3.12" strict = true # napalm itself is untyped, so every driver subclasses Any. disallow_subclassing_any = false