From 91547c8b08346aa1185abd808f2978af00c218f1 Mon Sep 17 00:00:00 2001 From: Christian Manivong Date: Tue, 27 Oct 2026 10:18:56 +0100 Subject: [PATCH 1/3] chore: Python 3.12 is the floor (NAPALM/driver-standard#6) netOrk runs every driver in its own containers on Python 3.12, so 3.10 and 3.11 are no longer supported or tested. requires-python, mypy and ruff move to 3.12, along with what ruff's pyupgrade rules then rewrite. --- CHANGELOG.md | 4 ++++ pyproject.toml | 8 +++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85b8b95..69a6234 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). + ## [0.2.0] - 2026-10-23 The first release on PyPI. diff --git a/pyproject.toml b/pyproject.toml index 8818332..ce8806f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,15 +8,13 @@ version = "0.2.0" description = "NAPALM driver for HPE OfficeConnect 1820 / 1920S web-managed switches (HTTP only, no CLI)" 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", @@ -57,7 +55,7 @@ napalm_hpe_officeconnect = ["py.typed"] [tool.ruff] line-length = 100 -target-version = "py310" +target-version = "py312" [tool.ruff.lint] select = ["E", "F", "I", "UP", "B"] @@ -67,7 +65,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 -- 2.54.0 From 27e0b069aff7204fd6f82219fdc15c7e5555aec7 Mon Sep 17 00:00:00 2001 From: Christian Manivong Date: Tue, 27 Oct 2026 10:49:28 +0100 Subject: [PATCH 2/3] fix: the floor on napalm is 5.1 (NAPALM/driver-standard#6) napalm 5.0 and older import pkg_resources, which a Python 3.12 venv no longer has, so the lowest job failed on them. --- CHANGELOG.md | 2 ++ pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 69a6234..1aa36ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ All notable changes to this driver. The format follows ### 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). +- The floor on napalm is 5.1: older releases import `pkg_resources`, which a Python + 3.12 venv no longer has. ## [0.2.0] - 2026-10-23 diff --git a/pyproject.toml b/pyproject.toml index ce8806f..b717972 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,7 +24,7 @@ classifiers = [ # No BeautifulSoup: the web UI ships its table data as JS array literals, # which parse with ast.literal_eval — see parsers.extract_data_set. dependencies = [ - "napalm>=4.0.0", + "napalm>=5.1", # older releases import pkg_resources, which a 3.12 venv lacks "napalm-device-types>=4.21.1", "requests>=2.25.0", "urllib3>=1.23", -- 2.54.0 From 68515edd5fcd65a500085309b28db4987cd94933 Mon Sep 17 00:00:00 2001 From: Christian Manivong Date: Tue, 27 Oct 2026 12:22:15 +0100 Subject: [PATCH 3/3] fix: the floor on urllib3 is 1.26.5 (NAPALM/driver-standard#6) urllib3 1.26.4 and older bundle a six whose import hook Python 3.12 no longer supports (urllib3.packages.six.moves), so the lowest job failed. --- CHANGELOG.md | 2 ++ pyproject.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aa36ae..ae0ac1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ All notable changes to this driver. The format follows on 3.12, so 3.10 and 3.11 are no longer tested (NAPALM/driver-standard#6). - The floor on napalm is 5.1: older releases import `pkg_resources`, which a Python 3.12 venv no longer has. +- The floor on urllib3 is 1.26.5: older releases bundle a `six` that Python 3.12 + cannot import. ## [0.2.0] - 2026-10-23 diff --git a/pyproject.toml b/pyproject.toml index b717972..cfec324 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,7 +27,7 @@ dependencies = [ "napalm>=5.1", # older releases import pkg_resources, which a 3.12 venv lacks "napalm-device-types>=4.21.1", "requests>=2.25.0", - "urllib3>=1.23", + "urllib3>=1.26.5", # older ones bundle a six that Python 3.12 cannot import ] [project.optional-dependencies] -- 2.54.0