[build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [project] name = "napalm-vmware" version = "0.2.0" description = "NAPALM drivers for VMware ESXi hosts and vCenter Server (vSphere API via pyVmomi)" readme = "README.md" requires-python = ">=3.10" 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.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: System :: Networking", "Topic :: System :: Systems Administration", "Typing :: Typed", ] dependencies = [ "napalm>=5.0.0", "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", ] [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 = "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.*", "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