chore: Python 3.12 is the floor (NAPALM/driver-standard#6) #4

Merged
christianmanivong merged 2 commits from chore/python-312-floor into main 2026-10-27 11:15:22 +00:00
3 changed files with 12 additions and 6 deletions

No files matched your search

+6
View File
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [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).
- The floor on napalm is 5.1: older releases import `pkg_resources`, which a Python
3.12 venv no longer has.
## [0.6.0] - 2026-10-23 ## [0.6.0] - 2026-10-23
The first release on PyPI. The first release on PyPI.
+2 -2
View File
@@ -26,7 +26,7 @@ member of ``Managers``/``Chassis`` when the links are missing).
from __future__ import annotations from __future__ import annotations
import logging import logging
from datetime import datetime, timezone from datetime import UTC, datetime
from typing import Any from typing import Any
from napalm.base.exceptions import ConnectionException from napalm.base.exceptions import ConnectionException
@@ -123,7 +123,7 @@ def _timestamp(created: str | None) -> float | None:
except ValueError: except ValueError:
return None return None
if when.tzinfo is None: if when.tzinfo is None:
when = when.replace(tzinfo=timezone.utc) when = when.replace(tzinfo=UTC)
return when.timestamp() return when.timestamp()
+4 -4
View File
@@ -8,9 +8,9 @@ version = "0.6.0"
description = "NAPALM driver for server baseboard management controllers over DMTF Redfish" description = "NAPALM driver for server baseboard management controllers over DMTF Redfish"
readme = "README.md" readme = "README.md"
license = "Apache-2.0" license = "Apache-2.0"
requires-python = ">=3.10" requires-python = ">=3.12"
dependencies = [ dependencies = [
"napalm>=5.0", "napalm>=5.1", # older releases import pkg_resources, which a 3.12 venv lacks
"napalm-device-types>=4.21.1", "napalm-device-types>=4.21.1",
# Before 3.4.1, max_retry=0 (retries=0) gets no response back at all. # Before 3.4.1, max_retry=0 (retries=0) gets no response back at all.
"redfish>=3.4.1", "redfish>=3.4.1",
@@ -45,7 +45,7 @@ napalm_redfish = ["py.typed"]
[tool.ruff] [tool.ruff]
line-length = 100 line-length = 100
target-version = "py310" target-version = "py312"
[tool.ruff.lint] [tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"] select = ["E", "F", "I", "UP", "B"]
@@ -55,7 +55,7 @@ select = ["E", "F", "I", "UP", "B"]
"tests/**" = ["E501"] "tests/**" = ["E501"]
[tool.mypy] [tool.mypy]
python_version = "3.10" python_version = "3.12"
strict = true strict = true
# napalm itself is untyped, so every driver subclasses Any. # napalm itself is untyped, so every driver subclasses Any.
disallow_subclassing_any = false disallow_subclassing_any = false