chore: adopt the NAPALM driver standard
driver / standard (pull_request) Successful in 13s
driver / lint (pull_request) Successful in 12s
driver / types (pull_request) Successful in 43s
driver / test (3.10) (pull_request) Successful in 46s
driver / test (3.11) (pull_request) Successful in 48s
driver / test (3.12) (pull_request) Successful in 43s
driver / test (3.13) (pull_request) Successful in 39s
driver / lowest (pull_request) Successful in 23s
driver / security (pull_request) Successful in 46s
driver / build (pull_request) Successful in 22s
CI / driver (pull_request) Successful in 5m37s
driver / publish (pull_request) Skipped

- CI arrives in .gitea/workflows/ci.yml and calls the shared driver
  workflow of NAPALM/driver-standard; the repo had none before.
- setuptools>=77 and the SPDX license string PEP 639 wants, without the
  License classifier; napalm-device-types>=4.21.1 from PyPI; Issues and
  Changelog links on git.netork.io. LICENSE, NOTICE and py.typed were
  already there and stay.
- The test extra becomes the dev extra of the standard, plus responses,
  which the tests mock AMT with.
- mypy strict with the untyped imports (napalm, requests, defusedxml)
  named instead of ignored globally; napalm_amt.driver is exempt for now
  (5 errors: getters return dicts where the role declares TypedDicts),
  recorded in tests/quality_baseline.json with get_event_log's
  complexity of 11.
- Coverage floor 95 % (measured 95.87 %).
- CHANGELOG.md in Keep a Changelog form; the README's development steps
  install from PyPI.
This commit is contained in:
christianmanivong committed 2026-10-23 08:37:32 +02:00
1 parent 76f85051cc
commit c9a7ee4378
6 files changed
+83 -21

No files matched your search

+7 -6
View File
@@ -29,8 +29,8 @@ nothing with napalm-redfish beyond the role, so it lives here.
`optional_args`: `port` (16992; 16993 means TLS), `tls` (overrides what the port
implies), `verify_ssl` (`True`, a CA file path, or `False`), `retries` (1).
The WS-Management client in `napalm_amt/wsman.py` is self-contained (requests and
ElementTree). Neither `pywsman` (a C binding) nor `python-amt` (unmaintained, power only)
The WS-Management client in `napalm_amt/wsman.py` is self-contained (requests, and
defusedxml to parse the answers). Neither `pywsman` (a C binding) nor `python-amt` (unmaintained, power only)
is used.
## What AMT knows, and what it does not
@@ -54,12 +54,13 @@ of its own in the MEBx ([docs/lenovo-m910x.md](docs/lenovo-m910x.md)).
## Development
The rules are in [STANDARDS.md](https://git.netork.io/NAPALM/driver-standard/src/branch/main/STANDARDS.md).
```bash
python -m venv .venv
.venv/bin/pip install -e ../napalm-device-types # not on PyPI
.venv/bin/pip install -e '.[test]' ruff mypy types-requests
.venv/bin/python -m pytest
.venv/bin/ruff check . && .venv/bin/mypy napalm_amt
.venv/bin/pip install -e '.[dev]'
.venv/bin/pytest --cov
.venv/bin/ruff format --check . && .venv/bin/ruff check . && .venv/bin/mypy napalm_amt
```
## Conventions