chore: Python 3.12 is the floor (NAPALM/driver-standard#6)
driver / standard (pull_request) Successful in 18s
driver / lint (pull_request) Successful in 14s
driver / test (3.13) (pull_request) Successful in 55s
driver / types (pull_request) Successful in 1m7s
driver / test (3.12) (pull_request) Successful in 1m9s
driver / lowest (pull_request) Failing after 5s
driver / build (pull_request) Successful in 35s
driver / security (pull_request) Successful in 1m12s
CI / driver (pull_request) Failing after 2m51s
driver / publish (pull_request) Skipped
driver / standard (pull_request) Successful in 18s
driver / lint (pull_request) Successful in 14s
driver / test (3.13) (pull_request) Successful in 55s
driver / types (pull_request) Successful in 1m7s
driver / test (3.12) (pull_request) Successful in 1m9s
driver / lowest (pull_request) Failing after 5s
driver / build (pull_request) Successful in 35s
driver / security (pull_request) Successful in 1m12s
CI / driver (pull_request) Failing after 2m51s
driver / publish (pull_request) Skipped
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.
This commit is contained in:
1 parent
e235eb96b4
commit
3b3f5d9d02
5 files changed
+11
-11
No files matched your search
@@ -7,6 +7,10 @@ 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).
|
||||||
|
|
||||||
## [0.3.0] - 2026-10-23
|
## [0.3.0] - 2026-10-23
|
||||||
|
|
||||||
The first release on PyPI.
|
The first release on PyPI.
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ Unverified assumptions, to be checked against real hardware:
|
|||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
Python 3.10 or later.
|
Python 3.12 or later.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip install napalm-vmware
|
pip install napalm-vmware
|
||||||
|
|||||||
@@ -9,14 +9,12 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import time
|
import time
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from typing import Any, TypeVar
|
from typing import Any
|
||||||
|
|
||||||
from pyVmomi import vmodl
|
from pyVmomi import vmodl
|
||||||
|
|
||||||
from napalm_vmware._plain import to_plain
|
from napalm_vmware._plain import to_plain
|
||||||
|
|
||||||
T = TypeVar("T")
|
|
||||||
|
|
||||||
_POLL_SECONDS = 0.5
|
_POLL_SECONDS = 0.5
|
||||||
_FREE_LICENSE = (
|
_FREE_LICENSE = (
|
||||||
"the host runs the free vSphere Hypervisor license, which makes the "
|
"the host runs the free vSphere Hypervisor license, which makes the "
|
||||||
@@ -31,7 +29,7 @@ def fault_message(fault: dict[str, Any]) -> str:
|
|||||||
return fault.get("localizedMessage") or fault.get("msg") or fault.get("_type", "unknown fault")
|
return fault.get("localizedMessage") or fault.get("msg") or fault.get("_type", "unknown fault")
|
||||||
|
|
||||||
|
|
||||||
def invoke(call: Callable[..., T], *args: Any, **kwargs: Any) -> T:
|
def invoke[T](call: Callable[..., T], *args: Any, **kwargs: Any) -> T:
|
||||||
"""Run a vSphere call, re-raising any ``MethodFault`` as ``RuntimeError``."""
|
"""Run a vSphere call, re-raising any ``MethodFault`` as ``RuntimeError``."""
|
||||||
try:
|
try:
|
||||||
return call(*args, **kwargs)
|
return call(*args, **kwargs)
|
||||||
|
|||||||
+3
-5
@@ -7,7 +7,7 @@ name = "napalm-vmware"
|
|||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
description = "NAPALM drivers for VMware ESXi hosts and vCenter Server (vSphere API via pyVmomi)"
|
description = "NAPALM drivers for VMware ESXi hosts and vCenter Server (vSphere API via pyVmomi)"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.12"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
authors = [
|
authors = [
|
||||||
{ name = "Christian Manivong", email = "christian@manivong.de" },
|
{ name = "Christian Manivong", email = "christian@manivong.de" },
|
||||||
@@ -19,8 +19,6 @@ classifiers = [
|
|||||||
"Intended Audience :: System Administrators",
|
"Intended Audience :: System Administrators",
|
||||||
"Operating System :: OS Independent",
|
"Operating System :: OS Independent",
|
||||||
"Programming Language :: Python :: 3",
|
"Programming Language :: Python :: 3",
|
||||||
"Programming Language :: Python :: 3.10",
|
|
||||||
"Programming Language :: Python :: 3.11",
|
|
||||||
"Programming Language :: Python :: 3.12",
|
"Programming Language :: Python :: 3.12",
|
||||||
"Programming Language :: Python :: 3.13",
|
"Programming Language :: Python :: 3.13",
|
||||||
"Topic :: System :: Networking",
|
"Topic :: System :: Networking",
|
||||||
@@ -69,7 +67,7 @@ markers = [
|
|||||||
|
|
||||||
[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"]
|
||||||
@@ -79,7 +77,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
|
||||||
|
|||||||
+1
-1
@@ -54,7 +54,7 @@ def test_lists_are_converted_elementwise():
|
|||||||
|
|
||||||
|
|
||||||
def test_datetime_becomes_epoch_seconds():
|
def test_datetime_becomes_epoch_seconds():
|
||||||
when = datetime.datetime(2026, 1, 1, tzinfo=datetime.timezone.utc)
|
when = datetime.datetime(2026, 1, 1, tzinfo=datetime.UTC)
|
||||||
assert to_plain(when) == 1767225600.0
|
assert to_plain(when) == 1767225600.0
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user