[build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [project] name = "napalm-opnsense" version = "0.5.0" description = "NAPALM driver for OPNsense (read-only via REST API)." readme = "README.md" license = "Apache-2.0" requires-python = ">=3.10" authors = [ { name = "Christian Manivong" }, ] classifiers = [ "Topic :: Utilities", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Operating System :: POSIX :: Linux", "Operating System :: MacOS", "Typing :: Typed", ] dependencies = [ "napalm>=4.0.0", "napalm-device-types>=4.21.1", "requests>=2.28.0", ] [project.optional-dependencies] dev = [ "pytest>=8", "pytest-cov>=5", "mypy>=1.11", "ruff>=0.6", ] [project.entry-points."napalm.drivers"] opnsense = "napalm_opnsense.opnsense:OPNsenseDriver" [project.urls] Repository = "https://git.netork.io/NAPALM/napalm-opnsense" Issues = "https://git.netork.io/NAPALM/napalm-opnsense/issues" Changelog = "https://git.netork.io/NAPALM/napalm-opnsense/src/branch/main/CHANGELOG.md" [tool.setuptools.packages.find] where = ["."] include = ["napalm_opnsense*"] [tool.setuptools.package-data] napalm_opnsense = ["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.*", "requests.*"] ignore_missing_imports = true [[tool.mypy.overrides]] # Not yet under strict mypy (quality baseline); may only shrink. module = [ "napalm_opnsense.ha", "napalm_opnsense.listening", "napalm_opnsense.opnsense", "napalm_opnsense.ospf_mixin", "napalm_opnsense.ping_mixin", "napalm_opnsense.port_forwards", "napalm_opnsense.resolver_mixin", ] ignore_errors = true [tool.pytest.ini_options] testpaths = ["tests"] [tool.coverage.run] source = ["napalm_opnsense"] [tool.coverage.report] fail_under = 79