python-netgear-switch-library 0.0.post326__tar.gz → 0.0.post327__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.post326 → python_netgear_switch_library-0.0.post327}/PKG-INFO +1 -1
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/_ext/support_tables.py +69 -9
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/_static/ngsw.css +11 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/gs105pe.rst +2 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/gs110emx.rst +2 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/gs305ep.rst +2 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/gs728tpp.rst +2 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/gsm7228ps.rst +2 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/gsm7252ps.rst +2 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/m4300-16x.rst +2 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/m4300-24x.rst +2 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/_version.py +2 -2
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/.github/workflows/ci.yml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/.github/workflows/deb.yml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/.github/workflows/publish-pypi.yml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/.gitignore +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/.readthedocs.yaml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/CLAUDE.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/LICENSE +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/README.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/RELEASING.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/debian/changelog +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/debian/control +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/debian/copyright +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/debian/rules +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/debian/source/format +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/Makefile +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/_ext/filelinks.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/api/cli.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/api/core.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/api/facades.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/api/index.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/api/mcp.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/api/operations.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/api/protocols.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/api/transport.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/api/virtual.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/cli.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/conf.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/development.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/fake/index.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/fake/internals.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/fake/serving.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/fake/testing.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/guide/concepts.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/guide/configuration.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/guide/installation.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/guide/principles.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/guide/quickstart.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/guide/reading.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/guide/writing.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/index.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/mcp.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/index.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/models/support.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/protocols/cli.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/protocols/http.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/protocols/index.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/protocols/nsdp.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/protocols/snmp.rst +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/plans/2026-07-15-foundation.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/plans/2026-07-17-slice-02-snmp-read-core.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/plans/2026-07-17-slice-03-read-apis.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/plans/2026-07-18-slice-04-snmp-write.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/plans/2026-07-18-slice-05-nsdp.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/plans/2026-07-18-slice-06-http.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/plans/2026-07-18-slice-07-cli.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/plans/2026-07-18-slice-08-packaging-ci.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/plans/2026-07-23-gsm7252ps-http-xe-dialect.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/specs/2026-07-15-netgear-control-library-design.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/superpowers/specs/2026-07-23-gsm7252ps-http-xe-dialect-design.md +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/packaging/apt-index.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/packaging/ci-build.sh +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/packaging/deb-version.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/pyproject.toml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/_dispatch.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/aio_api.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/capabilities.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/cli/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/cli/capture.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/cli/context.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/cli/format.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/cli/main.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/cli/resolve.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/cli/safety.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/cli_read.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/cli_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/config.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/errors.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/http_read.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/http_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/mcp/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/mcp/server.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/models.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/nsdp_read.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/nsdp_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/cli/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/cli/commands.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/cli/parse.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/http/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/http/crypt.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/http/endpoints.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/http/forms.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/http/parse.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/http/session.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/http/types.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/nsdp/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/nsdp/auth.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/nsdp/client.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/nsdp/parsers.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/nsdp/protocol.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/nsdp/types.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/nsdp/write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/snmp/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/snmp/client.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/snmp/oids.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/snmp/parse.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/protocols/snmp/write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/py.typed +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/registry.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/snmp_read.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/snmp_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/sync_api.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/aio/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/aio/nsdp_udp.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/aio/snmp_pysnmp.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/cli/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/cli/console.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/cli/session.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/cli/ssh.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/cli/telnet.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/http/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/http/client.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/sync/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/sync/nsdp_udp.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/transport/sync/snmp_netsnmp_cli.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/cli_fastpath.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/faces/__init__.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/faces/cli.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/faces/http.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/faces/mibview.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/faces/nsdp.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/faces/snmp.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/seed.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/server.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/state.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web_fastpath_vlan.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web_fastpath_xui.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web_gs105pe.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web_gs110emx.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web_gs110emx_templates.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web_gs728tpp.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web_gsm7228ps.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web_gsm7252ps.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/src/netgear_switch/virtual/web_m4300.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/capture_parity.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_capture.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_cli_integration.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_control_poe_port.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_control_vlan_ip.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_format.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_main_framework.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_new_commands.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_op_coverage.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_prompt_wiring.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_read_commands.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_resolve.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_safety.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/cli/test_serve.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/conftest.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/captures/gsm7228ps.json +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/captures/gsm7252ps.json +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/captures/m4300-16x.json +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/captures/m4300-24x.json +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_lldp.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_mac_table.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_network.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_poe.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_vlan.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_vlan_brief.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7228ps_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_interface_ethernet_1_0_1.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_lldp_remote_device_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_mac_addr_table.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_network.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_poe_port_info_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_vlan_90.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_vlan_brief.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/gsm7252ps_show_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_interface_ethernet_1_0_1.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_ip_management.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_lldp_remote_device_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_mac_addr_table.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_poe_port_info_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_vlan.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_vlan_1.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_vlan_4.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_vlan_5.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_16x_show_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_environment.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_interface_ethernet_1_0_1.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_ip_management.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_lldp_remote_device_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_mac_addr_table.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_version.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_vlan.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_vlan_5.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_vlan_90.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/cli/m4300_24x_show_vlan_port_all.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs105pe_membership.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs105pe_portstats.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs105pe_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs105pe_status.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs105pe_switch_info.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs105pe_vlancfg.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs110emx_cf8021q.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs110emx_interface_stats.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs110emx_login.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs110emx_port_settings.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs110emx_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs110emx_redirect.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs110emx_sysinfo.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs110emx_vlanmembership.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs305ep_dashboard.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs305ep_login.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs305ep_membership.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs305ep_poestatus.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs305ep_portstats.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs305ep_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs305ep_vlancfg.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs728tpp_device_info_and_sensors.xml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs728tpp_lldp.xml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs728tpp_macs.xml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs728tpp_mgmt_ip.xml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs728tpp_poe.xml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs728tpp_ports.xml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs728tpp_pvids_membership.xml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs728tpp_vlan_membership_per_vlan.xml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gs728tpp_vlans.xml +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_basicAddressTable.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_ipConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_portPvidConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_portStatistics.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_portsConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_sysInfo.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_vlanPortCfg_vlan5.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7228ps_vlanStatus.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_basicAddressTable.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_ipConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_login.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_portPvidConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_portStatistics.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_portsConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_sysInfo.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan1.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_vlanPortCfg_vlan141.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/gsm7252ps_vlanStatus.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_16x_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_16x_mgmtVlanIpv4Configuration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_16x_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_16x_portsConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_16x_vlanportcfg_vlan4.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_24x_poeInterfaceConfiguration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_addresstable.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_lldpRemoteInventory.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_mgmtVlanIpv4Configuration.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_ports.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_portstats.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_pvid.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_sysinfo.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_vlanportcfg_vlan1.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/http/m4300_vlanstatus.html +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/snmp/gsm7252ps_fans.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/snmp/gsm7252ps_ifhighspeed.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/snmp/gsm7252ps_ifoperstatus.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/fixtures/snmp/gsm7252ps_psu.txt +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/http_specs.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/cli/test_cli_parse.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/http/test_crypt.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/http/test_endpoints.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/http/test_forms.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/http/test_parse.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/nsdp/test_auth.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/nsdp/test_parsers.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/nsdp/test_protocol.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/nsdp/test_write_frame.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/snmp/test_client.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/snmp/test_oids.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/snmp/test_parse_lldp_macs.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/snmp/test_parse_mgmt_ip.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/snmp/test_parse_poe_sensors.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/snmp/test_parse_ports.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/snmp/test_parse_system_info.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/snmp/test_parse_vlans.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/protocols/snmp/test_write_encode.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_aio_api.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_capabilities.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_cli_read.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_cli_vlan_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_cli_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_config.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_cross_backend_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_deb_version.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_dispatch.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_errors.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_facade_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_http_dispatch.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_http_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_http_read.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_http_vlan_membership.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_http_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_http_xui_writes.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_import.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_mcp_server.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_models.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_models_snmp_read.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_nsdp_integration.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_nsdp_read.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_nsdp_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_public_api.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_quality_gates.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_registry.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_snmp_integration.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_snmp_read.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_snmp_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_sync_api.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_version.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/test_write_equivalence.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/_fastpath_fake.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/test_cli_console.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/test_cli_scp_cert.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/test_cli_telnet.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/test_http_client.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/test_nsdp_udp_sync.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/test_set_transport.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/test_snmp_netsnmp_cli.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/test_snmp_pysnmp.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/transport/test_value_parity.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_cli_cross_backend.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_cli_gsm7228ps_parity.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_gsm7228ps_seed.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_m4300_seeds.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_mibview.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_mutable_state.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_nsdp_state.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_serve_daemon.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_snmp_write_face.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_state_seed.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_switchport_vlan_write.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_virtual_http_face.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_virtual_nsdp_face.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_virtual_snmp_face.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/tests/virtual/test_web_projection.py +0 -0
- {python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/uv.lock +0 -0
{python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/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.post327
|
|
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
|
|
@@ -341,9 +341,7 @@ class BackendModelTable(_GeneratedTable):
|
|
|
341
341
|
rows = []
|
|
342
342
|
for key in _models_with(backends):
|
|
343
343
|
model = MODELS[key]
|
|
344
|
-
reached = ", ".join(
|
|
345
|
-
b.name for b in backends_for(model) if b in backends
|
|
346
|
-
)
|
|
344
|
+
reached = ", ".join(b.name for b in backends_for(model) if b in backends)
|
|
347
345
|
rows.append(
|
|
348
346
|
[
|
|
349
347
|
# Absolute doc path: this table is included from
|
|
@@ -382,9 +380,7 @@ class BackendOperationTable(_GeneratedTable):
|
|
|
382
380
|
for op in (*READ_OPERATIONS, *WRITE_OPERATIONS):
|
|
383
381
|
cells = []
|
|
384
382
|
for key in keys:
|
|
385
|
-
backend = next(
|
|
386
|
-
(b for b in backends_for(key) if b in backends), None
|
|
387
|
-
)
|
|
383
|
+
backend = next((b for b in backends_for(key) if b in backends), None)
|
|
388
384
|
if backend is None: # pragma: no cover - filtered by _models_with
|
|
389
385
|
cells.append(_NO)
|
|
390
386
|
continue
|
|
@@ -450,9 +446,7 @@ class ModelFacts(_GeneratedTable):
|
|
|
450
446
|
]
|
|
451
447
|
)
|
|
452
448
|
if aliases:
|
|
453
|
-
rows.append(
|
|
454
|
-
["Aliases", ", ".join(f"``{a}``" for a in aliases)]
|
|
455
|
-
)
|
|
449
|
+
rows.append(["Aliases", ", ".join(f"``{a}``" for a in aliases)])
|
|
456
450
|
rows.append(
|
|
457
451
|
[
|
|
458
452
|
"MAC/FDB table",
|
|
@@ -497,6 +491,71 @@ class ModelPhoto(_GeneratedTable):
|
|
|
497
491
|
MISSING_PHOTOS: set[str] = set()
|
|
498
492
|
|
|
499
493
|
|
|
494
|
+
class ModelDiagram(_GeneratedTable):
|
|
495
|
+
"""A schematic port map for one model, drawn from the registry.
|
|
496
|
+
|
|
497
|
+
Not a photograph and not a faceplate: it shows the ports *as this library
|
|
498
|
+
addresses them*, which is the thing a caller actually needs when deciding
|
|
499
|
+
what to pass as ``port=``. Generated from ``port_count`` and
|
|
500
|
+
``poe_port_count``, so it cannot drift from the registry -- and so it never
|
|
501
|
+
asserts a physical arrangement nobody measured.
|
|
502
|
+
"""
|
|
503
|
+
|
|
504
|
+
required_arguments = 1
|
|
505
|
+
|
|
506
|
+
_COLS = 26
|
|
507
|
+
_BOX = 26
|
|
508
|
+
_GAP = 4
|
|
509
|
+
|
|
510
|
+
def body(self) -> str:
|
|
511
|
+
model = get_model(self.arguments[0])
|
|
512
|
+
total, poe = model.port_count, model.poe_port_count
|
|
513
|
+
step = self._BOX + self._GAP
|
|
514
|
+
rows = (total + self._COLS - 1) // self._COLS
|
|
515
|
+
width = min(total, self._COLS) * step + self._GAP
|
|
516
|
+
height = rows * step + self._GAP + 22
|
|
517
|
+
|
|
518
|
+
parts = [
|
|
519
|
+
f'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 {width} {height}" '
|
|
520
|
+
f'role="img" aria-label="Port map: {total} ports, {poe} with PoE" '
|
|
521
|
+
'style="max-width:100%;height:auto">'
|
|
522
|
+
]
|
|
523
|
+
for index in range(total):
|
|
524
|
+
port = index + 1
|
|
525
|
+
col, row = index % self._COLS, index // self._COLS
|
|
526
|
+
x = self._GAP + col * step
|
|
527
|
+
y = self._GAP + row * step
|
|
528
|
+
# PoE ports come first on every model in this registry; anything
|
|
529
|
+
# beyond that count is drawn as a plain (usually uplink) port.
|
|
530
|
+
fill = "#2b6cb0" if port <= poe else "#a0aec0"
|
|
531
|
+
parts.append(
|
|
532
|
+
f'<rect x="{x}" y="{y}" width="{self._BOX}" height="{self._BOX}" '
|
|
533
|
+
f'rx="3" fill="{fill}"/>'
|
|
534
|
+
f'<text x="{x + self._BOX / 2}" y="{y + self._BOX / 2 + 4}" '
|
|
535
|
+
'font-size="10" text-anchor="middle" fill="#fff" '
|
|
536
|
+
f'font-family="monospace">{port}</text>'
|
|
537
|
+
)
|
|
538
|
+
legend_y = rows * step + self._GAP + 14
|
|
539
|
+
parts.append(
|
|
540
|
+
f'<rect x="4" y="{legend_y - 9}" width="11" height="11" rx="2" '
|
|
541
|
+
'fill="#2b6cb0"/>'
|
|
542
|
+
f'<text x="20" y="{legend_y}" font-size="11" fill="currentColor">'
|
|
543
|
+
f"PoE ({poe})</text>"
|
|
544
|
+
f'<rect x="86" y="{legend_y - 9}" width="11" height="11" rx="2" '
|
|
545
|
+
'fill="#a0aec0"/>'
|
|
546
|
+
f'<text x="102" y="{legend_y}" font-size="11" fill="currentColor">'
|
|
547
|
+
f"no PoE ({total - poe})</text>"
|
|
548
|
+
)
|
|
549
|
+
parts.append("</svg>")
|
|
550
|
+
svg = "".join(parts)
|
|
551
|
+
return (
|
|
552
|
+
".. raw:: html\n\n"
|
|
553
|
+
f' <figure class="ngsw-port-map">{svg}'
|
|
554
|
+
"<figcaption>Port map as the library addresses these ports — "
|
|
555
|
+
"schematic, not a faceplate layout.</figcaption></figure>\n"
|
|
556
|
+
)
|
|
557
|
+
|
|
558
|
+
|
|
500
559
|
class UnverifiedNote(_GeneratedTable):
|
|
501
560
|
"""Name the models the tables leave out, and say why."""
|
|
502
561
|
|
|
@@ -543,6 +602,7 @@ def setup(app: Sphinx) -> dict[str, Any]:
|
|
|
543
602
|
app.add_directive("ngsw-model-support", ModelSupportTable)
|
|
544
603
|
app.add_directive("ngsw-model-facts", ModelFacts)
|
|
545
604
|
app.add_directive("ngsw-model-photo", ModelPhoto)
|
|
605
|
+
app.add_directive("ngsw-model-diagram", ModelDiagram)
|
|
546
606
|
app.add_directive("ngsw-backend-models", BackendModelTable)
|
|
547
607
|
app.add_directive("ngsw-backend-operations", BackendOperationTable)
|
|
548
608
|
app.add_directive("ngsw-support-gaps", SupportGaps)
|
|
@@ -25,3 +25,14 @@ a.repofile tt {
|
|
|
25
25
|
text-decoration: underline;
|
|
26
26
|
text-decoration-style: dotted;
|
|
27
27
|
}
|
|
28
|
+
|
|
29
|
+
/* Generated port maps (docs/_ext/support_tables.py's ngsw-model-diagram). */
|
|
30
|
+
figure.ngsw-port-map {
|
|
31
|
+
margin: 1rem 0 1.5rem;
|
|
32
|
+
text-align: center;
|
|
33
|
+
}
|
|
34
|
+
figure.ngsw-port-map figcaption {
|
|
35
|
+
font-size: 0.85em;
|
|
36
|
+
opacity: 0.75;
|
|
37
|
+
margin-top: 0.4rem;
|
|
38
|
+
}
|
|
@@ -3,6 +3,8 @@ GS728TPP
|
|
|
3
3
|
|
|
4
4
|
.. ngsw-model-photo:: gs728tpp
|
|
5
5
|
|
|
6
|
+
.. ngsw-model-diagram:: gs728tpp
|
|
7
|
+
|
|
6
8
|
A 28-port Smart Managed Pro switch with 24 PoE+ ports. The most unusual entry in
|
|
7
9
|
the registry: its SNMP agent implements **no Netgear vendor OIDs at all**, and
|
|
8
10
|
its web UI is an XML API rather than scraped HTML.
|
|
@@ -3,6 +3,8 @@ S3300-52X-PoE+
|
|
|
3
3
|
|
|
4
4
|
.. ngsw-model-photo:: gsm7228ps
|
|
5
5
|
|
|
6
|
+
.. ngsw-model-diagram:: gsm7228ps
|
|
7
|
+
|
|
6
8
|
A 52-port Smart Managed Pro switch with 48 PoE ports — despite the
|
|
7
9
|
``GSM7228PS`` part-number family suggesting 28. The registry key is
|
|
8
10
|
``gsm7228ps``; ``s3300`` is an alias resolving to the same record, because the
|
|
@@ -3,6 +3,8 @@ GSM7252PS
|
|
|
3
3
|
|
|
4
4
|
.. ngsw-model-photo:: gsm7252ps
|
|
5
5
|
|
|
6
|
+
.. ngsw-model-diagram:: gsm7252ps
|
|
7
|
+
|
|
6
8
|
A 52-port Fully Managed stackable switch, 48 of them PoE. The model with the
|
|
7
9
|
widest verified backend coverage in this fleet — SNMP, the XE FASTPATH web UI
|
|
8
10
|
and the CLI are all cross-verified against each other — and the one the
|
|
@@ -3,6 +3,8 @@ M4300-16X
|
|
|
3
3
|
|
|
4
4
|
.. ngsw-model-photo:: m4300-16x
|
|
5
5
|
|
|
6
|
+
.. ngsw-model-diagram:: m4300-16x
|
|
7
|
+
|
|
6
8
|
The XSM4316, a Fully Managed 10G switch with PoE on all 16 ports, running
|
|
7
9
|
FASTPATH **12.0.19.15** — a different firmware from its M4300-24X sibling, which
|
|
8
10
|
is exactly why its behaviour was measured rather than inherited.
|
|
@@ -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.post327'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 0, 'post327')
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/.gitignore
RENAMED
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/CLAUDE.md
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/LICENSE
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/README.md
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/RELEASING.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/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
|
{python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/cli.rst
RENAMED
|
File without changes
|
{python_netgear_switch_library-0.0.post326 → python_netgear_switch_library-0.0.post327}/docs/conf.py
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.post326 → python_netgear_switch_library-0.0.post327}/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
|