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 except Exception: pass in set_interface logs at debug level (B110), with a module logger; nosec with a reason for the empty password field of get_users (B105, now a named constant); two docstrings quoting device output keep their lines (noqa E501); a long docstring and message shortened or split; a test referenced the undefined SHOW_INTERFACE (now SHOW_INTERFACE_STATUS); raise ... from exc in a test.
chore: CI in .gitea/workflows/ci.yml calling the shared workflow; .github/ removed with publish.yml and tests.yml (Trusted Publishing never worked from Gitea); requirements.txt removed, it only repeated the pyproject dependencies; SPDX license, LICENSE, CHANGELOG, py.typed, URLs on git.netork.io (README included); napalm-device-types >=4.21.1; netaddr >=0.7.10 as a true floor, without which the lowest job cannot import; strict mypy with tplink_jetstream exempt for now; coverage floor 36 %; quality baseline. The version stays 0.4.0; PyPI still has the old 0.1.1 until the first release by tag.
## Summary
napalm-tplink-jetstream 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 `except Exception: pass` in `set_interface` logs at debug level (B110), with a module logger; nosec with a reason for the empty `password` field of `get_users` (B105, now a named constant); two docstrings quoting device output keep their lines (noqa E501); a long docstring and message shortened or split; a test referenced the undefined `SHOW_INTERFACE` (now `SHOW_INTERFACE_STATUS`); `raise ... from exc` in a test.
- **chore**: CI in `.gitea/workflows/ci.yml` calling the shared workflow; `.github/` removed with `publish.yml` and `tests.yml` (Trusted Publishing never worked from Gitea); `requirements.txt` removed, it only repeated the pyproject dependencies; SPDX license, LICENSE, CHANGELOG, `py.typed`, URLs on git.netork.io (README included); napalm-device-types >=4.21.1; netaddr >=0.7.10 as a true floor, without which the lowest job cannot import; strict mypy with `tplink_jetstream` exempt for now; coverage floor 36 %; quality baseline. The version stays 0.4.0; PyPI still has the old 0.1.1 until the first release by tag.
## Related Issue
Closes #8
## Testing
Locally: 45 tests, coverage 36.71 %, ruff, mypy, bandit clean; `napalm-standard check` and `ratchet` clean; build + `twine check --strict` pass. The lowest job's install (`uv --resolution lowest-direct`, Python 3.10) passes too. Fixtures only.
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.
- set_interface: the except Exception: pass around reading the old
untagged VLANs now logs at debug level (B110), with a module logger.
- nosec for the empty password field of get_users (B105, now a named
constant); a false positive.
- Two docstrings quoting tabular device output keep their lines (noqa
E501); a long docstring and an error message are shortened or split;
the unused duplex column is named _duplex.
- tests: a get_facts test named SHOW_INTERFACE, which does not exist; it
is SHOW_INTERFACE_STATUS. raise ... from exc.
- CI moves to .gitea/workflows/ci.yml and calls the shared driver workflow
of NAPALM/driver-standard. .github/ goes with publish.yml and tests.yml:
PyPI Trusted Publishing never worked from Gitea.
- requirements.txt goes: it only repeated the pyproject dependencies, with
an older napalm-device-types floor and without paramiko.
- LICENSE file (the README already pointed to it), CHANGELOG, py.typed,
SPDX license string, links to git.netork.io (README included);
napalm-device-types >=4.21.1, a dev extra with floors.
- netaddr gets a true floor (>=0.7.10): unbounded, the lowest job
installed a version without IPAddress, which napalm imports.
- mypy strict for the package; napalm_tplink_jetstream.tplink_jetstream is
exempt for now (96 errors), recorded in the quality baseline with its
long functions and the 2000-line module. Coverage floor 36 % (measured
36.71 %).
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-tplink-jetstream adopts the NAPALM driver standard (https://git.netork.io/NAPALM/driver-standard).
Epic: NAPALM/driver-standard#2.
Changes
ruff check --fixwith the standard's rule set (E, F, I, UP, B, line length 100, Python 3.10). Mechanical.except Exception: passinset_interfacelogs at debug level (B110), with a module logger; nosec with a reason for the emptypasswordfield ofget_users(B105, now a named constant); two docstrings quoting device output keep their lines (noqa E501); a long docstring and message shortened or split; a test referenced the undefinedSHOW_INTERFACE(nowSHOW_INTERFACE_STATUS);raise ... from excin a test..gitea/workflows/ci.ymlcalling the shared workflow;.github/removed withpublish.ymlandtests.yml(Trusted Publishing never worked from Gitea);requirements.txtremoved, it only repeated the pyproject dependencies; SPDX license, LICENSE, CHANGELOG,py.typed, URLs on git.netork.io (README included); napalm-device-types >=4.21.1; netaddr >=0.7.10 as a true floor, without which the lowest job cannot import; strict mypy withtplink_jetstreamexempt for now; coverage floor 36 %; quality baseline. The version stays 0.4.0; PyPI still has the old 0.1.1 until the first release by tag.Related Issue
Closes #8
Testing
Locally: 45 tests, coverage 36.71 %, ruff, mypy, bandit clean;
napalm-standard checkandratchetclean; build +twine check --strictpass. The lowest job's install (uv --resolution lowest-direct, Python 3.10) passes too. Fixtures only.