style: ruff format and ruff check --fix with the standard's rule set (E, F, I, UP, B, line length 100, Python 3.10). Mechanical.
fix: the module logger and refresh constants of opnsense.py move below the imports (E402); two long messages wrapped (E501); nosec B104 with a reason for two wildcard addresses that are data (sockstat's * and a route gateway compared with 0.0.0.0), not binds.
chore: CI in .gitea/workflows/ci.yml calling the shared driver workflow, .github/ removed; setuptools>=77, SPDX license string, napalm-device-types>=4.21.1, dev extra, git.netork.io URLs; LICENSE, CHANGELOG.md, py.typed; strict mypy with seven modules exempt for now (ha, listening, opnsense, ospf_mixin, ping_mixin, port_forwards, resolver_mixin; 52 errors); quality baseline written; coverage floor 79 %.
## Summary
napalm-opnsense adopts the NAPALM driver standard (https://git.netork.io/NAPALM/driver-standard).
Epic: NAPALM/driver-standard#2.
## Changes
- **style**: `ruff format` and `ruff check --fix` with the standard's rule set (E, F, I, UP, B, line length 100, Python 3.10). Mechanical.
- **fix**: the module logger and refresh constants of `opnsense.py` move below the imports (E402); two long messages wrapped (E501); `nosec B104` with a reason for two wildcard addresses that are data (sockstat's `*` and a route gateway compared with `0.0.0.0`), not binds.
- **chore**: CI in `.gitea/workflows/ci.yml` calling the shared driver workflow, `.github/` removed; `setuptools>=77`, SPDX license string, `napalm-device-types>=4.21.1`, dev extra, git.netork.io URLs; LICENSE, CHANGELOG.md, `py.typed`; strict mypy with seven modules exempt for now (`ha`, `listening`, `opnsense`, `ospf_mixin`, `ping_mixin`, `port_forwards`, `resolver_mixin`; 52 errors); quality baseline written; coverage floor 79 %.
## Related Issue
Closes #30
## Testing
Locally: 447 tests, coverage 79.20 %, ruff, mypy, bandit clean; `napalm-standard check` and `ratchet` clean; build + `twine check --strict` pass.
Mechanical: ruff format, and ruff check --fix with the rule set every NAPALM
driver uses (E, F, I, UP, B at line length 100, Python 3.10). What ruff
cannot fix comes in the next commit.
- The module logger and the refresh constants of opnsense.py move below
the imports (E402).
- Two long result messages are wrapped in parentheses (E501).
- nosec for the two wildcard addresses (B104): one is the address
sockstat reports for "*", the other a route's gateway compared with
0.0.0.0. Neither binds a socket; both are false positives.
- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow
of NAPALM/driver-standard; .github/ is gone.
- setuptools>=77 with the SPDX license string, no License classifier,
Python 3.10-3.13 classifiers, napalm-device-types>=4.21.1, a dev extra
with floors, links to git.netork.io, LICENSE file, py.typed.
- CHANGELOG.md in Keep-a-Changelog form; README names Python 3.10, the
Gitea clone URL and the new CI.
- mypy strict for the package; exempt for now (52 errors): ha, listening,
opnsense, ospf_mixin, ping_mixin, port_forwards, resolver_mixin.
Recorded in the quality baseline with the long and complex functions,
the 3100-line opnsense.py and one unannotated public method.
- Coverage floor 79 % (measured 79.20 %).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
napalm-opnsense adopts the NAPALM driver standard (https://git.netork.io/NAPALM/driver-standard).
Epic: NAPALM/driver-standard#2.
Changes
ruff formatandruff check --fixwith the standard's rule set (E, F, I, UP, B, line length 100, Python 3.10). Mechanical.opnsense.pymove below the imports (E402); two long messages wrapped (E501);nosec B104with a reason for two wildcard addresses that are data (sockstat's*and a route gateway compared with0.0.0.0), not binds..gitea/workflows/ci.ymlcalling the shared driver workflow,.github/removed;setuptools>=77, SPDX license string,napalm-device-types>=4.21.1, dev extra, git.netork.io URLs; LICENSE, CHANGELOG.md,py.typed; strict mypy with seven modules exempt for now (ha,listening,opnsense,ospf_mixin,ping_mixin,port_forwards,resolver_mixin; 52 errors); quality baseline written; coverage floor 79 %.Related Issue
Closes #30
Testing
Locally: 447 tests, coverage 79.20 %, ruff, mypy, bandit clean;
napalm-standard checkandratchetclean; build +twine check --strictpass.