[build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [project] name = "napalm-linux" version = "0.13.0" description = "NAPALM driver for generic Linux systems via SSH" readme = "README.md" requires-python = ">=3.10" license = "Apache-2.0" authors = [ { name = "Christian Manivong", email = "christian@manivong.de" }, ] keywords = [ "napalm", "network", "automation", "linux", "ssh", "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>=4.0", "napalm-device-types>=4.21.0", "netmiko>=4.0.0", "paramiko>=5.0.0", # CVE-2026-44405 ] [project.optional-dependencies] dev = [ "pytest>=8", "pytest-cov>=5", "ruff>=0.6", "mypy>=1.11", ] [project.entry-points."napalm.drivers"] linux = "napalm_linux:LinuxDriver" [project.urls] Repository = "https://git.netork.io/NAPALM/napalm-linux" Issues = "https://git.netork.io/NAPALM/napalm-linux/issues" Changelog = "https://git.netork.io/NAPALM/napalm-linux/src/branch/main/CHANGELOG.md" [tool.setuptools.packages.find] where = ["."] include = ["napalm_linux*"] [tool.setuptools.package-data] napalm_linux = ["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.*", "netmiko.*", "paramiko.*"] ignore_missing_imports = true [[tool.mypy.overrides]] # Not yet under strict mypy (quality baseline); may only shrink. module = ["napalm_linux.linux"] ignore_errors = true [tool.pytest.ini_options] testpaths = ["tests"] [tool.coverage.run] source = ["napalm_linux"] [tool.coverage.report] fail_under = 58