[build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [project] name = "napalm-proxmox" version = "0.8.0" description = "NAPALM driver for Proxmox VE (classic Linux networking, SDN, OVS)" readme = "README.md" license = "Apache-2.0" authors = [{ name = "Christian Manivong" }] keywords = ["napalm", "proxmox", "network", "sdn", "ovs", "automation"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: System :: Networking", ] requires-python = ">=3.10" dependencies = [ "napalm>=5.0.0", "napalm_device_types>=4.22.0", "paramiko>=5.0.0", # CVE-2026-44405; imported directly for SSH fallback (driver.py) "proxmoxer>=2.0.0", "netaddr>=0.9.0", "requests>=2.31.0", ] [project.optional-dependencies] dev = ["pytest>=8", "pytest-cov>=5", "mypy>=1.11", "ruff>=0.6"] [project.entry-points."napalm.drivers"] proxmox = "napalm_proxmox:ProxmoxDriver" [project.urls] Repository = "https://git.netork.io/NAPALM/napalm-proxmox" Issues = "https://git.netork.io/NAPALM/napalm-proxmox/issues" Changelog = "https://git.netork.io/NAPALM/napalm-proxmox/src/branch/main/CHANGELOG.md" [tool.setuptools.packages.find] where = ["."] include = ["napalm_proxmox*"] [tool.setuptools.package-data] napalm_proxmox = ["py.typed"] [tool.ruff] line-length = 100 target-version = "py310" [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.10" strict = true # napalm itself is untyped, so every driver subclasses Any. disallow_subclassing_any = false [[tool.mypy.overrides]] module = ["napalm.*", "proxmoxer.*", "paramiko.*", "netaddr.*", "yaml.*"] ignore_missing_imports = true [[tool.mypy.overrides]] # Not yet under strict mypy (quality baseline); may only shrink. module = [ "napalm_proxmox.config_mixin", "napalm_proxmox.driver", "napalm_proxmox.interfaces_mixin", "napalm_proxmox.lldp_mixin", "napalm_proxmox.routing_mixin", "napalm_proxmox.sdn_mixin", "napalm_proxmox.system_mixin", "napalm_proxmox.utils", "napalm_proxmox.vm_contract_mixin", "napalm_proxmox.vm_mixin", "napalm_proxmox.vm_provision_mixin", ] ignore_errors = true [tool.pytest.ini_options] testpaths = ["tests"] [tool.coverage.run] source = ["napalm_proxmox"] [tool.coverage.report] fail_under = 68