python-netgear-switch-library 0.0.post321__tar.gz → 0.0.post323__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/.github/workflows/ci.yml +9 -2
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/PKG-INFO +1 -1
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/conf.py +35 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/_version.py +2 -2
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/http/types.py +10 -3
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/.github/workflows/deb.yml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/.github/workflows/publish-pypi.yml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/.gitignore +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/.readthedocs.yaml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/CLAUDE.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/LICENSE +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/README.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/RELEASING.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/debian/changelog +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/debian/control +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/debian/copyright +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/debian/rules +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/debian/source/format +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/Makefile +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/_ext/filelinks.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/_ext/support_tables.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/_static/ngsw.css +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/api/cli.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/api/core.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/api/facades.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/api/index.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/api/mcp.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/api/operations.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/api/protocols.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/api/transport.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/api/virtual.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/cli.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/development.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/fake/index.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/fake/internals.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/fake/serving.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/fake/testing.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/guide/concepts.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/guide/configuration.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/guide/installation.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/guide/principles.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/guide/quickstart.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/guide/reading.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/guide/writing.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/index.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/mcp.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/models/index.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/models/support.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/protocols/cli.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/protocols/http.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/protocols/index.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/protocols/nsdp.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/protocols/snmp.rst +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/plans/2026-07-15-foundation.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/plans/2026-07-17-slice-02-snmp-read-core.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/plans/2026-07-17-slice-03-read-apis.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/plans/2026-07-18-slice-04-snmp-write.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/plans/2026-07-18-slice-05-nsdp.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/plans/2026-07-18-slice-06-http.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/plans/2026-07-18-slice-07-cli.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/plans/2026-07-18-slice-08-packaging-ci.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/plans/2026-07-23-gsm7252ps-http-xe-dialect.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/specs/2026-07-15-netgear-control-library-design.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/superpowers/specs/2026-07-23-gsm7252ps-http-xe-dialect-design.md +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/packaging/apt-index.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/packaging/ci-build.sh +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/packaging/deb-version.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/pyproject.toml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/_dispatch.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/aio_api.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/capabilities.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/cli/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/cli/capture.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/cli/context.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/cli/format.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/cli/main.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/cli/resolve.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/cli/safety.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/cli_read.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/cli_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/config.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/errors.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/http_read.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/http_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/mcp/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/mcp/server.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/models.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/nsdp_read.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/nsdp_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/cli/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/cli/commands.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/cli/parse.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/http/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/http/crypt.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/http/endpoints.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/http/forms.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/http/parse.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/http/session.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/nsdp/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/nsdp/auth.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/nsdp/client.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/nsdp/parsers.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/nsdp/protocol.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/nsdp/types.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/nsdp/write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/snmp/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/snmp/client.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/snmp/oids.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/snmp/parse.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/protocols/snmp/write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/py.typed +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/registry.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/snmp_read.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/snmp_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/sync_api.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/aio/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/aio/nsdp_udp.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/aio/snmp_pysnmp.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/cli/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/cli/console.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/cli/session.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/cli/ssh.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/cli/telnet.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/http/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/http/client.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/sync/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/sync/nsdp_udp.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/transport/sync/snmp_netsnmp_cli.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/cli_fastpath.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/faces/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/faces/cli.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/faces/http.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/faces/mibview.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/faces/nsdp.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/faces/snmp.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/seed.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/server.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/state.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web_fastpath_vlan.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web_fastpath_xui.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web_gs105pe.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web_gs110emx.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web_gs110emx_templates.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web_gs728tpp.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web_gsm7228ps.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web_gsm7252ps.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/src/netgear_switch/virtual/web_m4300.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/capture_parity.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_capture.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_cli_integration.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_control_poe_port.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_control_vlan_ip.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_format.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_main_framework.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_new_commands.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_op_coverage.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_prompt_wiring.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_read_commands.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_resolve.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_safety.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/cli/test_serve.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/conftest.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/captures/gsm7228ps.json +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/captures/gsm7252ps.json +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/captures/m4300-16x.json +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/captures/m4300-24x.json +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_lldp.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_mac_table.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_network.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_poe.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_vlan.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_vlan_brief.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7228ps_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_interface_ethernet_1_0_1.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_lldp_remote_device_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_mac_addr_table.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_network.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_poe_port_info_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_vlan_90.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_vlan_brief.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/gsm7252ps_show_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_interface_ethernet_1_0_1.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_ip_management.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_lldp_remote_device_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_mac_addr_table.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_poe_port_info_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_vlan.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_vlan_1.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_vlan_4.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_vlan_5.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_16x_show_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_interface_ethernet_1_0_1.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_ip_management.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_lldp_remote_device_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_mac_addr_table.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_vlan.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_vlan_5.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_vlan_90.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/cli/m4300_24x_show_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs105pe_membership.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs105pe_portstats.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs105pe_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs105pe_status.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs105pe_switch_info.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs105pe_vlancfg.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs110emx_cf8021q.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs110emx_interface_stats.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs110emx_login.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs110emx_port_settings.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs110emx_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs110emx_redirect.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs110emx_sysinfo.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs110emx_vlanmembership.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs305ep_dashboard.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs305ep_login.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs305ep_membership.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs305ep_poestatus.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs305ep_portstats.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs305ep_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs305ep_vlancfg.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs728tpp_device_info_and_sensors.xml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs728tpp_lldp.xml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs728tpp_macs.xml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs728tpp_mgmt_ip.xml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs728tpp_poe.xml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs728tpp_ports.xml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs728tpp_pvids_membership.xml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs728tpp_vlan_membership_per_vlan.xml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gs728tpp_vlans.xml +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_basicAddressTable.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_ipConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_portPvidConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_portStatistics.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_portsConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_sysInfo.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_vlanPortCfg_vlan5.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7228ps_vlanStatus.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_basicAddressTable.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_ipConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_login.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_portPvidConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_portStatistics.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_portsConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_sysInfo.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan1.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan141.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/gsm7252ps_vlanStatus.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_16x_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_16x_mgmtVlanIpv4Configuration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_16x_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_16x_portsConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_16x_vlanportcfg_vlan4.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_24x_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_addresstable.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_mgmtVlanIpv4Configuration.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_ports.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_portstats.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_sysinfo.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_vlanportcfg_vlan1.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/http/m4300_vlanstatus.html +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/snmp/gsm7252ps_fans.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/snmp/gsm7252ps_ifhighspeed.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/snmp/gsm7252ps_ifoperstatus.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/fixtures/snmp/gsm7252ps_psu.txt +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/http_specs.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/cli/test_cli_parse.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/http/test_crypt.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/http/test_endpoints.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/http/test_forms.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/http/test_parse.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/nsdp/test_auth.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/nsdp/test_parsers.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/nsdp/test_protocol.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/nsdp/test_write_frame.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/snmp/test_client.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/snmp/test_oids.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/snmp/test_parse_lldp_macs.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/snmp/test_parse_mgmt_ip.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/snmp/test_parse_poe_sensors.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/snmp/test_parse_ports.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/snmp/test_parse_system_info.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/snmp/test_parse_vlans.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/protocols/snmp/test_write_encode.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_aio_api.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_capabilities.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_cli_read.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_cli_vlan_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_cli_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_config.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_cross_backend_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_deb_version.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_dispatch.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_errors.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_facade_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_http_dispatch.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_http_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_http_read.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_http_vlan_membership.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_http_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_http_xui_writes.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_import.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_mcp_server.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_models.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_models_snmp_read.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_nsdp_integration.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_nsdp_read.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_nsdp_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_public_api.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_quality_gates.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_registry.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_snmp_integration.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_snmp_read.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_snmp_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_sync_api.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_version.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/test_write_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/_fastpath_fake.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/test_cli_console.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/test_cli_scp_cert.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/test_cli_telnet.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/test_http_client.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/test_nsdp_udp_sync.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/test_set_transport.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/test_snmp_netsnmp_cli.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/test_snmp_pysnmp.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/transport/test_value_parity.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_cli_cross_backend.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_cli_gsm7228ps_parity.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_gsm7228ps_seed.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_m4300_seeds.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_mibview.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_mutable_state.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_nsdp_state.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_serve_daemon.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_snmp_write_face.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_state_seed.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_switchport_vlan_write.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_virtual_http_face.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_virtual_nsdp_face.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_virtual_snmp_face.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/tests/virtual/test_web_projection.py +0 -0
- {python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/uv.lock +0 -0
|
@@ -65,8 +65,15 @@ jobs:
|
|
|
65
65
|
- name: Sync the docs extra
|
|
66
66
|
run: uv sync --extra docs
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
# Read the Docs' EXACT invocation, `-j auto` included. That flag matters:
|
|
69
|
+
# a parallel read needs every registered Sphinx domain to implement
|
|
70
|
+
# merge_domaindata, and sphinx-argparse's does not -- which broke the
|
|
71
|
+
# published build while a gate without `-j auto` stayed green. Run what
|
|
72
|
+
# production runs.
|
|
73
|
+
- name: Build the documentation (Read the Docs' command, warnings are errors)
|
|
74
|
+
run: >
|
|
75
|
+
uv run python -m sphinx -T -W --keep-going -j auto -b html
|
|
76
|
+
-d docs/_build/doctrees -D language=en docs docs/_build/html
|
|
70
77
|
|
|
71
78
|
- name: Upload the built documentation
|
|
72
79
|
uses: actions/upload-artifact@v4
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-netgear-switch-library
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.post323
|
|
4
4
|
Summary: Python library and CLI to query and control Netgear switches over SNMP, NSDP and HTTP.
|
|
5
5
|
Author-email: Tim Ansell <me@mith.ro>
|
|
6
6
|
License-Expression: Apache-2.0
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/conf.py
RENAMED
|
@@ -18,6 +18,10 @@ from datetime import UTC, datetime
|
|
|
18
18
|
from importlib.metadata import PackageNotFoundError
|
|
19
19
|
from importlib.metadata import version as pkg_version
|
|
20
20
|
from pathlib import Path
|
|
21
|
+
from typing import TYPE_CHECKING
|
|
22
|
+
|
|
23
|
+
if TYPE_CHECKING:
|
|
24
|
+
from sphinx.application import Sphinx
|
|
21
25
|
|
|
22
26
|
DOCS_DIR = Path(__file__).parent
|
|
23
27
|
REPO_ROOT = DOCS_DIR.parent
|
|
@@ -135,3 +139,34 @@ html_theme_options = {
|
|
|
135
139
|
|
|
136
140
|
copybutton_prompt_text = r"\$ |>>> |\.\.\. "
|
|
137
141
|
copybutton_prompt_is_regexp = True
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
# -- Build tweaks -------------------------------------------------------------
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def _force_serial_build(app: Sphinx) -> None:
|
|
148
|
+
"""Read and write documents serially, whatever ``-j`` was passed.
|
|
149
|
+
|
|
150
|
+
Read the Docs always invokes Sphinx with ``-j auto``, and a parallel READ
|
|
151
|
+
requires every registered domain to implement ``merge_domaindata`` so the
|
|
152
|
+
workers' results can be combined. ``sphinx-argparse`` registers an
|
|
153
|
+
``ArgParseDomain`` that does not, so a parallel build dies with::
|
|
154
|
+
|
|
155
|
+
NotImplementedError: merge_domaindata must be implemented in
|
|
156
|
+
<class 'sphinxarg.ext.ArgParseDomain'> to be able to do parallel builds!
|
|
157
|
+
|
|
158
|
+
Forcing ``parallel`` back to 1 here is a deliberate trade of build time for
|
|
159
|
+
a working build; it is the only knob available, since Read the Docs does not
|
|
160
|
+
expose the ``-j`` flag in ``.readthedocs.yaml``. Serial is ~5 minutes for
|
|
161
|
+
this project, well inside any build timeout. Remove this once
|
|
162
|
+
sphinx-argparse implements ``merge_domaindata``.
|
|
163
|
+
|
|
164
|
+
This is why the CI documentation job passes ``-j auto`` too (see
|
|
165
|
+
``.github/workflows/ci.yml``): the gate must run the command Read the Docs
|
|
166
|
+
runs, or a failure like this one reaches production with CI still green.
|
|
167
|
+
"""
|
|
168
|
+
app.parallel = 1
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def setup(app: Sphinx) -> None:
|
|
172
|
+
app.connect("builder-inited", _force_serial_build)
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 0, '
|
|
21
|
+
__version__ = version = '0.0.post323'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 0, 'post323')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -6,7 +6,7 @@ in ``models.py``, until/unless a second backend needs the same shape).
|
|
|
6
6
|
|
|
7
7
|
from __future__ import annotations
|
|
8
8
|
|
|
9
|
-
from dataclasses import dataclass
|
|
9
|
+
from dataclasses import dataclass, field
|
|
10
10
|
from types import MappingProxyType
|
|
11
11
|
from typing import TYPE_CHECKING
|
|
12
12
|
|
|
@@ -141,8 +141,15 @@ class XuiListPage:
|
|
|
141
141
|
hidden: Mapping[str, str]
|
|
142
142
|
buttons: Mapping[str, str]
|
|
143
143
|
rows: tuple[XuiRow, ...]
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
# default_factory, NOT a bare ``MappingProxyType({})`` default, because that
|
|
145
|
+
# breaks on Python 3.11 -- the floor this project supports (CI caught it on
|
|
146
|
+
# 3.11 while 3.12 and 3.13 passed). ``dataclasses`` uses "the default's CLASS
|
|
147
|
+
# is unhashable" as its proxy for mutability, and ``mappingproxy`` only
|
|
148
|
+
# gained a class-level ``__hash__`` in 3.12; on 3.11 it has none, so the
|
|
149
|
+
# field is rejected as a mutable default. Matches the pattern already used by
|
|
150
|
+
# ``HttpModelSpec.cert_upload_form_fields``.
|
|
151
|
+
tokens: Mapping[str, str] = field(default_factory=lambda: MappingProxyType({}))
|
|
152
|
+
nav: Mapping[str, str] = field(default_factory=lambda: MappingProxyType({}))
|
|
146
153
|
|
|
147
154
|
def row_for(self, column: str, value: str) -> XuiRow | None:
|
|
148
155
|
"""The row whose ``column`` renders ``value`` (e.g. the ifName cell)."""
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/.gitignore
RENAMED
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/CLAUDE.md
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/LICENSE
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/README.md
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/RELEASING.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/debian/rules
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/cli.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post321 → python_netgear_switch_library-0.0.post323}/docs/mcp.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|