[build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [project] name = "napalm-redfish" version = "0.6.0" description = "NAPALM driver for server baseboard management controllers over DMTF Redfish" readme = "README.md" license = "Apache-2.0" requires-python = ">=3.10" dependencies = [ "napalm>=5.0", "napalm-device-types>=4.21.1", # Before 3.4.1, max_retry=0 (retries=0) gets no response back at all. "redfish>=3.4.1", # 1.5.0 imports python-dateutil without declaring it. "pyghmi>=1.5.1", ] classifiers = [ "Programming Language :: Python :: 3", "Topic :: System :: Hardware", "Topic :: System :: Networking", ] [project.optional-dependencies] # responses mocks the BMC's HTTP answers in the tests. dev = ["pytest>=8", "pytest-cov>=5", "mypy>=1.11", "ruff>=0.6", "responses>=0.23"] [project.urls] Repository = "https://git.netork.io/NAPALM/napalm-redfish" Issues = "https://git.netork.io/NAPALM/napalm-redfish/issues" Changelog = "https://git.netork.io/NAPALM/napalm-redfish/src/branch/main/CHANGELOG.md" [project.entry-points."napalm.drivers"] redfish = "napalm_redfish:RedfishDriver" ipmi = "napalm_redfish.ipmi:IpmiDriver" bmc = "napalm_redfish.bmc:BmcDriver" [tool.setuptools.packages.find] include = ["napalm_redfish*"] [tool.setuptools.package-data] napalm_redfish = ["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.*", "redfish.*", "pyghmi.*", "requests.*"] ignore_missing_imports = true [[tool.mypy.overrides]] # Not yet under strict mypy (quality baseline); may only shrink. module = [ "napalm_redfish.bmc", "napalm_redfish.driver", "napalm_redfish.ipmi", "napalm_redfish.parsers.common", "napalm_redfish.parsers.environment", "napalm_redfish.parsers.manager", "napalm_redfish.parsers.system", "napalm_redfish.transport", ] ignore_errors = true [tool.pytest.ini_options] testpaths = ["tests"] # The tests import their helpers as tests.conftest, also under a bare pytest. pythonpath = ["."] [tool.coverage.run] source = ["napalm_redfish"] [tool.coverage.report] fail_under = 94