driver / standard (pull_request) Successful in 14s
driver / lint (pull_request) Successful in 13s
driver / types (pull_request) Successful in 1m1s
driver / test (3.12) (pull_request) Successful in 1m1s
driver / test (3.13) (pull_request) Successful in 49s
driver / lowest (pull_request) Successful in 25s
driver / build (pull_request) Successful in 25s
driver / security (pull_request) Successful in 59s
CI / driver (pull_request) Successful in 2m20s
driver / publish (pull_request) Skipped
PyYAML 6.0 ships no Python 3.12 wheel and fails to build from source there, so the lowest job could not install it.
111 lines
3.0 KiB
TOML
111 lines
3.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=77"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "napalm-vmware"
|
|
version = "0.3.0"
|
|
description = "NAPALM drivers for VMware ESXi hosts and vCenter Server (vSphere API via pyVmomi)"
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
license = "Apache-2.0"
|
|
authors = [
|
|
{ name = "Christian Manivong", email = "christian@manivong.de" },
|
|
]
|
|
keywords = ["napalm", "vmware", "esxi", "vcenter", "vsphere", "hypervisor", "driver"]
|
|
classifiers = [
|
|
"Development Status :: 3 - Alpha",
|
|
"Intended Audience :: Developers",
|
|
"Intended Audience :: System Administrators",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: System :: Networking",
|
|
"Topic :: System :: Systems Administration",
|
|
"Typing :: Typed",
|
|
]
|
|
dependencies = [
|
|
"napalm>=5.1", # older releases import pkg_resources, which a 3.12 venv lacks
|
|
"napalm-device-types>=4.21.1",
|
|
"pyvmomi>=8.0.1",
|
|
# Provisioning: download the image, write the NoCloud seed ISO and its YAML.
|
|
"requests>=2.31",
|
|
"pycdlib>=1.14",
|
|
"PyYAML>=6.0.1", # 6.0 has no Python 3.12 wheel and does not build there
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"pytest>=8",
|
|
"pytest-cov>=5",
|
|
"mypy>=1.11",
|
|
"ruff>=0.6",
|
|
]
|
|
|
|
[project.entry-points."napalm.drivers"]
|
|
vmware_esxi = "napalm_vmware:VmwareEsxiDriver"
|
|
vmware_vcenter = "napalm_vmware:VmwareVcenterDriver"
|
|
|
|
[project.urls]
|
|
Repository = "https://git.netork.io/NAPALM/napalm-vmware"
|
|
Issues = "https://git.netork.io/NAPALM/napalm-vmware/issues"
|
|
Changelog = "https://git.netork.io/NAPALM/napalm-vmware/src/branch/main/CHANGELOG.md"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["."]
|
|
include = ["napalm_vmware*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
napalm_vmware = ["py.typed"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
markers = [
|
|
"vcsim: runs against a live vcsim simulator; needs VCSIM_ESXI_PORT / VCSIM_VCENTER_PORT",
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py312"
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "UP", "B"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
# Recorded device output keeps its lines.
|
|
"tests/**" = ["E501"]
|
|
|
|
[tool.mypy]
|
|
python_version = "3.12"
|
|
strict = true
|
|
# napalm itself is untyped, so every driver subclasses Any.
|
|
disallow_subclassing_any = false
|
|
|
|
[[tool.mypy.overrides]]
|
|
module = ["napalm.*", "yaml.*"]
|
|
ignore_missing_imports = true
|
|
|
|
[[tool.mypy.overrides]]
|
|
# Not yet under strict mypy (quality baseline); may only shrink.
|
|
module = [
|
|
"napalm_vmware._inventory",
|
|
"napalm_vmware._session",
|
|
"napalm_vmware._tasks",
|
|
"napalm_vmware.base",
|
|
"napalm_vmware.esxi",
|
|
"napalm_vmware.parse.environment",
|
|
"napalm_vmware.parse.snapshots",
|
|
"napalm_vmware.parse.vm_devices",
|
|
"napalm_vmware.provision.seed",
|
|
"napalm_vmware.provision.transfer",
|
|
"napalm_vmware.provisioning",
|
|
]
|
|
ignore_errors = true
|
|
|
|
[tool.coverage.run]
|
|
source = ["napalm_vmware"]
|
|
|
|
[tool.coverage.report]
|
|
fail_under = 97
|