From a6dca5fb328393eede57a4ee60d83ef3aa7ab590 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Mon, 8 Jul 2024 14:43:57 -0700 Subject: [PATCH 1/5] Release 4.4.0 (#3451) * Update dev dependencies * Update black * Roll to newer Python version in mypy section of setup.cfg * Adding setuptools to pyproject.toml * cffi dependency issue * Expand tests to windows and macos for GH-Actions * Breakout testing of macos-14 and macos-13 runner separately * Disable poetry cache on macos-13 and macos-14 due to ARM/X86_64 issues --- .github/workflows/main_testing.yaml | 87 +- netmiko/a10/a10_ssh.py | 1 + netmiko/adva/__init__.py | 1 + netmiko/adva/adva_aos_fsp_150_f2.py | 1 + netmiko/adva/adva_aos_fsp_150_f3.py | 1 + netmiko/alcatel/alcatel_aos_ssh.py | 1 + netmiko/aruba/aruba_aoscx.py | 1 + netmiko/aruba/aruba_os.py | 1 + netmiko/base_connection.py | 1 + netmiko/calix/calix_b6.py | 1 + netmiko/centec/centec_os.py | 1 + netmiko/ciena/ciena_saos.py | 1 + netmiko/cisco/cisco_asa_ssh.py | 1 + netmiko/cisco/cisco_ftd_ssh.py | 1 + netmiko/cisco/cisco_tp_tcce.py | 1 + netmiko/cisco/cisco_viptela.py | 1 + netmiko/cisco/cisco_wlc_ssh.py | 1 + netmiko/cisco_base_connection.py | 1 + netmiko/dell/dell_dnos6.py | 1 + netmiko/dell/dell_force10_ssh.py | 1 + netmiko/dell/dell_os10_ssh.py | 1 + netmiko/dell/dell_powerconnect.py | 1 + netmiko/dell/dell_sonic_ssh.py | 1 + netmiko/digi/digi_transport.py | 1 + netmiko/enterasys/enterasys_ssh.py | 1 + netmiko/ericsson/ericsson_ipos.py | 1 + netmiko/ericsson/ericsson_mltn.py | 1 + netmiko/extreme/extreme_ers_ssh.py | 1 + netmiko/extreme/extreme_exos.py | 1 + netmiko/extreme/extreme_nos_ssh.py | 1 + netmiko/extreme/extreme_slx_ssh.py | 1 + netmiko/extreme/extreme_tierraos_ssh.py | 1 + netmiko/extreme/extreme_vsp_ssh.py | 1 + netmiko/fiberstore/fiberstore_fsos.py | 1 + netmiko/mellanox/mellanox_mlnxos_ssh.py | 1 + netmiko/mrv/mrv_lx.py | 1 + netmiko/mrv/mrv_ssh.py | 1 + netmiko/netgear/netgear_prosafe_ssh.py | 1 + netmiko/oneaccess/oneaccess_oneos.py | 1 + netmiko/ruijie/ruijie_os.py | 1 + netmiko/scp_functions.py | 1 + netmiko/scp_handler.py | 1 + netmiko/snmp_autodetect.py | 1 + netmiko/sophos/sophos_sfos_ssh.py | 1 + netmiko/ssh_autodetect.py | 1 + netmiko/ssh_dispatcher.py | 1 + netmiko/terminal_server/terminal_server.py | 1 + netmiko/utilities.py | 1 + poetry.lock | 1331 +++++++++++--------- pyproject.toml | 27 +- setup.cfg | 2 +- 51 files changed, 900 insertions(+), 594 deletions(-) diff --git a/.github/workflows/main_testing.yaml b/.github/workflows/main_testing.yaml index 563bade93..d4bf82817 100644 --- a/.github/workflows/main_testing.yaml +++ b/.github/workflows/main_testing.yaml @@ -53,7 +53,7 @@ jobs: strategy: matrix: python-version: [ '3.8', '3.9', '3.10', '3.11', "3.12", "3.13.0-beta.2" ] - platform: [ubuntu-24.04] + platform: [ubuntu-24.04, windows-2022] runs-on: ${{ matrix.platform }} steps: @@ -88,6 +88,91 @@ jobs: poetry run pytest -v -s tests/unit/test_connection.py poetry run pytest -v -s tests/unit/test_entry_points.py + # ARM/X86_64 issues on macos + pytest-macos13: + name: Std Test on Python ${{ matrix.python-version }} (${{ matrix.platform}}) + defaults: + run: + shell: bash + strategy: + matrix: + python-version: [ '3.8', '3.9', '3.10', '3.11' ] + platform: [macos-13] + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + + - name: Setup python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + - uses: actions/checkout@v4 + + - name: Install poetry + run: | + pipx install poetry + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + poetry install + + - name: Run Tests + run: | + poetry run pytest -v -s tests/test_import_netmiko.py + poetry run pytest -v -s tests/unit/test_base_connection.py + poetry run pytest -v -s tests/unit/test_ssh_autodetect.py + poetry run pytest -v -s tests/unit/test_connection.py + poetry run pytest -v -s tests/unit/test_entry_points.py + + pytest-macos14: + name: Std Test on Python ${{ matrix.python-version }} (${{ matrix.platform}}) + defaults: + run: + shell: bash + strategy: + matrix: + python-version: [ "3.12", "3.13.0-beta.2" ] + platform: [macos-14] + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v4 + + - name: Setup python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + architecture: x64 + - uses: actions/checkout@v4 + + - name: Install poetry + run: | + pipx install poetry + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + poetry install + + - name: Run Tests + run: | + poetry run pytest -v -s tests/test_import_netmiko.py + poetry run pytest -v -s tests/unit/test_base_connection.py + poetry run pytest -v -s tests/unit/test_ssh_autodetect.py + poetry run pytest -v -s tests/unit/test_connection.py + poetry run pytest -v -s tests/unit/test_entry_points.py + pytest_parsers: name: Parsers Test on Python ${{ matrix.python-version }} (${{ matrix.platform}}) defaults: diff --git a/netmiko/a10/a10_ssh.py b/netmiko/a10/a10_ssh.py index 5ca269d7a..22c08efdd 100644 --- a/netmiko/a10/a10_ssh.py +++ b/netmiko/a10/a10_ssh.py @@ -1,4 +1,5 @@ """A10 support.""" + from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/adva/__init__.py b/netmiko/adva/__init__.py index dd6368b08..971b1994e 100644 --- a/netmiko/adva/__init__.py +++ b/netmiko/adva/__init__.py @@ -1,4 +1,5 @@ """Adva Device Drivers""" + from netmiko.adva.adva_aos_fsp_150_f2 import AdvaAosFsp150F2SSH from netmiko.adva.adva_aos_fsp_150_f3 import AdvaAosFsp150F3SSH diff --git a/netmiko/adva/adva_aos_fsp_150_f2.py b/netmiko/adva/adva_aos_fsp_150_f2.py index f53a2e753..c1f9af8f4 100644 --- a/netmiko/adva/adva_aos_fsp_150_f2.py +++ b/netmiko/adva/adva_aos_fsp_150_f2.py @@ -1,4 +1,5 @@ """Adva support.""" + import re from typing import Any, Optional from netmiko.no_enable import NoEnable diff --git a/netmiko/adva/adva_aos_fsp_150_f3.py b/netmiko/adva/adva_aos_fsp_150_f3.py index 23e32ec11..6576392e3 100644 --- a/netmiko/adva/adva_aos_fsp_150_f3.py +++ b/netmiko/adva/adva_aos_fsp_150_f3.py @@ -1,4 +1,5 @@ """Adva F3 Device Support""" + import re from typing import ( Optional, diff --git a/netmiko/alcatel/alcatel_aos_ssh.py b/netmiko/alcatel/alcatel_aos_ssh.py index 6c8da7a8d..81a65441c 100644 --- a/netmiko/alcatel/alcatel_aos_ssh.py +++ b/netmiko/alcatel/alcatel_aos_ssh.py @@ -1,4 +1,5 @@ """Alcatel-Lucent Enterprise AOS support (AOS6 and AOS8).""" + from netmiko.no_enable import NoEnable from netmiko.no_config import NoConfig from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/aruba/aruba_aoscx.py b/netmiko/aruba/aruba_aoscx.py index c26978ce9..a055da045 100644 --- a/netmiko/aruba/aruba_aoscx.py +++ b/netmiko/aruba/aruba_aoscx.py @@ -4,6 +4,7 @@ For use with Aruba AOS CX devices. """ + from typing import Any from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/aruba/aruba_os.py b/netmiko/aruba/aruba_os.py index 1c3b5e718..884d313ea 100644 --- a/netmiko/aruba/aruba_os.py +++ b/netmiko/aruba/aruba_os.py @@ -4,6 +4,7 @@ For use with Aruba OS Controllers. """ + from typing import Any from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/base_connection.py b/netmiko/base_connection.py index 299763dcd..307223da9 100644 --- a/netmiko/base_connection.py +++ b/netmiko/base_connection.py @@ -6,6 +6,7 @@ Also defines methods that should generally be supported by child classes """ + from typing import ( Optional, Callable, diff --git a/netmiko/calix/calix_b6.py b/netmiko/calix/calix_b6.py index 593c5d592..a1c5bf963 100644 --- a/netmiko/calix/calix_b6.py +++ b/netmiko/calix/calix_b6.py @@ -1,4 +1,5 @@ """Calix B6 SSH Driver for Netmiko""" + from typing import Any import time from os import path diff --git a/netmiko/centec/centec_os.py b/netmiko/centec/centec_os.py index d1e1307f6..e02c214b2 100644 --- a/netmiko/centec/centec_os.py +++ b/netmiko/centec/centec_os.py @@ -1,4 +1,5 @@ """Centec OS Support""" + from netmiko.cisco_base_connection import CiscoBaseConnection diff --git a/netmiko/ciena/ciena_saos.py b/netmiko/ciena/ciena_saos.py index b74a61c64..a8d97f789 100644 --- a/netmiko/ciena/ciena_saos.py +++ b/netmiko/ciena/ciena_saos.py @@ -1,4 +1,5 @@ """Ciena SAOS support.""" + from typing import Optional, Any import re import os diff --git a/netmiko/cisco/cisco_asa_ssh.py b/netmiko/cisco/cisco_asa_ssh.py index e87c766f3..0f24ffe78 100644 --- a/netmiko/cisco/cisco_asa_ssh.py +++ b/netmiko/cisco/cisco_asa_ssh.py @@ -1,4 +1,5 @@ """Subclass specific to Cisco ASA.""" + from typing import Any, Union, List, Dict, Optional import re import time diff --git a/netmiko/cisco/cisco_ftd_ssh.py b/netmiko/cisco/cisco_ftd_ssh.py index 6cc94a0c1..7226a8d6e 100644 --- a/netmiko/cisco/cisco_ftd_ssh.py +++ b/netmiko/cisco/cisco_ftd_ssh.py @@ -1,4 +1,5 @@ """Subclass specific to Cisco FTD.""" + from typing import Any from netmiko.no_enable import NoEnable from netmiko.no_config import NoConfig diff --git a/netmiko/cisco/cisco_tp_tcce.py b/netmiko/cisco/cisco_tp_tcce.py index 5e37e5851..596020bab 100644 --- a/netmiko/cisco/cisco_tp_tcce.py +++ b/netmiko/cisco/cisco_tp_tcce.py @@ -6,6 +6,7 @@ Written by Ahmad Barrin Updated by Kirk Byers """ + from typing import Any, Union, List, Dict import time import re diff --git a/netmiko/cisco/cisco_viptela.py b/netmiko/cisco/cisco_viptela.py index 86b058976..81bff0f5b 100644 --- a/netmiko/cisco/cisco_viptela.py +++ b/netmiko/cisco/cisco_viptela.py @@ -1,4 +1,5 @@ """Subclass specific to Cisco Viptela.""" + from typing import Union, Sequence, Iterator, TextIO, Any import re diff --git a/netmiko/cisco/cisco_wlc_ssh.py b/netmiko/cisco/cisco_wlc_ssh.py index b4ece3b23..464a6dedf 100644 --- a/netmiko/cisco/cisco_wlc_ssh.py +++ b/netmiko/cisco/cisco_wlc_ssh.py @@ -1,4 +1,5 @@ """Netmiko Cisco WLC support.""" + from typing import Any, Union, Sequence, Iterator, TextIO import time import re diff --git a/netmiko/cisco_base_connection.py b/netmiko/cisco_base_connection.py index 6de5062d0..848537764 100644 --- a/netmiko/cisco_base_connection.py +++ b/netmiko/cisco_base_connection.py @@ -1,4 +1,5 @@ """CiscoBaseConnection is netmiko SSH class for Cisco and Cisco-like platforms.""" + from typing import Optional import re import time diff --git a/netmiko/dell/dell_dnos6.py b/netmiko/dell/dell_dnos6.py index e901abe8e..23fa5cd79 100644 --- a/netmiko/dell/dell_dnos6.py +++ b/netmiko/dell/dell_dnos6.py @@ -1,4 +1,5 @@ """Dell N2/3/4000 base driver- supports DNOS6.""" + from netmiko.dell.dell_powerconnect import DellPowerConnectBase diff --git a/netmiko/dell/dell_force10_ssh.py b/netmiko/dell/dell_force10_ssh.py index babc8bee1..afab5d0d9 100644 --- a/netmiko/dell/dell_force10_ssh.py +++ b/netmiko/dell/dell_force10_ssh.py @@ -1,4 +1,5 @@ """Dell Force10 Driver - supports DNOS9.""" + from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/dell/dell_os10_ssh.py b/netmiko/dell/dell_os10_ssh.py index 5ed6605ac..20658df4e 100644 --- a/netmiko/dell/dell_os10_ssh.py +++ b/netmiko/dell/dell_os10_ssh.py @@ -1,4 +1,5 @@ """Dell EMC Networking OS10 Driver - supports dellos10.""" + from typing import Any, Optional from netmiko.base_connection import BaseConnection from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/dell/dell_powerconnect.py b/netmiko/dell/dell_powerconnect.py index 8614b4c03..c689feabb 100644 --- a/netmiko/dell/dell_powerconnect.py +++ b/netmiko/dell/dell_powerconnect.py @@ -1,4 +1,5 @@ """Dell PowerConnect Driver.""" + from typing import Optional from paramiko import SSHClient import time diff --git a/netmiko/dell/dell_sonic_ssh.py b/netmiko/dell/dell_sonic_ssh.py index e3a3ad083..b22730d45 100644 --- a/netmiko/dell/dell_sonic_ssh.py +++ b/netmiko/dell/dell_sonic_ssh.py @@ -2,6 +2,7 @@ Dell EMC PowerSwitch platforms running Enterprise SONiC Distribution by Dell Technologies Driver - supports dellenterprisesonic. """ + from netmiko.no_enable import NoEnable from netmiko.cisco_base_connection import CiscoSSHConnection from netmiko import log diff --git a/netmiko/digi/digi_transport.py b/netmiko/digi/digi_transport.py index 0aa832bf8..ae970b171 100644 --- a/netmiko/digi/digi_transport.py +++ b/netmiko/digi/digi_transport.py @@ -1,4 +1,5 @@ """Digi TransPort Routers""" + from typing import Any from netmiko.no_enable import NoEnable from netmiko.no_config import NoConfig diff --git a/netmiko/enterasys/enterasys_ssh.py b/netmiko/enterasys/enterasys_ssh.py index 79c1c2f8e..2ddc3a1cf 100644 --- a/netmiko/enterasys/enterasys_ssh.py +++ b/netmiko/enterasys/enterasys_ssh.py @@ -1,4 +1,5 @@ """Enterasys support.""" + from typing import Any from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/ericsson/ericsson_ipos.py b/netmiko/ericsson/ericsson_ipos.py index f641195a7..6e747391f 100644 --- a/netmiko/ericsson/ericsson_ipos.py +++ b/netmiko/ericsson/ericsson_ipos.py @@ -1,6 +1,7 @@ """ Ericsson Ipos looks like it was RedBack equipment. """ + from typing import Optional, Any, Union, Sequence, Iterator, TextIO import re import warnings diff --git a/netmiko/ericsson/ericsson_mltn.py b/netmiko/ericsson/ericsson_mltn.py index 1b6eb8f8c..e68ab5b6b 100644 --- a/netmiko/ericsson/ericsson_mltn.py +++ b/netmiko/ericsson/ericsson_mltn.py @@ -1,4 +1,5 @@ """Ericsson MiniLink driver.""" + import time import re from os import path diff --git a/netmiko/extreme/extreme_ers_ssh.py b/netmiko/extreme/extreme_ers_ssh.py index 514295631..9fe850746 100644 --- a/netmiko/extreme/extreme_ers_ssh.py +++ b/netmiko/extreme/extreme_ers_ssh.py @@ -1,4 +1,5 @@ """Netmiko support for Extreme Ethernet Routing Switch.""" + import re from netmiko.cisco_base_connection import CiscoSSHConnection from netmiko.exceptions import NetmikoAuthenticationException diff --git a/netmiko/extreme/extreme_exos.py b/netmiko/extreme/extreme_exos.py index 064e9b726..f37d3df7b 100644 --- a/netmiko/extreme/extreme_exos.py +++ b/netmiko/extreme/extreme_exos.py @@ -1,4 +1,5 @@ """Extreme support.""" + import os from typing import Any, Callable, Optional, Union, List, Dict import re diff --git a/netmiko/extreme/extreme_nos_ssh.py b/netmiko/extreme/extreme_nos_ssh.py index bf9e8904f..4361a0202 100644 --- a/netmiko/extreme/extreme_nos_ssh.py +++ b/netmiko/extreme/extreme_nos_ssh.py @@ -1,4 +1,5 @@ """Support for Extreme NOS/VDX.""" + import time from netmiko.no_enable import NoEnable from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/extreme/extreme_slx_ssh.py b/netmiko/extreme/extreme_slx_ssh.py index 75a3f478a..6df516ef5 100644 --- a/netmiko/extreme/extreme_slx_ssh.py +++ b/netmiko/extreme/extreme_slx_ssh.py @@ -1,4 +1,5 @@ """Support for Extreme SLX.""" + import time from netmiko.no_enable import NoEnable from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/extreme/extreme_tierraos_ssh.py b/netmiko/extreme/extreme_tierraos_ssh.py index a436e8e6c..afa325945 100644 --- a/netmiko/extreme/extreme_tierraos_ssh.py +++ b/netmiko/extreme/extreme_tierraos_ssh.py @@ -1,4 +1,5 @@ """Support for Extreme TierraOS.""" + import time from netmiko.no_enable import NoEnable from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/extreme/extreme_vsp_ssh.py b/netmiko/extreme/extreme_vsp_ssh.py index 8e01a867f..654240071 100644 --- a/netmiko/extreme/extreme_vsp_ssh.py +++ b/netmiko/extreme/extreme_vsp_ssh.py @@ -1,4 +1,5 @@ """Extreme Virtual Services Platform Support.""" + from netmiko.cisco_base_connection import CiscoSSHConnection diff --git a/netmiko/fiberstore/fiberstore_fsos.py b/netmiko/fiberstore/fiberstore_fsos.py index c5d2c206b..2b3038f76 100644 --- a/netmiko/fiberstore/fiberstore_fsos.py +++ b/netmiko/fiberstore/fiberstore_fsos.py @@ -1,4 +1,5 @@ """Fiberstore FSOS Driver.""" + from typing import Optional from paramiko import SSHClient from netmiko.ssh_auth import SSHClient_noauth diff --git a/netmiko/mellanox/mellanox_mlnxos_ssh.py b/netmiko/mellanox/mellanox_mlnxos_ssh.py index b6e2fb3f1..75bb38543 100644 --- a/netmiko/mellanox/mellanox_mlnxos_ssh.py +++ b/netmiko/mellanox/mellanox_mlnxos_ssh.py @@ -1,4 +1,5 @@ """Mellanox MLNX-OS Switch support.""" + import re from typing import Optional diff --git a/netmiko/mrv/mrv_lx.py b/netmiko/mrv/mrv_lx.py index 507a0a2f9..9441032f1 100644 --- a/netmiko/mrv/mrv_lx.py +++ b/netmiko/mrv/mrv_lx.py @@ -1,4 +1,5 @@ """MRV Communications Driver (LX).""" + import time import re from typing import Optional diff --git a/netmiko/mrv/mrv_ssh.py b/netmiko/mrv/mrv_ssh.py index 7c23d8108..b05b7d0a4 100644 --- a/netmiko/mrv/mrv_ssh.py +++ b/netmiko/mrv/mrv_ssh.py @@ -1,4 +1,5 @@ """MRV Communications Driver (OptiSwitch).""" + import time import re from typing import Optional diff --git a/netmiko/netgear/netgear_prosafe_ssh.py b/netmiko/netgear/netgear_prosafe_ssh.py index 437a0648b..9fe395fcf 100644 --- a/netmiko/netgear/netgear_prosafe_ssh.py +++ b/netmiko/netgear/netgear_prosafe_ssh.py @@ -1,4 +1,5 @@ """ProSafe OS support""" + import time from typing import Any diff --git a/netmiko/oneaccess/oneaccess_oneos.py b/netmiko/oneaccess/oneaccess_oneos.py index c6acc6b6c..29f6194f5 100644 --- a/netmiko/oneaccess/oneaccess_oneos.py +++ b/netmiko/oneaccess/oneaccess_oneos.py @@ -1,4 +1,5 @@ """Netmiko driver for OneAccess ONEOS""" + from typing import Any from netmiko.cisco_base_connection import CiscoBaseConnection diff --git a/netmiko/ruijie/ruijie_os.py b/netmiko/ruijie/ruijie_os.py index f3a070da4..18c4cf958 100644 --- a/netmiko/ruijie/ruijie_os.py +++ b/netmiko/ruijie/ruijie_os.py @@ -1,4 +1,5 @@ """Ruijie RGOS Support""" + import time from typing import Any diff --git a/netmiko/scp_functions.py b/netmiko/scp_functions.py index 72aa76813..20c5737ff 100644 --- a/netmiko/scp_functions.py +++ b/netmiko/scp_functions.py @@ -5,6 +5,7 @@ SCP requires a separate SSH connection for a control channel. """ + from typing import AnyStr, Optional, Callable, Any, Dict from typing import TYPE_CHECKING from netmiko.scp_handler import BaseFileTransfer diff --git a/netmiko/scp_handler.py b/netmiko/scp_handler.py index cd85ebb14..6e8564d63 100644 --- a/netmiko/scp_handler.py +++ b/netmiko/scp_handler.py @@ -5,6 +5,7 @@ SCP requires a separate SSH connection for a control channel. """ + from typing import Callable, Optional, Any, Type from typing import TYPE_CHECKING from types import TracebackType diff --git a/netmiko/snmp_autodetect.py b/netmiko/snmp_autodetect.py index da4c8c970..bbf775c00 100644 --- a/netmiko/snmp_autodetect.py +++ b/netmiko/snmp_autodetect.py @@ -20,6 +20,7 @@ Note, pysnmp is a required dependency for SNMPDetect and is intentionally not included in netmiko requirements. So installation of pysnmp might be required. """ + from typing import Optional, Dict, List from typing.re import Pattern import re diff --git a/netmiko/sophos/sophos_sfos_ssh.py b/netmiko/sophos/sophos_sfos_ssh.py index c1295c0bd..3d44a7069 100644 --- a/netmiko/sophos/sophos_sfos_ssh.py +++ b/netmiko/sophos/sophos_sfos_ssh.py @@ -1,4 +1,5 @@ """SophosXG (SFOS) Firewall support""" + from typing import Any import time import os diff --git a/netmiko/ssh_autodetect.py b/netmiko/ssh_autodetect.py index 1722688d4..15d48c8d9 100644 --- a/netmiko/ssh_autodetect.py +++ b/netmiko/ssh_autodetect.py @@ -38,6 +38,7 @@ >>> remote_device['device_type'] = best_match >>> connection = ConnectHandler(**remote_device) """ + from typing import Any, List, Optional, Union, Dict import re import time diff --git a/netmiko/ssh_dispatcher.py b/netmiko/ssh_dispatcher.py index 796f8e8c4..bbec65b54 100755 --- a/netmiko/ssh_dispatcher.py +++ b/netmiko/ssh_dispatcher.py @@ -1,4 +1,5 @@ """Controls selection of proper class based on the device type.""" + from typing import Any, Type, Optional from typing import TYPE_CHECKING import re diff --git a/netmiko/terminal_server/terminal_server.py b/netmiko/terminal_server/terminal_server.py index b8335b045..f98e18305 100644 --- a/netmiko/terminal_server/terminal_server.py +++ b/netmiko/terminal_server/terminal_server.py @@ -1,4 +1,5 @@ """Generic Terminal Server driver.""" + from typing import Any from netmiko.base_connection import BaseConnection diff --git a/netmiko/utilities.py b/netmiko/utilities.py index d6cfecd82..2bc60cfe8 100644 --- a/netmiko/utilities.py +++ b/netmiko/utilities.py @@ -1,4 +1,5 @@ """Miscellaneous utility functions.""" + from typing import ( Any, AnyStr, diff --git a/poetry.lock b/poetry.lock index 125626126..3d5ffc9d8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -146,16 +146,6 @@ files = [ {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, ] -[[package]] -name = "atomicwrites" -version = "1.4.1" -description = "Atomic file writes." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] - [[package]] name = "attrs" version = "23.2.0" @@ -175,6 +165,21 @@ tests = ["attrs[tests-no-zope]", "zope-interface"] tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"] tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"] +[[package]] +name = "backports-tarfile" +version = "1.2.0" +description = "Backport of CPython tarfile module" +optional = false +python-versions = ">=3.8" +files = [ + {file = "backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34"}, + {file = "backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991"}, +] + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["jaraco.test", "pytest (!=8.0.*)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)"] + [[package]] name = "bcrypt" version = "4.1.3" @@ -217,125 +222,61 @@ typecheck = ["mypy"] [[package]] name = "black" -version = "22.3.0" +version = "24.4.2" description = "The uncompromising code formatter." optional = false -python-versions = ">=3.6.2" -files = [ - {file = "black-22.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09"}, - {file = "black-22.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb"}, - {file = "black-22.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a"}, - {file = "black-22.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968"}, - {file = "black-22.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"}, - {file = "black-22.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce"}, - {file = "black-22.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82"}, - {file = "black-22.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b"}, - {file = "black-22.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015"}, - {file = "black-22.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b"}, - {file = "black-22.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a"}, - {file = "black-22.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163"}, - {file = "black-22.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464"}, - {file = "black-22.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0"}, - {file = "black-22.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176"}, - {file = "black-22.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0"}, - {file = "black-22.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20"}, - {file = "black-22.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a"}, - {file = "black-22.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad"}, - {file = "black-22.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21"}, - {file = "black-22.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265"}, - {file = "black-22.3.0-py3-none-any.whl", hash = "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72"}, - {file = "black-22.3.0.tar.gz", hash = "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79"}, +python-versions = ">=3.8" +files = [ + {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"}, + {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"}, + {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"}, + {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"}, + {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"}, + {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"}, + {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"}, + {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"}, + {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"}, + {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"}, + {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"}, + {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"}, + {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"}, + {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"}, + {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"}, + {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"}, + {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"}, + {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"}, + {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"}, + {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"}, + {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"}, + {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"}, ] [package.dependencies] click = ">=8.0.0" mypy-extensions = ">=0.4.3" +packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2024.6.2" +version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, - {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, ] -[[package]] -name = "cffi" -version = "1.16.0" -description = "Foreign Function Interface for Python calling C code." -optional = false -python-versions = ">=3.8" -files = [ - {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, - {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, - {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, - {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, - {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, - {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, - {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, - {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, - {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, - {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, - {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, - {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, - {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, - {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, - {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, - {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, - {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, - {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, - {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, - {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, - {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, - {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, - {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, - {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, - {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, - {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, -] - -[package.dependencies] -pycparser = "*" - [[package]] name = "cffi" version = "1.17.0rc1" @@ -666,6 +607,20 @@ files = [ {file = "docutils-0.21.2.tar.gz", hash = "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f"}, ] +[[package]] +name = "exceptiongroup" +version = "1.2.1" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.1-py3-none-any.whl", hash = "sha256:5258b9ed329c5bbdd31a309f53cbfb0b155341807f6ff7606a1e801a891b29ad"}, + {file = "exceptiongroup-1.2.1.tar.gz", hash = "sha256:a4785e48b045528f5bfe627b6ad554ff32def154f42372786903b7abcfe1aa16"}, +] + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "f5-icontrol-rest" version = "1.3.13" @@ -778,37 +733,38 @@ files = [ [[package]] name = "genie" -version = "24.5" +version = "24.6" description = "Genie: THE standard pyATS Library System" optional = false python-versions = ">=3.8" files = [ - {file = "genie-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:6a1fb51e38f947dfde0c63fa4d17f7cc927b23a679d8e06a79723f654149a7c5"}, - {file = "genie-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:1d96c30cfa7c689f81cd8902a4be607ddcbbace2d14922595fd5c2d4d0dce65f"}, - {file = "genie-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:711c545c2f7b134a53d8640277a61305c0472726f273d8eef2a0eb0e90b01795"}, - {file = "genie-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b424981bbd4c3dca4ca2040b67644001f3e19f5a6955127a9183c0b32eb2ee58"}, - {file = "genie-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:09f7418775b7585b26a9a7bd5a51c4c94c042ff3bd4d5017d2bda8ff866a40b4"}, - {file = "genie-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:a4261f1834ad21cf1c66ecbed65767f0421c78c9a3045331e34a503b139e377f"}, - {file = "genie-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:0478657ad1c80e61dbf807cadf8cb4e6cca27c6e63ad7171924d14232d65f44d"}, - {file = "genie-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:c2d2c133aeb00fa92de5fe9a4e40fc207c1aad4d113fcae7114a7eda489d3c41"}, - {file = "genie-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:40753081452bef5b2fbb1a00eecac2bc0639e839575133cef7837593fc6cebff"}, - {file = "genie-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:a81d1af37fde811fbd85c49cb074f08ed5dd428d1870d64e2c4643a1c13565bd"}, - {file = "genie-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:c914c8aa64ec62dcac63c66fdc40b0cf2e2f19c653966ea9a69ef138912f2511"}, - {file = "genie-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:899f0d0f86970b3c1066956fc6339a0ed3aff1e3e8905d6c51039643e8eb8750"}, - {file = "genie-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f4e93903e2ffe18c64e2d400c4bc83064a2b2075bf37b88c0ba458a7280635ef"}, - {file = "genie-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:9729844ce4a3555a261a2184e7325c725d23b677ca6ba9878f5220193384596a"}, - {file = "genie-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0a9bda3314447da8026f9723f6636b1496654448d44ac61bacb56445424b1e5e"}, + {file = "genie-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:a616d06b98b219e6770f628a2bca7a366722010544360c44402042a2989bd470"}, + {file = "genie-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:2041d9f1b5a8567c645cf138c771ff3a33b2620956e1c8e0c12c749508ab6db6"}, + {file = "genie-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:308343bdf3e9aa7025bf4adaeb15d35eaae48e95bec42d89443ac0f30d714917"}, + {file = "genie-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:3ee2f1434f9f0066cca876a89e2adde61d2aeba2a9eecc62b79cb1b8c5770d1f"}, + {file = "genie-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:939d8aafc36ebec96dfa00ffe35f2810c3e43dbd19e2197abe625dfc6cf8fa2c"}, + {file = "genie-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:ca3260c2bba48092320c4db055297cb04a255a37873f1e14a002aede708cc02f"}, + {file = "genie-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:fc1a75ec57c1dfc2ca22f91105457048082468dd68d9718ed8ddf75bab51af31"}, + {file = "genie-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:f06f431fb970aa47d85eb3bf2ed5f097f40a1a884ada6e613999d39cec71efef"}, + {file = "genie-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:e11ca159952850c565f952b42b7fad0ae4506363e12aa3c68ff06780c72f2764"}, + {file = "genie-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:73cf8757e7b3f636fce66eb140d703478ae844e8c237a516beb3acebdf8df30d"}, + {file = "genie-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:6ea4768958e1392c0c8e19fa6821f6ecaf387fc94eeb54604e313702734b1ba6"}, + {file = "genie-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:d81651049a4c6e85d711c7de390c76d59bbf5462af94b3c64189d34b80b41c4a"}, + {file = "genie-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:7d44adaf698fae044db46827106b85214fd9ba53ba5479140ac05a2e4406b3aa"}, + {file = "genie-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:37baefd1703d2740055353c13f73250b4a05f184117bee603753cfe774961d37"}, + {file = "genie-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:9b97ca35ba2bf9edec82969f3a2d87070934046543d01147104f74114004a4ae"}, + {file = "genie-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:953b43f90349ea64f4292b02a5f765f7bcc21190dbcf6bacf9053e14c144f674"}, ] [package.dependencies] dill = "*" -"genie.libs.clean" = ">=24.5.0,<24.6.0" -"genie.libs.conf" = ">=24.5.0,<24.6.0" -"genie.libs.filetransferutils" = ">=24.5.0,<24.6.0" -"genie.libs.health" = ">=24.5.0,<24.6.0" -"genie.libs.ops" = ">=24.5.0,<24.6.0" -"genie.libs.parser" = ">=24.5.0,<24.6.0" -"genie.libs.sdk" = ">=24.5.0,<24.6.0" +"genie.libs.clean" = ">=24.6.0,<24.7.0" +"genie.libs.conf" = ">=24.6.0,<24.7.0" +"genie.libs.filetransferutils" = ">=24.6.0,<24.7.0" +"genie.libs.health" = ">=24.6.0,<24.7.0" +"genie.libs.ops" = ">=24.6.0,<24.7.0" +"genie.libs.parser" = ">=24.6.0,<24.7.0" +"genie.libs.sdk" = ">=24.6.0,<24.7.0" jsonpickle = "*" netaddr = "<1.0.0" PrettyTable = "*" @@ -816,17 +772,17 @@ tqdm = "*" [package.extras] dev = ["Sphinx", "coverage", "restview", "sphinx-rtd-theme"] -full = ["genie.libs.clean", "genie.libs.conf", "genie.libs.filetransferutils", "genie.libs.health", "genie.libs.ops", "genie.libs.parser", "genie.libs.robot (>=24.5.0,<24.6.0)", "genie.libs.sdk", "genie.telemetry (>=24.5.0,<24.6.0)", "genie.trafficgen (>=24.5.0,<24.6.0)", "pyats.robot (>=24.5.0,<24.6.0)"] -robot = ["genie.libs.robot (>=24.5.0,<24.6.0)", "pyats.robot (>=24.5.0,<24.6.0)"] +full = ["genie.libs.clean", "genie.libs.conf", "genie.libs.filetransferutils", "genie.libs.health", "genie.libs.ops", "genie.libs.parser", "genie.libs.robot (>=24.6.0,<24.7.0)", "genie.libs.sdk", "genie.telemetry (>=24.6.0,<24.7.0)", "genie.trafficgen (>=24.6.0,<24.7.0)", "pyats.robot (>=24.6.0,<24.7.0)"] +robot = ["genie.libs.robot (>=24.6.0,<24.7.0)", "pyats.robot (>=24.6.0,<24.7.0)"] [[package]] name = "genie-libs-clean" -version = "24.5" +version = "24.6" description = "Genie Library for device clean support" optional = false python-versions = "*" files = [ - {file = "genie.libs.clean-24.5-py3-none-any.whl", hash = "sha256:d051ff93d3e2f5fc3d28ff6434850cb0820b833c7ae30b5d7ea1ad4c6f7aec5d"}, + {file = "genie.libs.clean-24.6-py3-none-any.whl", hash = "sha256:5e751c6be5424a38b5623cf18650faefb271707679a41984853aaa4563780bf4"}, ] [package.dependencies] @@ -839,12 +795,12 @@ dev = ["Sphinx", "coverage", "paramiko", "restview", "sphinx-rtd-theme", "sphinx [[package]] name = "genie-libs-conf" -version = "24.5" +version = "24.6" description = "Genie libs Conf: Libraries to configures topology through Python object attributes" optional = false python-versions = "*" files = [ - {file = "genie.libs.conf-24.5-py3-none-any.whl", hash = "sha256:71fb185cd1b7ecde460798d0af94b82e3bf65b91a3b2c45fe58778c9648c656c"}, + {file = "genie.libs.conf-24.6-py3-none-any.whl", hash = "sha256:edb1ff99ff6242b0f5141ba2061dbb0038102187e4552340ec86d9851b74cdaa"}, ] [package.extras] @@ -852,12 +808,12 @@ dev = ["Sphinx", "coverage", "restview", "sphinx-rtd-theme"] [[package]] name = "genie-libs-filetransferutils" -version = "24.5" +version = "24.6" description = "Genie libs FileTransferUtils: Genie FileTransferUtils Libraries" optional = false python-versions = "*" files = [ - {file = "genie.libs.filetransferutils-24.5-py3-none-any.whl", hash = "sha256:ae75d25a0e9bd60d847fc0fe38c2d900c74cabb969a5fe72e38e9fe08be982ec"}, + {file = "genie.libs.filetransferutils-24.6-py3-none-any.whl", hash = "sha256:6348bda9def5a3df55226b8e1a2809ce1f909aaf0fb320280db159e1e0ec7c2f"}, ] [package.dependencies] @@ -870,12 +826,12 @@ dev = ["Sphinx", "coverage", "restview", "sphinx-rtd-theme"] [[package]] name = "genie-libs-health" -version = "24.5" +version = "24.6" description = "pyATS Health Check for monitoring device health status" optional = false python-versions = "*" files = [ - {file = "genie.libs.health-24.5-py3-none-any.whl", hash = "sha256:05c3dcbe127be3326e3da1797bcd1df90c929ff3acaa57a661ac015c8c63ffc2"}, + {file = "genie.libs.health-24.6-py3-none-any.whl", hash = "sha256:48f6e68e559e8dcedc52ef4cb59f8ab53aae0714ae0ef115cad81c40fe4c52f0"}, ] [package.dependencies] @@ -888,12 +844,12 @@ dev = ["Sphinx", "coverage", "paramiko", "restview", "sphinx-rtd-theme", "sphinx [[package]] name = "genie-libs-ops" -version = "24.5" +version = "24.6" description = "Genie libs Ops: Libraries to retrieve operational state of the topology" optional = false python-versions = "*" files = [ - {file = "genie.libs.ops-24.5-py3-none-any.whl", hash = "sha256:a86d2fe28173e95b82e6a19847592f2d581109eff5b47efa0417689dfa9029e1"}, + {file = "genie.libs.ops-24.6-py3-none-any.whl", hash = "sha256:860fbffd9864dd464ba0b56406e50e959e5cfc890a2d9b52552a8b6bbd8c0d99"}, ] [package.extras] @@ -901,12 +857,12 @@ dev = ["Sphinx", "coverage", "restview", "sphinx-rtd-theme"] [[package]] name = "genie-libs-parser" -version = "24.5" +version = "24.6" description = "Genie libs Parser: Genie Parser Libraries" optional = false python-versions = "*" files = [ - {file = "genie.libs.parser-24.5-py3-none-any.whl", hash = "sha256:71685e1acbe92aba8e952fce3841dbe0bb8ab03aab89d29f293d6f5d71a79b20"}, + {file = "genie.libs.parser-24.6-py3-none-any.whl", hash = "sha256:9306b3b5c483b87b0406e96e394480d79edc2c6ea4acdff877bd18f6bdea8db9"}, ] [package.dependencies] @@ -917,20 +873,20 @@ dev = ["Sphinx", "coverage", "restview", "sphinx-rtd-theme"] [[package]] name = "genie-libs-sdk" -version = "24.5" +version = "24.6" description = "Genie libs sdk: Libraries containing all Triggers and Verifications" optional = false python-versions = "*" files = [ - {file = "genie.libs.sdk-24.5-py3-none-any.whl", hash = "sha256:c64401b5316de5ea9aeb1ca2f22ccf42ecb746d4bab69b4f6ff470f385dc9c89"}, + {file = "genie.libs.sdk-24.6-py3-none-any.whl", hash = "sha256:b25089fdb9321805a7cb6821f2e5cb189df75b33f560e69a9af8c43412eedc1d"}, ] [package.dependencies] pyasn1 = "0.4.8" pysnmp-lextudio = "5.0.29" -"rest.connector" = ">=24.5.0,<24.6.0" +"rest.connector" = ">=24.6.0,<24.7.0" "ruamel.yaml" = "*" -"yang.connector" = ">=24.5.0,<24.6.0" +"yang.connector" = ">=24.6.0,<24.7.0" [package.extras] dev = ["Sphinx", "coverage", "grpcio", "rest.connector", "restview", "sphinx-rtd-theme", "sphinxcontrib-napoleon", "xmltodict", "yang.connector"] @@ -1055,6 +1011,24 @@ doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linke perf = ["ipython"] test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] +[[package]] +name = "importlib-resources" +version = "6.4.0" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.4.0-py3-none-any.whl", hash = "sha256:50d10f043df931902d4194ea07ec57960f66a80449ff867bfe782b4c486ba78c"}, + {file = "importlib_resources-6.4.0.tar.gz", hash = "sha256:cdb2b453b8046ca4e3798eb1d84f3cce1446a0e8e7b5ef4efb600f19fc398145"}, +] + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["jaraco.test (>=5.4)", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)", "zipp (>=3.17)"] + [[package]] name = "iniconfig" version = "2.0.0" @@ -1066,6 +1040,75 @@ files = [ {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] +[[package]] +name = "jaraco-classes" +version = "3.4.0" +description = "Utility functions for Python class constructs" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790"}, + {file = "jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd"}, +] + +[package.dependencies] +more-itertools = "*" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + +[[package]] +name = "jaraco-context" +version = "5.3.0" +description = "Useful decorators and context managers" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jaraco.context-5.3.0-py3-none-any.whl", hash = "sha256:3e16388f7da43d384a1a7cd3452e72e14732ac9fe459678773a3608a812bf266"}, + {file = "jaraco.context-5.3.0.tar.gz", hash = "sha256:c2f67165ce1f9be20f32f650f25d8edfc1646a8aeee48ae06fb35f90763576d2"}, +] + +[package.dependencies] +"backports.tarfile" = {version = "*", markers = "python_version < \"3.12\""} + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["portend", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + +[[package]] +name = "jaraco-functools" +version = "4.0.1" +description = "Functools like those found in stdlib" +optional = false +python-versions = ">=3.8" +files = [ + {file = "jaraco.functools-4.0.1-py3-none-any.whl", hash = "sha256:3b24ccb921d6b593bdceb56ce14799204f473976e2a9d4b15b04d0f2c2326664"}, + {file = "jaraco_functools-4.0.1.tar.gz", hash = "sha256:d33fa765374c0611b52f8b3a795f8900869aa88c84769d4d1746cd68fb28c3e8"}, +] + +[package.dependencies] +more-itertools = "*" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["jaraco.classes", "pytest (>=6)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + +[[package]] +name = "jeepney" +version = "0.8.0" +description = "Low-level, pure Python DBus protocol wrapper." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jeepney-0.8.0-py3-none-any.whl", hash = "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"}, + {file = "jeepney-0.8.0.tar.gz", hash = "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806"}, +] + +[package.extras] +test = ["async-timeout", "pytest", "pytest-asyncio (>=0.17)", "pytest-trio", "testpath", "trio"] +trio = ["async_generator", "trio"] + [[package]] name = "jinja2" version = "3.1.4" @@ -1113,6 +1156,32 @@ files = [ [package.dependencies] six = "*" +[[package]] +name = "keyring" +version = "25.2.1" +description = "Store and access your passwords safely." +optional = false +python-versions = ">=3.8" +files = [ + {file = "keyring-25.2.1-py3-none-any.whl", hash = "sha256:2458681cdefc0dbc0b7eb6cf75d0b98e59f9ad9b2d4edd319d18f68bdca95e50"}, + {file = "keyring-25.2.1.tar.gz", hash = "sha256:daaffd42dbda25ddafb1ad5fec4024e5bbcfe424597ca1ca452b299861e49f1b"}, +] + +[package.dependencies] +importlib-metadata = {version = ">=4.11.4", markers = "python_version < \"3.12\""} +importlib-resources = {version = "*", markers = "python_version < \"3.9\""} +"jaraco.classes" = "*" +"jaraco.context" = "*" +"jaraco.functools" = "*" +jeepney = {version = ">=0.4.2", markers = "sys_platform == \"linux\""} +pywin32-ctypes = {version = ">=0.2.0", markers = "sys_platform == \"win32\""} +SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""} + +[package.extras] +completion = ["shtab (>=1.1.0)"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + [[package]] name = "lxml" version = "4.9.4" @@ -1258,6 +1327,30 @@ importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] testing = ["coverage", "pyyaml"] +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + [[package]] name = "markupsafe" version = "2.1.5" @@ -1338,6 +1431,28 @@ files = [ {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "more-itertools" +version = "10.3.0" +description = "More routines for operating on iterables, beyond itertools" +optional = false +python-versions = ">=3.8" +files = [ + {file = "more-itertools-10.3.0.tar.gz", hash = "sha256:e5d93ef411224fbcef366a6e8ddc4c5781bc6359d43412a65dd5964e46111463"}, + {file = "more_itertools-10.3.0-py3-none-any.whl", hash = "sha256:ea6a02e24a9161e51faad17a8782b92a0df82c12c1c8886fec7f0c3fa1a1b320"}, +] + [[package]] name = "multidict" version = "6.0.5" @@ -1439,48 +1554,49 @@ files = [ [[package]] name = "mypy" -version = "1.0.0" +version = "1.10.1" description = "Optional static typing for Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "mypy-1.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e0626db16705ab9f7fa6c249c017c887baf20738ce7f9129da162bb3075fc1af"}, - {file = "mypy-1.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1ace23f6bb4aec4604b86c4843276e8fa548d667dbbd0cb83a3ae14b18b2db6c"}, - {file = "mypy-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87edfaf344c9401942883fad030909116aa77b0fa7e6e8e1c5407e14549afe9a"}, - {file = "mypy-1.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0ab090d9240d6b4e99e1fa998c2d0aa5b29fc0fb06bd30e7ad6183c95fa07593"}, - {file = "mypy-1.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:7cc2c01dfc5a3cbddfa6c13f530ef3b95292f926329929001d45e124342cd6b7"}, - {file = "mypy-1.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:14d776869a3e6c89c17eb943100f7868f677703c8a4e00b3803918f86aafbc52"}, - {file = "mypy-1.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bb2782a036d9eb6b5a6efcdda0986774bf798beef86a62da86cb73e2a10b423d"}, - {file = "mypy-1.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cfca124f0ac6707747544c127880893ad72a656e136adc935c8600740b21ff5"}, - {file = "mypy-1.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:8845125d0b7c57838a10fd8925b0f5f709d0e08568ce587cc862aacce453e3dd"}, - {file = "mypy-1.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b1b9e1ed40544ef486fa8ac022232ccc57109f379611633ede8e71630d07d2"}, - {file = "mypy-1.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c7cf862aef988b5fbaa17764ad1d21b4831436701c7d2b653156a9497d92c83c"}, - {file = "mypy-1.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd187d92b6939617f1168a4fe68f68add749902c010e66fe574c165c742ed88"}, - {file = "mypy-1.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4e5175026618c178dfba6188228b845b64131034ab3ba52acaffa8f6c361f805"}, - {file = "mypy-1.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2f6ac8c87e046dc18c7d1d7f6653a66787a4555085b056fe2d599f1f1a2a2d21"}, - {file = "mypy-1.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7306edca1c6f1b5fa0bc9aa645e6ac8393014fa82d0fa180d0ebc990ebe15964"}, - {file = "mypy-1.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3cfad08f16a9c6611e6143485a93de0e1e13f48cfb90bcad7d5fde1c0cec3d36"}, - {file = "mypy-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67cced7f15654710386e5c10b96608f1ee3d5c94ca1da5a2aad5889793a824c1"}, - {file = "mypy-1.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a86b794e8a56ada65c573183756eac8ac5b8d3d59daf9d5ebd72ecdbb7867a43"}, - {file = "mypy-1.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:50979d5efff8d4135d9db293c6cb2c42260e70fb010cbc697b1311a4d7a39ddb"}, - {file = "mypy-1.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3ae4c7a99e5153496243146a3baf33b9beff714464ca386b5f62daad601d87af"}, - {file = "mypy-1.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e398652d005a198a7f3c132426b33c6b85d98aa7dc852137a2a3be8890c4072"}, - {file = "mypy-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be78077064d016bc1b639c2cbcc5be945b47b4261a4f4b7d8923f6c69c5c9457"}, - {file = "mypy-1.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92024447a339400ea00ac228369cd242e988dd775640755fa4ac0c126e49bb74"}, - {file = "mypy-1.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:fe523fcbd52c05040c7bee370d66fee8373c5972171e4fbc323153433198592d"}, - {file = "mypy-1.0.0-py3-none-any.whl", hash = "sha256:2efa963bdddb27cb4a0d42545cd137a8d2b883bd181bbc4525b568ef6eca258f"}, - {file = "mypy-1.0.0.tar.gz", hash = "sha256:f34495079c8d9da05b183f9f7daec2878280c2ad7cc81da686ef0b484cea2ecf"}, -] - -[package.dependencies] -mypy-extensions = ">=0.4.3" + {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"}, + {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"}, + {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"}, + {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"}, + {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"}, + {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"}, + {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"}, + {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"}, + {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"}, + {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"}, + {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"}, + {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"}, + {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"}, + {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"}, + {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"}, + {file = "mypy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:604282c886497645ffb87b8f35a57ec773a4a2721161e709a4422c1636ddde5c"}, + {file = "mypy-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37fd87cab83f09842653f08de066ee68f1182b9b5282e4634cdb4b407266bade"}, + {file = "mypy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8addf6313777dbb92e9564c5d32ec122bf2c6c39d683ea64de6a1fd98b90fe37"}, + {file = "mypy-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cc3ca0a244eb9a5249c7c583ad9a7e881aa5d7b73c35652296ddcdb33b2b9c7"}, + {file = "mypy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b3a2ffce52cc4dbaeee4df762f20a2905aa171ef157b82192f2e2f368eec05d"}, + {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"}, + {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"}, + {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"}, + {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"}, + {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"}, + {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"}, + {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=3.10" +typing-extensions = ">=4.1.0" [package.extras] dmypy = ["psutil (>=4.0)"] install-types = ["pip"] -python2 = ["typed-ast (>=1.4.0,<2)"] +mypyc = ["setuptools (>=50)"] reports = ["lxml"] [[package]] @@ -1523,27 +1639,27 @@ files = [ [[package]] name = "nh3" -version = "0.2.17" +version = "0.2.18" description = "Python bindings to the ammonia HTML sanitization library." optional = false python-versions = "*" files = [ - {file = "nh3-0.2.17-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:551672fd71d06cd828e282abdb810d1be24e1abb7ae2543a8fa36a71c1006fe9"}, - {file = "nh3-0.2.17-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c551eb2a3876e8ff2ac63dff1585236ed5dfec5ffd82216a7a174f7c5082a78a"}, - {file = "nh3-0.2.17-cp37-abi3-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:66f17d78826096291bd264f260213d2b3905e3c7fae6dfc5337d49429f1dc9f3"}, - {file = "nh3-0.2.17-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0316c25b76289cf23be6b66c77d3608a4fdf537b35426280032f432f14291b9a"}, - {file = "nh3-0.2.17-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:22c26e20acbb253a5bdd33d432a326d18508a910e4dcf9a3316179860d53345a"}, - {file = "nh3-0.2.17-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:85cdbcca8ef10733bd31f931956f7fbb85145a4d11ab9e6742bbf44d88b7e351"}, - {file = "nh3-0.2.17-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:40015514022af31975c0b3bca4014634fa13cb5dc4dbcbc00570acc781316dcc"}, - {file = "nh3-0.2.17-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ba73a2f8d3a1b966e9cdba7b211779ad8a2561d2dba9674b8a19ed817923f65f"}, - {file = "nh3-0.2.17-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c21bac1a7245cbd88c0b0e4a420221b7bfa838a2814ee5bb924e9c2f10a1120b"}, - {file = "nh3-0.2.17-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d7a25fd8c86657f5d9d576268e3b3767c5cd4f42867c9383618be8517f0f022a"}, - {file = "nh3-0.2.17-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:c790769152308421283679a142dbdb3d1c46c79c823008ecea8e8141db1a2062"}, - {file = "nh3-0.2.17-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:b4427ef0d2dfdec10b641ed0bdaf17957eb625b2ec0ea9329b3d28806c153d71"}, - {file = "nh3-0.2.17-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a3f55fabe29164ba6026b5ad5c3151c314d136fd67415a17660b4aaddacf1b10"}, - {file = "nh3-0.2.17-cp37-abi3-win32.whl", hash = "sha256:1a814dd7bba1cb0aba5bcb9bebcc88fd801b63e21e2450ae6c52d3b3336bc911"}, - {file = "nh3-0.2.17-cp37-abi3-win_amd64.whl", hash = "sha256:1aa52a7def528297f256de0844e8dd680ee279e79583c76d6fa73a978186ddfb"}, - {file = "nh3-0.2.17.tar.gz", hash = "sha256:40d0741a19c3d645e54efba71cb0d8c475b59135c1e3c580f879ad5514cbf028"}, + {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:14c5a72e9fe82aea5fe3072116ad4661af5cf8e8ff8fc5ad3450f123e4925e86"}, + {file = "nh3-0.2.18-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:7b7c2a3c9eb1a827d42539aa64091640bd275b81e097cd1d8d82ef91ffa2e811"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42c64511469005058cd17cc1537578eac40ae9f7200bedcfd1fc1a05f4f8c200"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0411beb0589eacb6734f28d5497ca2ed379eafab8ad8c84b31bb5c34072b7164"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5f36b271dae35c465ef5e9090e1fdaba4a60a56f0bb0ba03e0932a66f28b9189"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34c03fa78e328c691f982b7c03d4423bdfd7da69cd707fe572f544cf74ac23ad"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19aaba96e0f795bd0a6c56291495ff59364f4300d4a39b29a0abc9cb3774a84b"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ceed6e661954871d6cd78b410213bdcb136f79aafe22aa7182e028b8c7307"}, + {file = "nh3-0.2.18-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6955369e4d9f48f41e3f238a9e60f9410645db7e07435e62c6a9ea6135a4907f"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f0eca9ca8628dbb4e916ae2491d72957fdd35f7a5d326b7032a345f111ac07fe"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:3a157ab149e591bb638a55c8c6bcb8cdb559c8b12c13a8affaba6cedfe51713a"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:c8b3a1cebcba9b3669ed1a84cc65bf005728d2f0bc1ed2a6594a992e817f3a50"}, + {file = "nh3-0.2.18-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36c95d4b70530b320b365659bb5034341316e6a9b30f0b25fa9c9eff4c27a204"}, + {file = "nh3-0.2.18-cp37-abi3-win32.whl", hash = "sha256:a7f1b5b2c15866f2db413a3649a8fe4fd7b428ae58be2c0f6bca5eefd53ca2be"}, + {file = "nh3-0.2.18-cp37-abi3-win_amd64.whl", hash = "sha256:8ce0f819d2f1933953fca255db2471ad58184a60508f03e6285e5114b6254844"}, + {file = "nh3-0.2.18.tar.gz", hash = "sha256:94a166927e53972a9698af9542ace4e38b9de50c34352b962f4d9a7d4c927af4"}, ] [[package]] @@ -1620,13 +1736,13 @@ markdown = ">=3.0" [[package]] name = "pkginfo" -version = "1.11.1" +version = "1.10.0" description = "Query metadata from sdists / bdists / installed packages." optional = false -python-versions = ">=3.8" +python-versions = ">=3.6" files = [ - {file = "pkginfo-1.11.1-py3-none-any.whl", hash = "sha256:bfa76a714fdfc18a045fcd684dbfc3816b603d9d075febef17cb6582bea29573"}, - {file = "pkginfo-1.11.1.tar.gz", hash = "sha256:2e0dca1cf4c8e39644eed32408ea9966ee15e0d324c62ba899a393b3c6b467aa"}, + {file = "pkginfo-1.10.0-py3-none-any.whl", hash = "sha256:889a6da2ed7ffc58ab5b900d888ddce90bce912f2d2de1dc1c26f4cb9fe65097"}, + {file = "pkginfo-1.10.0.tar.gz", hash = "sha256:5df73835398d10db79f8eecd5cd86b1f6d29317589ea70796994d49399af6297"}, ] [package.extras] @@ -1693,22 +1809,22 @@ tests = ["pytest", "pytest-cov", "pytest-lazy-fixtures"] [[package]] name = "protobuf" -version = "5.27.1" +version = "5.27.2" description = "" optional = false python-versions = ">=3.8" files = [ - {file = "protobuf-5.27.1-cp310-abi3-win32.whl", hash = "sha256:3adc15ec0ff35c5b2d0992f9345b04a540c1e73bfee3ff1643db43cc1d734333"}, - {file = "protobuf-5.27.1-cp310-abi3-win_amd64.whl", hash = "sha256:25236b69ab4ce1bec413fd4b68a15ef8141794427e0b4dc173e9d5d9dffc3bcd"}, - {file = "protobuf-5.27.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4e38fc29d7df32e01a41cf118b5a968b1efd46b9c41ff515234e794011c78b17"}, - {file = "protobuf-5.27.1-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:917ed03c3eb8a2d51c3496359f5b53b4e4b7e40edfbdd3d3f34336e0eef6825a"}, - {file = "protobuf-5.27.1-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:ee52874a9e69a30271649be88ecbe69d374232e8fd0b4e4b0aaaa87f429f1631"}, - {file = "protobuf-5.27.1-cp38-cp38-win32.whl", hash = "sha256:7a97b9c5aed86b9ca289eb5148df6c208ab5bb6906930590961e08f097258107"}, - {file = "protobuf-5.27.1-cp38-cp38-win_amd64.whl", hash = "sha256:f6abd0f69968792da7460d3c2cfa7d94fd74e1c21df321eb6345b963f9ec3d8d"}, - {file = "protobuf-5.27.1-cp39-cp39-win32.whl", hash = "sha256:dfddb7537f789002cc4eb00752c92e67885badcc7005566f2c5de9d969d3282d"}, - {file = "protobuf-5.27.1-cp39-cp39-win_amd64.whl", hash = "sha256:39309898b912ca6febb0084ea912e976482834f401be35840a008da12d189340"}, - {file = "protobuf-5.27.1-py3-none-any.whl", hash = "sha256:4ac7249a1530a2ed50e24201d6630125ced04b30619262f06224616e0030b6cf"}, - {file = "protobuf-5.27.1.tar.gz", hash = "sha256:df5e5b8e39b7d1c25b186ffdf9f44f40f810bbcc9d2b71d9d3156fee5a9adf15"}, + {file = "protobuf-5.27.2-cp310-abi3-win32.whl", hash = "sha256:354d84fac2b0d76062e9b3221f4abbbacdfd2a4d8af36bab0474f3a0bb30ab38"}, + {file = "protobuf-5.27.2-cp310-abi3-win_amd64.whl", hash = "sha256:0e341109c609749d501986b835f667c6e1e24531096cff9d34ae411595e26505"}, + {file = "protobuf-5.27.2-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:a109916aaac42bff84702fb5187f3edadbc7c97fc2c99c5ff81dd15dcce0d1e5"}, + {file = "protobuf-5.27.2-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:176c12b1f1c880bf7a76d9f7c75822b6a2bc3db2d28baa4d300e8ce4cde7409b"}, + {file = "protobuf-5.27.2-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:b848dbe1d57ed7c191dfc4ea64b8b004a3f9ece4bf4d0d80a367b76df20bf36e"}, + {file = "protobuf-5.27.2-cp38-cp38-win32.whl", hash = "sha256:4fadd8d83e1992eed0248bc50a4a6361dc31bcccc84388c54c86e530b7f58863"}, + {file = "protobuf-5.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:610e700f02469c4a997e58e328cac6f305f649826853813177e6290416e846c6"}, + {file = "protobuf-5.27.2-cp39-cp39-win32.whl", hash = "sha256:9e8f199bf7f97bd7ecebffcae45ebf9527603549b2b562df0fbc6d4d688f14ca"}, + {file = "protobuf-5.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:7fc3add9e6003e026da5fc9e59b131b8f22b428b991ccd53e2af8071687b4fce"}, + {file = "protobuf-5.27.2-py3-none-any.whl", hash = "sha256:54330f07e4949d09614707c48b06d1a22f8ffb5763c159efd5c0928326a91470"}, + {file = "protobuf-5.27.2.tar.gz", hash = "sha256:f3ecdef226b9af856075f28227ff2c90ce3a594d092c39bee5513573f25e2714"}, ] [[package]] @@ -1740,17 +1856,6 @@ files = [ [package.extras] test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] - [[package]] name = "pyasn1" version = "0.4.8" @@ -1764,116 +1869,119 @@ files = [ [[package]] name = "pyats" -version = "24.5" +version = "24.6" description = "pyATS - Python Automation Test System" optional = false python-versions = ">=3.8" files = [ - {file = "pyats-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:671b8f8b6ebdc9744f2baa2a549247520e918d8376c0005835b67d3e7badaa24"}, - {file = "pyats-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:cab7f8c61a730d5dfacfd6963f7af67849a52e4d63c9dbef4d7019e99eb34407"}, - {file = "pyats-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:789f8a309d494bb4b8ac4ef8a0141dc9fc762827d3130ed7335aa1140d266092"}, - {file = "pyats-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:43ddfe0874580d463da050146dc56ff55a35f03fcf889afa3fa7bca24f5c85a3"}, - {file = "pyats-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:452f4e615907539cbec1f506ccdc2ab351a308d7b590295c14a51cf771329182"}, - {file = "pyats-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:d41969f1f22eff17736c684440272c3c05415aab363ecca8744f7fb17b960922"}, - {file = "pyats-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:80f2ae60ade858a3bb5957a9d2d647ff0be5a2f18641a243a95eaa6300837ff6"}, - {file = "pyats-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:d2e0c9cfa451450ccd9b0ca4103f38fc354dbf55aa9d7e77816e775232a2ac8f"}, - {file = "pyats-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:adda488fa86d5067585833aad7fa2f86bdaf76da522586e36875818180f34a46"}, - {file = "pyats-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:369c5d43d862f75db5b10d803fd29c8c19b13f9e23bbb491b3fd4baa81ba1085"}, - {file = "pyats-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:6441e08015935c79f1face32c72ba807ab5cfeb2fdf1e44849620921dc3f2434"}, - {file = "pyats-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:e748719a47f4827295021ee41c470595ea46bf5e57702a1a56e9e3a849aa5be8"}, - {file = "pyats-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5835702e960f66e8916450d07173223ae2f0929f0167c6f61fbdaef909319983"}, - {file = "pyats-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:f85d8c03f707b5d2206ef32676b1793c8b0300129b5bb7510205a582b212a5d4"}, - {file = "pyats-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:dd4f437a87949521f3d1d5b9a5683c3dab466dbd1ca7b38bdd749758244f3fb4"}, + {file = "pyats-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8e54063424222a94ed818bf7a242c400f1ee30275242563bd39d8713272f7bfa"}, + {file = "pyats-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:38bad4917b0fa0df0d35c54a6f38594f4f8c83f421019de8f572572b9a903488"}, + {file = "pyats-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e9bfcecc3123ec2a7fcfeaa3d60841a73de5692f7ea6177664e947c224de062d"}, + {file = "pyats-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:687915b5bf754d36cb4e64f2307ef0476d8b8777e90ce85459eb96a9081f7fd9"}, + {file = "pyats-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:261132ae1110ebb1917acb52bf8e40ea2387c73a9589a08c7c3e545111a5b1c6"}, + {file = "pyats-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:8737d29bcf791a4f2d787c16b1f6dc715b9486192ecd6dff03eee3fe0c8b7953"}, + {file = "pyats-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7a84618b9ac6cea2c1f6d81742b8954c5a940696fb56c75c2d0083594aa3b05a"}, + {file = "pyats-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:76e9e074dbc8de9864889b2eb552538a399a8f040066a976c0d70bcb2e775858"}, + {file = "pyats-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:e8e114a5584f1fd86c492aeea6ce6d98a740db05d4b8cbb953e3c0016c71eec4"}, + {file = "pyats-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:ad537783f342def877abad646124eafe1f5a3e16fcf7fe23284a12b84bae3125"}, + {file = "pyats-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:15f840b698bb5d80542ae53dd762806ed1dd93a8d975bb2b7e5ad3febaab869c"}, + {file = "pyats-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:893f6f81afd5d88960c6f165824e1a342350710e0e03667d527ec5782d4ca848"}, + {file = "pyats-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:d6a67c75d927b9816f3e9880e6b85996ab979fc2e79dbe2a8c6f3c406414499a"}, + {file = "pyats-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:09f533a35452a16cab34da0444f12b6fed11eeff44fe996cfba31b43853dd34c"}, + {file = "pyats-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:24992fb8e9aaec3f2c24a99347b8f166ca78a9021335d3d5134b5ee10c253b64"}, + {file = "pyats-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0513747eca77241c8004e544bc9b4a3a87f4058cde6665a2d82763d161e1740c"}, ] [package.dependencies] packaging = ">=20.0" -"pyats.aereport" = ">=24.5.0,<24.6.0" -"pyats.aetest" = ">=24.5.0,<24.6.0" -"pyats.async" = ">=24.5.0,<24.6.0" -"pyats.connections" = ">=24.5.0,<24.6.0" -"pyats.datastructures" = ">=24.5.0,<24.6.0" -"pyats.easypy" = ">=24.5.0,<24.6.0" -"pyats.kleenex" = ">=24.5.0,<24.6.0" -"pyats.log" = ">=24.5.0,<24.6.0" -"pyats.reporter" = ">=24.5.0,<24.6.0" -"pyats.results" = ">=24.5.0,<24.6.0" -"pyats.tcl" = ">=24.5.0,<24.6.0" -"pyats.topology" = ">=24.5.0,<24.6.0" -"pyats.utils" = ">=24.5.0,<24.6.0" - -[package.extras] -full = ["cookiecutter", "genie (>=24.5.0,<24.6.0)", "genie.libs.robot (>=24.5.0,<24.6.0)", "genie.telemetry (>=24.5.0,<24.6.0)", "genie.trafficgen (>=24.5.0,<24.6.0)", "pyats.contrib (>=24.5.0,<24.6.0)", "pyats.robot (>=24.5.0,<24.6.0)"] -library = ["genie (>=24.5.0,<24.6.0)"] -robot = ["genie.libs.robot (>=24.5.0,<24.6.0)", "pyats.robot (>=24.5.0,<24.6.0)"] +"pyats.aereport" = ">=24.6.0,<24.7.0" +"pyats.aetest" = ">=24.6.0,<24.7.0" +"pyats.async" = ">=24.6.0,<24.7.0" +"pyats.connections" = ">=24.6.0,<24.7.0" +"pyats.datastructures" = ">=24.6.0,<24.7.0" +"pyats.easypy" = ">=24.6.0,<24.7.0" +"pyats.kleenex" = ">=24.6.0,<24.7.0" +"pyats.log" = ">=24.6.0,<24.7.0" +"pyats.reporter" = ">=24.6.0,<24.7.0" +"pyats.results" = ">=24.6.0,<24.7.0" +"pyats.tcl" = ">=24.6.0,<24.7.0" +"pyats.topology" = ">=24.6.0,<24.7.0" +"pyats.utils" = ">=24.6.0,<24.7.0" + +[package.extras] +full = ["cookiecutter", "genie (>=24.6.0,<24.7.0)", "genie.libs.robot (>=24.6.0,<24.7.0)", "genie.telemetry (>=24.6.0,<24.7.0)", "genie.trafficgen (>=24.6.0,<24.7.0)", "pyats.contrib (>=24.6.0,<24.7.0)", "pyats.robot (>=24.6.0,<24.7.0)"] +library = ["genie (>=24.6.0,<24.7.0)"] +robot = ["genie.libs.robot (>=24.6.0,<24.7.0)", "pyats.robot (>=24.6.0,<24.7.0)"] template = ["cookiecutter"] [[package]] name = "pyats-aereport" -version = "24.5" +version = "24.6" description = "pyATS AEreport: Result Collection and Reporting" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.aereport-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:af2be04005bfe9d7016f83552daaee263c88fbb984aa66a4f028a37b3af282d5"}, - {file = "pyats.aereport-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:e9f7e7606581c253e4002775caa4e000cb2ae04fbea0e50abe3f525e8f390800"}, - {file = "pyats.aereport-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:7efcd8e6577a45ddbdd65afecb2147459678067321953dd77009db1cb7e4494a"}, - {file = "pyats.aereport-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:fb4cc30ff7240251b9a36935a01688a0dbe711bb7ed06c950d784dc464c2ebf2"}, - {file = "pyats.aereport-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:cdb0dff21eeedb09ab5e9d4c4a7e07a68055ea596d4589e12c502e18f4ccca7c"}, - {file = "pyats.aereport-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:720103c4744d42d37c85b9e3bce6cc96d007f5230362d4380faea001f7468ef3"}, - {file = "pyats.aereport-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:6a4425ef37a75858730b9c2942295a1bf0f104ed73ae45aee560415d4a0b73c1"}, - {file = "pyats.aereport-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:418cefb671e72e1d32c25cf575e18c5c8686015134d983618cc1c7be09ee3b96"}, - {file = "pyats.aereport-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1a0a9c006806a9279b3541d6220fe11968c2841059f7bda1c14f8a65d1297b27"}, - {file = "pyats.aereport-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:990b1a18848d0b5a8f5d9f407ddc3e314749b0141df02eabc2a5bc6051024e71"}, - {file = "pyats.aereport-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:487ebb27644fbeb153ffbbe70ca513026065226fd515c3c324d4980edd4cc73f"}, - {file = "pyats.aereport-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:c2826a23b858c5b5e68507811ee33fadc90dcc856d890a7362379739d7dbece2"}, - {file = "pyats.aereport-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:2f255afde045743f3cf3799d7b4c54b89e2b4433c187583ce6d0f6bac286df9c"}, - {file = "pyats.aereport-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:680da0a7e0ab61bd80488d4f36f03e9489dbe945a6ca7b5144deabb201b0c52b"}, - {file = "pyats.aereport-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:195f970b066dc38308b42c6157021ab5d2255abaad3befeae881e89e7d70e1ca"}, + {file = "pyats.aereport-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:a2845aab1f37c7164efea461f78bafa8d0b9f657893663d6be5ad57e922c62fa"}, + {file = "pyats.aereport-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:ea45e5d69cf73913c5a037266652acb8125d0d24e06a1899bc1ea8e1765b04eb"}, + {file = "pyats.aereport-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:40be0c84ad80fa46ca1edfdb01a0ebe05c59e9e0551727c002fb353d7f406901"}, + {file = "pyats.aereport-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:d029dbc562f0c0190c74b749c95b69cd2d74a3b18c2a785211660b60830fddad"}, + {file = "pyats.aereport-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:64820540c21f21da40f95d22c249af4908188cecfe2438973f1874bd03422d2f"}, + {file = "pyats.aereport-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:5faefe6ad2ab1121aca6f0ac4412ab69899a84d8df230ffae49a1b8020fb15f8"}, + {file = "pyats.aereport-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:67a4889fb242322069b1617895c8adb72788f9c24e12be75cff7e775f19de9ed"}, + {file = "pyats.aereport-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:4b64990bd0557e6003568485611869b5d5ba89fc2335b117ac06fec49fb09b30"}, + {file = "pyats.aereport-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:37a2ba8277f303860b9c10fb8e204d6a10d278a4a0f054fc0b13f72c54d9e865"}, + {file = "pyats.aereport-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:b5fd222658122fa2b50c2194e6f1144ba9df78fa815ac4541c625878c55021f0"}, + {file = "pyats.aereport-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8c59a802216bc933ee6bb2c282fb1d8dbdf50f8cb6c92228e6e4271da6cf5713"}, + {file = "pyats.aereport-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:315a6263c44754e28e0a32262c090bb0db254ec6f76eaa7e2d2488b45c61bfc0"}, + {file = "pyats.aereport-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:9462f9d0fd6be4eb4a1cf4c2519e473fb48cacfcdf6d5d47a024bc6e391fe49c"}, + {file = "pyats.aereport-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:253aff261d3ed77184769a6629f39e9cc31ebd1843fcd7e69539cca2f500b5f9"}, + {file = "pyats.aereport-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:b1009c8c49cdbf5b74a2d74b22b5048548cf5315d36e28ee659669b5ec83cb32"}, + {file = "pyats.aereport-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ca92283eed6285cbcba55ca3d3a4679783dd777b3eaa4108903fa3cc87bf9eb8"}, ] [package.dependencies] jinja2 = "*" junit-xml = "*" psutil = "*" -"pyats.log" = ">=24.5.0,<24.6.0" -"pyats.results" = ">=24.5.0,<24.6.0" +"pyats.log" = ">=24.6.0,<24.7.0" +"pyats.results" = ">=24.6.0,<24.7.0" [package.extras] dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-aetest" -version = "24.5" +version = "24.6" description = "pyATS AEtest: Testscript Engine" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.aetest-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:bc710e2648a39356b984315e3f680e724a7d165b9746e9f0b7d4ba3ddc64fbd9"}, - {file = "pyats.aetest-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:45045ce830c269e3d64db9d47fcff28f956c6d1cd1e614976b8183de52690c49"}, - {file = "pyats.aetest-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:ac664bba8fa57a5039be9b9294f771e5da737e6e9fa0c27c916dc4fb82c03ac8"}, - {file = "pyats.aetest-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:34c12031b50a62ce07af5742aff2c521a6b58b53e84cd5a12bf63a3ee8331c41"}, - {file = "pyats.aetest-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:3edf5c0ebef921a617b016fe530cd0176d99ca87c2826d7beafb85d363ff985c"}, - {file = "pyats.aetest-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:cceb3c2d33ac1ee681de2ed8fcd94426d795e8fd3fb6f5667c35fbf601d12457"}, - {file = "pyats.aetest-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:5f8af7fc91515e657d8f992d1223ec87b633ecaac58d2489aa5565223d484cc5"}, - {file = "pyats.aetest-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:b1b0272a4c84e964b7e46b080b171eec5b226927dbee217d4cc2f6975bb5890c"}, - {file = "pyats.aetest-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:98a2233c8f559f0a389b4408722e325f6939622223fc030f9d2b10f38a8c9e1a"}, - {file = "pyats.aetest-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:39b0453f425d0f50a46571db22b51f90fe68893b6c87d6e23bc4c9f880e1e119"}, - {file = "pyats.aetest-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:3f03f40c0e38f8f8f99dae47b37f825b18e60ed9987e2bf304f3a88a631e97e5"}, - {file = "pyats.aetest-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:138d2ccb427267899fc9d724e18ac60753164f60e597fa4abb3946fe3e67cdd6"}, - {file = "pyats.aetest-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:cca5ebd604170b4f7142b44f87925412ebca3ffb86d3f68d08d092bc09958e2e"}, - {file = "pyats.aetest-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:a74cc2cfdeca753de98b88c29232825eb6c2ca504aab29f436cb58e7c95de910"}, - {file = "pyats.aetest-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e9fe01218a7e4d9b67a0616e01ab3ff7bb19dde83de9e44b483881fdb03f12d"}, + {file = "pyats.aetest-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:02fbbe19a09f19d4843dbbd4ed7381e42210ca6b92abe4dd8b8ce325089ccc7f"}, + {file = "pyats.aetest-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:2817d96940faa507096dad350fa660f6dc2274647810d74a52a40acccc3c6f4e"}, + {file = "pyats.aetest-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e9f15ad540e91f3abfe4a130b6fa0d54a1af7af1aea01d0453d46c980a9ca26d"}, + {file = "pyats.aetest-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:a0bbe48bd3f67eb2cea5d3801e9df8a470aa690a0400a175b9513e8bc158074e"}, + {file = "pyats.aetest-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:bb1fbc38ed51eada412af2a46b46898bfdaa113dab9d9f3f3cee25b33eaa1389"}, + {file = "pyats.aetest-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:409540db36cd0a930cf703329908bc12cf069dcb562456727b7804ac7cb9534e"}, + {file = "pyats.aetest-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:d970803763c78f2bad4e75f6fc34c35d235c0b0b0d72042c6712930b3b926c37"}, + {file = "pyats.aetest-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:43dc0eef09ccc61508c4f67fee2b6d2d835a79d7d212ab8f9424d28fa8289852"}, + {file = "pyats.aetest-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:a21fa0815299b45ec09d53519d8ef1a91e2e2145ad58cedef718387e17c9dffa"}, + {file = "pyats.aetest-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:a4c2ca1c8579f75b1b7154120388ed5c869e9e3769f71982409e4f3cb94ee3fa"}, + {file = "pyats.aetest-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:16cd7a472ad401e97887caa68446236c9abe973bf1a775931fd49ca445a65288"}, + {file = "pyats.aetest-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:155b16420a1f131d72d011018df14d808dc43616a24eb5cb8d5c3cc41da23595"}, + {file = "pyats.aetest-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:2f4f42a8b4f4f2a14b9803721f56d1a51cc4dec231082449e824650c2189c0c3"}, + {file = "pyats.aetest-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:8bcb5a096b490ba2cac6b5b5550dfedf147cde67d8e0ab544c15c1050887ad5c"}, + {file = "pyats.aetest-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:81c21006f6069a9e658ab1f71674f67cbebf7a00c56d13ad53bfbaf2ca78956f"}, + {file = "pyats.aetest-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eebd82d26ee0e56aa8e150d6494cf01f2dc4b334503b9b093bdf5acf239e78eb"}, ] [package.dependencies] jinja2 = "*" prettytable = "*" -"pyats.aereport" = ">=24.5.0,<24.6.0" -"pyats.datastructures" = ">=24.5.0,<24.6.0" -"pyats.log" = ">=24.5.0,<24.6.0" -"pyats.results" = ">=24.5.0,<24.6.0" -"pyats.utils" = ">=24.5.0,<24.6.0" +"pyats.aereport" = ">=24.6.0,<24.7.0" +"pyats.datastructures" = ">=24.6.0,<24.7.0" +"pyats.log" = ">=24.6.0,<24.7.0" +"pyats.results" = ">=24.6.0,<24.7.0" +"pyats.utils" = ">=24.6.0,<24.7.0" pyyaml = "*" [package.extras] @@ -1881,88 +1989,91 @@ dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-async" -version = "24.5" +version = "24.6" description = "pyATS Async: Asynchronous Execution of Codes" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.async-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:d9ddd78a373dc08366bca67417f9719a967fab5230378b04323a2fde3102f65e"}, - {file = "pyats.async-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:86290ce9b1109ac8e66a507c94cb2d3d1c2643fb1f842ba266b81b27a07eb733"}, - {file = "pyats.async-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e3b8f03719a8e21fe84d6121cd9ebb707f1329981cd075feeb68dd7e0897944e"}, - {file = "pyats.async-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ac8963bc21ad49753b584acc541e0f9022cb1c1847fb0411ac39716d7a8fd55a"}, - {file = "pyats.async-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:98bb4d685a4de6c53e63b6f78ccc98fb8240bfd77468cce33aff220a7dd01a80"}, - {file = "pyats.async-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:46c416d59ce0b6c7ee631387b5a08885493381ed47d157d0d549c63df8c9ecab"}, - {file = "pyats.async-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:380abfdaa1be7b7293efe6e4e74111fc414298c2a1048bab57f0c4b4a5b68782"}, - {file = "pyats.async-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:9d1c51ba4baf0c87f51e3f76a50e64f6357f7de05e683d560b7945a1a621633e"}, - {file = "pyats.async-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:e03a9b95febb9341fe90540ad3e1a8a9de1560db4c638e4caa920c62ffc4fc7b"}, - {file = "pyats.async-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8413e9e55ba7671aeb8aa13ae6ae78697a13d0a945fd09e66fc7b1ef303201d2"}, - {file = "pyats.async-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:2cd9fc61af2c601c65908c1fd993d452d1b9fa98c28e0cf43c71baf44fafba0b"}, - {file = "pyats.async-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:eea1bdfed59eb1ea591fd7e2f3749992916be6756df517545391b088159e436d"}, - {file = "pyats.async-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:c488bd83d9f81ba08a281cae7c6eba46394245737b9e6ad92e2bb39035274b55"}, - {file = "pyats.async-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:73244a239cb7e118803f63275f7de0f2b64253a9bcd8de772f23e347f5c2c08a"}, - {file = "pyats.async-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:940b9730a03819d815ae01457004f56e8793635e2dc9ecb1371bdfc374c0eb30"}, + {file = "pyats.async-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:ef16c582326c85ae41743d6cadf62f691809b6201ab33c63f5be752a635bceaa"}, + {file = "pyats.async-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:10a3e599bae5475effd0b5fd4d5a740cbf2c6d7c904bc7f1ed3be679210d7c2d"}, + {file = "pyats.async-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:509a5411bec9f33ebf58918360d78e49435018a38ab317cb221c5e4ebbd6e940"}, + {file = "pyats.async-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:cb2fa8e574cdc19b5f0634f4e9c38e255bd5abef511020cbe1b3dd188cfaca05"}, + {file = "pyats.async-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:f4c897fe8e0fbad28f09bd4139e6a77714fe9849178a5a2cb32cf31a97991ded"}, + {file = "pyats.async-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:dafe4669c99fb4093f6259242510af861aa9891cd06da5f6c11cf90ade7ad2d1"}, + {file = "pyats.async-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:eb14bb06064e61b9e3510871fd01c220b4182402939d0930c1f0ba4e55bfa846"}, + {file = "pyats.async-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:7fff7cccb75c40c7c4b19f875c861423c0c0b447911e95fb72051f706f212204"}, + {file = "pyats.async-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:5aade9385c1c19c5746e904cc1c499c13afc0d6ef6bce0826b2f33849ce0a348"}, + {file = "pyats.async-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:1be5a90f3843667abb021b2a7d8fdd16c8b5e7142305dfc363368e6816a0937c"}, + {file = "pyats.async-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:49b2fc4860ad67ed239d766b08771791bc1835091707ad82b16ca89698181927"}, + {file = "pyats.async-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:04bb45653cdb1ad2936ac239fe10a4896bcccbedc6006a5bd1880f638194d66c"}, + {file = "pyats.async-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:06594ec54861632688032a0aa215e80b748fa652991332df274526fbd3a40045"}, + {file = "pyats.async-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a07cd78030f4eeebd05bf0da79810c1659cd695c5703440ffc2cca313378c726"}, + {file = "pyats.async-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:c4b1a22e5d974fa541f0af61c3ce24fe2a6233b139c3ae740a22dac3a4499f6d"}, + {file = "pyats.async-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:14664b5748e78db0f34faea7806c31d137313f2c65a9453c672604e38a40c4fa"}, ] [package.dependencies] -"pyats.log" = ">=24.5.0,<24.6.0" +"pyats.log" = ">=24.6.0,<24.7.0" [package.extras] dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-connections" -version = "24.5" +version = "24.6" description = "pyATS Connection: Device Connection Handling & Base Classes" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.connections-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:9b0b663d19f416faade05aa97a4f647c51a78c673bf2ea47dcdb51d242d4ce7d"}, - {file = "pyats.connections-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:97687771fe31145972248143cd4dd08e45b5506b22ccb0c7e14a1a99e45f6060"}, - {file = "pyats.connections-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:1a606a526ac5203c663f6bfbd244c934e096e7ac2627dee441c097ac6920335a"}, - {file = "pyats.connections-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:7d32b00f240287d56619f0a20e825a1ef26015449dd8af291d92701b9ddd3c26"}, - {file = "pyats.connections-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:363694712d1c689ed07f2b0e72ebb3b0cce222dbd89ee5bd473640355c5e08c9"}, - {file = "pyats.connections-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:6e1ff796809518a0549660b4eaf7a6d717b98f169e6579fab2aa62119c16eb4d"}, - {file = "pyats.connections-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:97e8aac9d4fc38f0d95a4a7ac4c9523dd36168b0d0bbb95b131cc13d5eed2e38"}, - {file = "pyats.connections-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:6c996dada8b6cd756f7fccb163d276b82ce8b404c19df7c7e5a5bdcdefe5e985"}, - {file = "pyats.connections-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:683cb03b894cdef4e59206301120126273407b0ed5e8a174baae226e7726ecc7"}, - {file = "pyats.connections-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:ffffdadef266bd07cef322a1502f8be07caa89c26dd21d5f1b54337025f594e3"}, - {file = "pyats.connections-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:eef34e881d79434a851f0f96382251954d5c0c6737c0393186a2c7c8ae3d5aa6"}, - {file = "pyats.connections-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:89ee02f952d905f97903475847c6ebb2b017700c8f689afc0cce8ea5eb7aafd5"}, - {file = "pyats.connections-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a717afa51c068a0751446abd9d2c9e0b208d51177c34f3d366df3b7b9982e9b7"}, - {file = "pyats.connections-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:d09de1a4f68428cb2d5dcc2d931151d90b3b94f27ee3655b7eef8c603ea0d760"}, - {file = "pyats.connections-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:dc5c9fd8a0c8f4058ee2c532046d5076c401a31fa0638ff367478cb93da1064d"}, + {file = "pyats.connections-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:37b8f69dca1d13be0bf3f223c64072f470197840bff930d42c16d68927011579"}, + {file = "pyats.connections-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:0bd8b4450dad6e05051763e1ca30cd3ba2a9cc9052934f9b9f30afc23c8c8ec2"}, + {file = "pyats.connections-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:f128ec62cbc0c3bb0369f381be2fe7ba7b28ba7e1f9e4fa7637c3f7de334cbe8"}, + {file = "pyats.connections-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:c85bf06291eb9fc67758018b7eaf4908759ec8965f8fd8b7756df45fb6c11188"}, + {file = "pyats.connections-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:c5d00ebff314dccc5d89fe45381fc7d52a6458328c9b2d509421ed09ca6a0e18"}, + {file = "pyats.connections-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:a506c75b8c775e2b80cbdb4d31309a83f015452a3e9994871453eb820107f48d"}, + {file = "pyats.connections-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:9a32d045c42c57d208fe7e09e402a731f994f715c518f9d4bdf9e9862f9463d1"}, + {file = "pyats.connections-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:25ace560e197743f7f3818574060602e463cb38c1faa498e1a9ecd441af82f4a"}, + {file = "pyats.connections-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:4efb2fcd8ff646d6d91d0dc105f53060ce7bf0298e6ba7491a8dfc0830185345"}, + {file = "pyats.connections-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:35615610aba72c5a62b59fd685cf3eabd5a96bb66879b68fee00c534986a0f84"}, + {file = "pyats.connections-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f042428ff7853d01b0a89d9a59c0c4a4a87cbbf7768cbfcf0b416fdeff282197"}, + {file = "pyats.connections-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:056f3b46a27031fc071ff52901fa9af8d2474cdc458b5d5faa55399209bec1cf"}, + {file = "pyats.connections-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:ce5b727a165035b690f00f25d890ae30423a5f02c1f953f5d55c43babd27b8b7"}, + {file = "pyats.connections-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:2d02ca52f050d19139661ac1442bd69e057446ec90076f7998b0289558e14edc"}, + {file = "pyats.connections-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:aa662f47bbdb495c63a7d3332a200c453c570294caf7de169d4b29130937b90f"}, + {file = "pyats.connections-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:be2e4f82b5e957a0812787f17a056f03cab49a6ce47a7e5caa31c2be0815ccf6"}, ] [package.dependencies] -"pyats.async" = ">=24.5.0,<24.6.0" -"pyats.datastructures" = ">=24.5.0,<24.6.0" -unicon = ">=24.5.0,<24.6.0" +"pyats.async" = ">=24.6.0,<24.7.0" +"pyats.datastructures" = ">=24.6.0,<24.7.0" +unicon = ">=24.6.0,<24.7.0" [package.extras] dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-datastructures" -version = "24.5" +version = "24.6" description = "pyATS Datastructures: Extended Datastructures for Grownups" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.datastructures-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:db255ed96f30f5013a883b3216ba18d1380e18367c42b2afa8f6e2f0ca0d5829"}, - {file = "pyats.datastructures-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:7001e549dd082f9e249099af7ee1b9046ff53a564bfa03d9875c3ed55f12cb6f"}, - {file = "pyats.datastructures-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:1580ebc16dd72d6757975d5fc5a86611d17330fa1922e59641858919d9a3c4f1"}, - {file = "pyats.datastructures-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:5e269338229220e02b079d132255d2365b7968c81e15d8e2f4e0736244f57bdc"}, - {file = "pyats.datastructures-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:2312336cf7f0bcdbaf963e470e5f415c3a2fbaf70c89693b945757938a40b823"}, - {file = "pyats.datastructures-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:d9b3f42a83396145bb3683c61dc71d20c0e4982573c838546901564ec99f31b7"}, - {file = "pyats.datastructures-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:8e7847f8c6e4e99f1e7df60f88d0da44a05e34282e737d25a540a7dadfab4ea7"}, - {file = "pyats.datastructures-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:89b63a39dbef44751986446179761bd4ea0de277118ef1b65a370993e0dd11d9"}, - {file = "pyats.datastructures-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:c5c01e6110e39c7c3e1f24c80d9a1bbf95c94ed3149dd6085a1c9089613cb6c8"}, - {file = "pyats.datastructures-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:a885c90840ac84702f7a9ce0fe95f4d6916e0a3677d1423646c84d3f847320c8"}, - {file = "pyats.datastructures-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:3bfc37b4d05822c6c6b2217256b0e654dd8aff9c81b67b2c8b9d7fbfb71c733a"}, - {file = "pyats.datastructures-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:1791911919678b7b407c3e0f5678de620a7685776263a42df25e2e6978448abd"}, - {file = "pyats.datastructures-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:fa0bb568934881f0a497455fc0b0209b4e3bf9d1087229a4908782b45b22d2d9"}, - {file = "pyats.datastructures-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:b348ac0ed136d54a63c36996cff868330482f3580f1bb1b6e49df3ae5cd2594f"}, - {file = "pyats.datastructures-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:59dce260ba23f62921cc82dfeec74cb4366c0a066446b7b7aaff01af1f87f465"}, + {file = "pyats.datastructures-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:e6393f638ee57321a5d9e90a02ecc8d3037e83f12752b371616687a1dde17cb2"}, + {file = "pyats.datastructures-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:2fec76ae448d52d13fc43a1f0aaee596ca5317954e192b15ad17bd2224c5a4de"}, + {file = "pyats.datastructures-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:ef822daa6e3782cceb1ac3488a040149cf7a23bc199539d70918ff0b2b7e1ed9"}, + {file = "pyats.datastructures-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:1145a65bc2791bdd30aacc7d26df68b2e4920a40fb046478b61f09aaa7c8ebdd"}, + {file = "pyats.datastructures-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:73329bb9af9b8c3d9ed3d233346f75ca9c758353ebfe7fb37d283f087600b79c"}, + {file = "pyats.datastructures-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:c0084e5a857c9f589df7d0d33b650a1added0cd4895007040cf7dcef02441027"}, + {file = "pyats.datastructures-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:44b4b56a32f94218ba947310f4fa44b4711625cd4855c03e5dad90adc4b60262"}, + {file = "pyats.datastructures-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:b68fc5ecdcc12690eb6c4775723c777ddac889f4b34a53bc22f5fa372718e09c"}, + {file = "pyats.datastructures-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:fa65d88159704c6fbf79d0932f81e125db1024d306237bfa98df159306019c9c"}, + {file = "pyats.datastructures-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:9a7c037e0ae341d3dd25be531ed6172f0d7b7a8f993c2f4755a8e2d8b0a8ce97"}, + {file = "pyats.datastructures-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:9b7590e2cc02efd83cf55f5b873f86b2b9ddc69ecb1ba8aa461bbb785877116d"}, + {file = "pyats.datastructures-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:b2f0d91bb92b0a2973f0ffa48e6cf327e071afcd4c7b7f200ec7545b4a2041eb"}, + {file = "pyats.datastructures-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:3350d8149cadfc891f618d4289872971288a8266a28f7b4cd49634492902ec5c"}, + {file = "pyats.datastructures-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:411c224834639ca60023c0f84b4a515e4fbb8571fd0177064e3d51b621b8020e"}, + {file = "pyats.datastructures-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:31072c54c359ead52f53801904b937adf0925ff06ffd11a54dec40d669b0ff77"}, + {file = "pyats.datastructures-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7e66b2b2aa9a14bebefe1ef55c5b1583ed65a96d5a967d109e5aa7b2b4e22dde"}, ] [package.extras] @@ -1970,39 +2081,40 @@ dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-easypy" -version = "24.5" +version = "24.6" description = "pyATS Easypy: launcher and runtime environment" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.easypy-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:3aeaa34a9b81603f4e1b6d4338a7cbee0c3e89b8d6793e9d85c0bc73621ce7ef"}, - {file = "pyats.easypy-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:4fddec5884924c8a0453f0d158be3ecd9b243ba26f17a1313e59d81e993616a7"}, - {file = "pyats.easypy-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:4674baa749d14e31926695ab802829b12bd0ce2557b3ee60a8be1bbd368b4fdd"}, - {file = "pyats.easypy-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:f428e48287943bd9f315b4156fccaa9683fb2caa7be1d6130e9cfe18b7cb4c99"}, - {file = "pyats.easypy-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:4ff697f62ba6319a11b93d4acce8d7389c6f598477becedd9fc2dd458004f015"}, - {file = "pyats.easypy-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:a44ce832c14882d787c885f1f5c6262c3f7735a4bd838562d81165ebe26b79db"}, - {file = "pyats.easypy-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:36306e80664468f3a8f398a804416e8e484019a1733b892b6ec52af90f3c5378"}, - {file = "pyats.easypy-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:b83814585f43417211d803a2a6286e4f5f83b5fcfa89689c4101efbf4c219d88"}, - {file = "pyats.easypy-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:19f85550f921b61d784a08df22d7ee678c992f16b8c88e3a6d61804bc0161947"}, - {file = "pyats.easypy-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:615c8b81e536add526ff57d82fd8e88d282191614aab36a0f9479b7622569a9c"}, - {file = "pyats.easypy-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:0e531be28a1239b5a19825eaa0d97eb9b04a992fe52d302919f5c7212eb7f21b"}, - {file = "pyats.easypy-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:957471557a7dbc55771bd4341f41af1ae2e3d6d7ebba03c17c36dfd3a84daedd"}, - {file = "pyats.easypy-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d13fbd7ce7bc5bd2386b4ed54b2c59bbaa57340b17c5e7b8312ea813891f7935"}, - {file = "pyats.easypy-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:010deb46fcc4afc7f8febd6742d66629e7af266560cc8c766e189f8d2f938150"}, - {file = "pyats.easypy-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0ffa9208296a89b77242299ff716d765a12dc669dcc1e3ad989e271d59aa940b"}, + {file = "pyats.easypy-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:e2f75cfa5a76586d749892a0a07a0f1442c7cc6cee681a345ed4ead4e8a3fb9f"}, + {file = "pyats.easypy-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:1788ed83d7b9bea468478ca14662aab3d65b89d08c5bdd7af8d10ce07691d283"}, + {file = "pyats.easypy-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:d3e4f567ef3be5b9a5208f0cc179c52ae84f998353c0b16591a614f5ac9b37ba"}, + {file = "pyats.easypy-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:85a33baaeac9547371cfee624a37836a1b452818338f06c09f3ac66e1b5e239f"}, + {file = "pyats.easypy-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:38eece146f63151f20b0075061b0e0832bded7478be1a23ba7c8be6fc3cec505"}, + {file = "pyats.easypy-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:abecf609409f092172b515109f0930fc0e3c7aea4515004fd5a68da326509868"}, + {file = "pyats.easypy-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:8b798bdc563032e4b5dfbabcd3630d9301332571872a41aee1670951a73b9305"}, + {file = "pyats.easypy-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:653ef1cb4726285c241de7802e344b69e4cbf459ebd7205ad10332bd0a24b152"}, + {file = "pyats.easypy-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:0ff70d7754db144834f3eb9e076ff33a955449261774b8836d7430ae9cfbc2b7"}, + {file = "pyats.easypy-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:ac83e213a3ed1abff89e339de3fa9d2dad2f250731502b12a5a5dcbdad5c046e"}, + {file = "pyats.easypy-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:b4a4f74ece2e2b642731b1e7fac8207e40b385a43e9f8132592dfb1a05fffe9f"}, + {file = "pyats.easypy-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:7603dfcd31807cb06cbbaf63b21f0b9c4f8ccdfafaf4c33a1b32ca1b7622abfa"}, + {file = "pyats.easypy-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:6458e5fed0353e0aa55d9ddf16f40da123a43e87eab06add2b20d151e30441e7"}, + {file = "pyats.easypy-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:e7ada8f8cc913e6f51bec13fd682dcb015f16dd719e6e6c2ea10f7d6df2f62b0"}, + {file = "pyats.easypy-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:06a2e5a816f9110cc058f2885fc081be69d22d7678c9e77af92239db3fbed2c1"}, + {file = "pyats.easypy-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7b555685a290f1343a0d25bea5a45432460e161af00f953eeb006b873e4f37a2"}, ] [package.dependencies] distro = "*" jinja2 = "*" psutil = "*" -"pyats.aereport" = ">=24.5.0,<24.6.0" -"pyats.datastructures" = ">=24.5.0,<24.6.0" -"pyats.kleenex" = ">=24.5.0,<24.6.0" -"pyats.log" = ">=24.5.0,<24.6.0" -"pyats.results" = ">=24.5.0,<24.6.0" -"pyats.topology" = ">=24.5.0,<24.6.0" -"pyats.utils" = ">=24.5.0,<24.6.0" +"pyats.aereport" = ">=24.6.0,<24.7.0" +"pyats.datastructures" = ">=24.6.0,<24.7.0" +"pyats.kleenex" = ">=24.6.0,<24.7.0" +"pyats.log" = ">=24.6.0,<24.7.0" +"pyats.results" = ">=24.6.0,<24.7.0" +"pyats.topology" = ">=24.6.0,<24.7.0" +"pyats.utils" = ">=24.6.0,<24.7.0" setuptools = "*" [package.extras] @@ -2010,36 +2122,37 @@ dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-kleenex" -version = "24.5" +version = "24.6" description = "pyATS Kleenex: Testbed Preparation, Clean & Finalization" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.kleenex-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:89cfc2eeba71a150abc89e33cc9b17d653003eebd772eee3fe5405cef59ec3d4"}, - {file = "pyats.kleenex-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:8ada805ae74d7adab791f32b5bd5719674d310662e75347844a3e6f0652d5aed"}, - {file = "pyats.kleenex-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:17c45c34cc0ea713de66285c378ec7ca149fd30eb3ec707b60ea329b0b2d7264"}, - {file = "pyats.kleenex-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e48c841293e50e877c7dd80eb9e34dcf9dbbac0958027678562059b61217910f"}, - {file = "pyats.kleenex-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:0bd176619ea8b5301c934a0a085a18ad22d5b48422048f116beddb040ceda3df"}, - {file = "pyats.kleenex-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:2ae61c87cf2f854a4d01b028964bf298d432bd140a21860ac25e826da068b378"}, - {file = "pyats.kleenex-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:9b829075c88c69f892a03cd5fc766a858c238026f2576f4c86dd01d2ad64a12d"}, - {file = "pyats.kleenex-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:60420be2e8281f0d3fa8c35385764fd720ed2a38b86d736df62e7c6653cb6276"}, - {file = "pyats.kleenex-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:a2d48f91de66af2bae99fe933e2391c63f9066c4d2f9269f6890b3adfae79377"}, - {file = "pyats.kleenex-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f2e52d30670868e45afc13ed6cec50418b4c7432026d38a0cc004de810b257ca"}, - {file = "pyats.kleenex-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:d0286722d714929a4a3f09d93d6cc1f5c598b6422068fd18f8cbeb800982fcb1"}, - {file = "pyats.kleenex-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:0c1eb96bbcada0cc3646e72a0a6e496a2b19463a406c245746ef6d70f74af90e"}, - {file = "pyats.kleenex-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:70b320a641b42a3d5a953f9eca11ffb78274a03f019ee9c156dcd4ed1ee40438"}, - {file = "pyats.kleenex-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:decd25c0f020f75dce0ac1425ece63b300d1356c6a2213fd8064fd54d26b01de"}, - {file = "pyats.kleenex-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7aaa02b79583802c8b3ec74a69183715ba04bbce3a1f6bb6766afc46c6d6d443"}, + {file = "pyats.kleenex-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:ede148a98c18e188018f46d7bdc72cbf7650ad61e5c607e449c1dcbd306655ab"}, + {file = "pyats.kleenex-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:c982c32c3d052e60789a4dbeae84f26bf07268fd36b5944f826bd5e4d3ed725d"}, + {file = "pyats.kleenex-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:34e4fe8586647856ae5a3ce9b9d7c4b3b0288ed49a34a48020d6288c93412ec4"}, + {file = "pyats.kleenex-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:40ab33994e274aa4edbddbbb1d0988db5007c887df423fb5585d05bcde4d43a0"}, + {file = "pyats.kleenex-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:4ccd3c69f5b76c51e0118e215a9063be9820525f5ae74663103966bc302dbc1d"}, + {file = "pyats.kleenex-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:2c823668932279f5c0999f3d3227e880847276ab0f4ec424fb37f14c0e381375"}, + {file = "pyats.kleenex-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:93613b425cf8121555dfc268aa87eee78af5cf6e7d7a5a74d022b95107674c8d"}, + {file = "pyats.kleenex-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:eb7701a3adb7aadcb603d7237428689252aadf0374b1f7aea14a1a8021be4580"}, + {file = "pyats.kleenex-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:528093b2173ac8571dba55ffb9f83909f84b355e55901cf27a5373320033bd0c"}, + {file = "pyats.kleenex-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:601127ce220273ade0bdbc8ffd46dd4d8cd0ac1768c4c2eb3c4182e7f80eeb71"}, + {file = "pyats.kleenex-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:7cb412778cae04d08e2666342c5f0238eec103db8bda110b892996db060eac1c"}, + {file = "pyats.kleenex-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:fa7c9cf2351f9eb0c2fded11c588f96b452075777cf705179587b348cf8c81fe"}, + {file = "pyats.kleenex-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:3bbe166076027db70a7c9cc1d77942781d9a96cebca89ae88e880912750ad7ef"}, + {file = "pyats.kleenex-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5480b77d511cb025222909efcbeb22e6986193a50f1223d65acfbd9b0c5aaa57"}, + {file = "pyats.kleenex-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:e2a68ae8407b9620a13736defbe54d71b617020bc45bf4e1a4eec794bae15f92"}, + {file = "pyats.kleenex-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ce39f2ff2ac6a6522e228654fc9814f8a46471ae0ebbaa3a0c35dc3c6b89e58d"}, ] [package.dependencies] distro = "*" -"pyats.aetest" = ">=24.5.0,<24.6.0" -"pyats.async" = ">=24.5.0,<24.6.0" -"pyats.datastructures" = ">=24.5.0,<24.6.0" -"pyats.log" = ">=24.5.0,<24.6.0" -"pyats.topology" = ">=24.5.0,<24.6.0" -"pyats.utils" = ">=24.5.0,<24.6.0" +"pyats.aetest" = ">=24.6.0,<24.7.0" +"pyats.async" = ">=24.6.0,<24.7.0" +"pyats.datastructures" = ">=24.6.0,<24.7.0" +"pyats.log" = ">=24.6.0,<24.7.0" +"pyats.topology" = ">=24.6.0,<24.7.0" +"pyats.utils" = ">=24.6.0,<24.7.0" requests = "*" [package.extras] @@ -2047,26 +2160,27 @@ dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-log" -version = "24.5" +version = "24.6" description = "pyATS Log: Logging Format and Utilities" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.log-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:036f6adf4cb6a7c52e8e5d052694ecbaff75f25952c17263d42defe3b9e5ef85"}, - {file = "pyats.log-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:7aa218e563bb5837809516762f9c7d8fc15ef2d044d3c1c1294b332ddb874b27"}, - {file = "pyats.log-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:b5bc4e422b59df88f309c92388b04cd6219f99f6a9a64e855a80030558df5d88"}, - {file = "pyats.log-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:d94b35bb92b55f6ad4d6874376096192ac89ed60e12eb81fe74f8c9c958d92ca"}, - {file = "pyats.log-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:48768038ec09f3e681ff5d40a0d0227f06322095237072f105afb59a4b0cf532"}, - {file = "pyats.log-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:f563e091b37e2a33f27e41a004aebf028d490c57a6cce55bc71e44df45a48fb5"}, - {file = "pyats.log-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:6aa80b1a3d83c808cd181121a3fdcba243d5e3481f3698165cca8434ebbef203"}, - {file = "pyats.log-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:fbf3456f634da08d9407da8a517d31d3833938dcde17a3417ec5fb1a527931ea"}, - {file = "pyats.log-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:383dc9dcf11f56467216bb744548021b602973f0e27d10ab89d2d360d543401f"}, - {file = "pyats.log-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:98a039135cf728dede1ac9245945018ddef867936dea7ff5386b3e4d74612750"}, - {file = "pyats.log-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:4a027d495da5332319e59822aaf1f35bd6a6c9d8d195256713a8af32eb024824"}, - {file = "pyats.log-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:82f62a351d94c02afd582f32553fcbdb15ffc5e79535560079356cb6d8df58c3"}, - {file = "pyats.log-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:bf690dc8f89214d6d262a77efce3c2d63d80c0f21bc4e09f13439bb245c7ebf1"}, - {file = "pyats.log-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:436ae8c5cacfe750ce66ed2ddb23ceb75f2a601c2c6b9d1cd0ebfd93e784433d"}, - {file = "pyats.log-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d90f6715c11c147305b24e6a0113a9e6f5f1e4cf1b739509f4de74aa43b492d7"}, + {file = "pyats.log-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0487e08637789b0a23c5eb91f90e81fe3021120ac165a2eef5d8b34eec185115"}, + {file = "pyats.log-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:043fdec010bbf0c3fa3f75e8c0e3c3bc64d19c8446a748baeaf1d31ff0617069"}, + {file = "pyats.log-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:d86a1ed470cbfd862969336e98980154c2a7a8b14914b4841de6d9683afe247a"}, + {file = "pyats.log-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:f85ce2a2e33f0647f9a4cc0ba5f13fbf3ee3c25e857bb0d805ac4ed548f777f7"}, + {file = "pyats.log-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:c5221838094fcc7361f9fd9b76c860ef529f16cf4a2571fafa27b796182ff9ba"}, + {file = "pyats.log-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:814450166c100f8081faeac275e8c5129ba7d278d8aa0455ccffcd810f7134a3"}, + {file = "pyats.log-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:71d25e78c736257cc31dc860ffe2d214a5e4a6770a864f3c0f3006ccefc70577"}, + {file = "pyats.log-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:43c5491474ae023e7c3b0f429f1dce1d8f3dd20f9d044676ea4101e8d90ce8be"}, + {file = "pyats.log-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:a41397c30d18cef8cabdd8468752035608f36b45fecd0195cb03e824fe4e1894"}, + {file = "pyats.log-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:3655ecc43108f99b9527285eebdf2b2c8ace12889889cc67630e691b2fcbab99"}, + {file = "pyats.log-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:25e52d1ae5d4ee462f64d9ad1f31ee11c6fed0eaa54bcd3128340a93cc82825c"}, + {file = "pyats.log-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:cbd092d2fb113ff9145aa99a1383abce0e3a2734633c95ed7d33b5e8fa234cef"}, + {file = "pyats.log-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:d3cc45b444cf92002b4d15a4c9fbb94dcbb59aa9c5493677b476d95026b9f15f"}, + {file = "pyats.log-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:7d870e1a59bd3b981a03efd87496db39345d1d9fedbdd3174e29b308f8099069"}, + {file = "pyats.log-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:97243cbc5a1c3b0ddb0826f768aef01aed92cc02258253feb2764d749d62af28"}, + {file = "pyats.log-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d27c3bf71ad780741ac760698e1aa6e2f0138f06d28c3422771a84877f2d40ab"}, ] [package.dependencies] @@ -2075,7 +2189,7 @@ aiohttp = {version = "<4.0", markers = "python_version >= \"3.6\""} async-lru = ">=1.0.2" chardet = ">=3.0.4,<5.0.0" jinja2 = "*" -"pyats.datastructures" = ">=24.5.0,<24.6.0" +"pyats.datastructures" = ">=24.6.0,<24.7.0" python-engineio = ">=3.13.0,<4.0.0" python-socketio = ">=4.2.0,<5.0.0" pyyaml = "*" @@ -2085,34 +2199,35 @@ dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-reporter" -version = "24.5" +version = "24.6" description = "pyATS Reporter: Result Collection and Reporting" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.reporter-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8115d3c92744e84d9a7ac03110bc6c3b9e23d70f33f77ed126d44739de9965d0"}, - {file = "pyats.reporter-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:06dc7b3f4fa5a394441a4d71bdd83972511633b49a94f9f9cd045aeab2972722"}, - {file = "pyats.reporter-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:04d4f10f0c3a9889fbc696368fc86ffcb8eedece63e70dcbdc8c9975aa3edd23"}, - {file = "pyats.reporter-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:ff8451cb82341669ff8374d2729c27814acf5f5f906950e310a9086f716e4b71"}, - {file = "pyats.reporter-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:8a8f1c35ad7eb8e183189fe06906e500e41cd4d38ab1291890739fd4d98109f5"}, - {file = "pyats.reporter-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:7cede57acfc2c644771ab9576907e827ce9012525fd6430b1a8eac60ce138bca"}, - {file = "pyats.reporter-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:087d37a7ae3f4267e2c8a89b2c28f80257f288fcf5f2228bd7c0bf5d60661362"}, - {file = "pyats.reporter-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:06c26d40d0adf5f3a3f9b6d7a2afe42c8dcaccf8f5ad995891b9f4a55ac65c8d"}, - {file = "pyats.reporter-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:3284f5a08931793528aeb8e382170a7281f78a00f272a92a65a0f6cbf4c8289e"}, - {file = "pyats.reporter-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:825b2669c24f28f6758fc771c3145fa17f58c75af55ed92653f881e738d54fac"}, - {file = "pyats.reporter-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:b7453c857d00e993f70139618a1e7dd6899c9c877513d39559eb1f131dd404b4"}, - {file = "pyats.reporter-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:2d911ddd935e749d90b4baefe577858719fe2328fa2c2ac45ead69af904bd83d"}, - {file = "pyats.reporter-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:561c2b3c95775936605c134d6f88d3bce7d1a882b6c2651863827662f8220d2a"}, - {file = "pyats.reporter-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:ef641e01a23f52ca6bbc6f86b96c37d684a059a9276e1a6cc501cf55232d709c"}, - {file = "pyats.reporter-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:300de562844aedf6ff4ce3dc0ebaced169670d0bd5179962694ce283078ad51e"}, + {file = "pyats.reporter-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8c9d637de4bdaad7112af9ea063b37279427ce21b29c314aafe2ee98d599ccc7"}, + {file = "pyats.reporter-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:a6da03bedfee4f5f869e4d8782e254572406ae4d4aea4df9f4d1d57c9412fd83"}, + {file = "pyats.reporter-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:30f3e9db285b4d13f583ad09f9fd7daad4c79afdd216f66828771d5812b250cd"}, + {file = "pyats.reporter-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:6d1b47bb9c5f12f673cbfd542907333a31718b5f0efafcf8ca943fa877941480"}, + {file = "pyats.reporter-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:9d37b804677703394e039b4574a7fb5f3b95921ffedcf42a6413f95e1453a643"}, + {file = "pyats.reporter-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:e02090d2e99eff5b57636abab63307e370dd31a5d5d7558ebfb935f95031f1ae"}, + {file = "pyats.reporter-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:25a2f7e2a50f714809cb49fdc24bea925b4f3ce8f3ac603ecbda3ea6bcdef041"}, + {file = "pyats.reporter-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:fd9775a34d2ae1b9443f9a54b77873cbce65ce6e9e97f9706dbac371a4542032"}, + {file = "pyats.reporter-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:69b991f8b5cf818d105c7452bcd8dcc22a6025d601ad3942c1a5d9c0487816cb"}, + {file = "pyats.reporter-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:434f4f3525cb3a55e2ec4934898e86ae1887581bd5ee17aca568a1ec223f25f6"}, + {file = "pyats.reporter-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:adf5c3778c8562c148fdc174949906159ba5a55be93740a396024247e17961d8"}, + {file = "pyats.reporter-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:ed7217572469461d1d3be26aa2c4a6d2c0f60e0df819b633e5700d4107bf32c2"}, + {file = "pyats.reporter-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:581ab0ae619bcad3aa7ef35295e098281154b8e8ec0b8344a336967624ed323a"}, + {file = "pyats.reporter-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:abc8d7b8c896d20290d5045d3df11f2635beece82bd96c0423ef9d8a2e524776"}, + {file = "pyats.reporter-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:65ec2b377bddfa3d57d652ae54229aa486e490644e6c25cfee36d38a2889401a"}, + {file = "pyats.reporter-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ade5fbada97a50cab186d540884f87e49e8a3f24c3fa2bb2f055bc3dd71fd426"}, ] [package.dependencies] gitpython = "*" -"pyats.aereport" = ">=24.5.0,<24.6.0" -"pyats.log" = ">=24.5.0,<24.6.0" -"pyats.results" = ">=24.5.0,<24.6.0" -"pyats.utils" = ">=24.5.0,<24.6.0" +"pyats.aereport" = ">=24.6.0,<24.7.0" +"pyats.log" = ">=24.6.0,<24.7.0" +"pyats.results" = ">=24.6.0,<24.7.0" +"pyats.utils" = ">=24.6.0,<24.7.0" pyyaml = "*" [package.extras] @@ -2120,26 +2235,27 @@ dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-results" -version = "24.5" +version = "24.6" description = "pyATS Results: Representing Results using Objects" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.results-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:dca2ec486c06c4e230a1c13148d58a73473b13a815ac355816e617df4b07d952"}, - {file = "pyats.results-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:db557902fc3de135736c3ffddca486ab1f298014747eaa6c65f548a526a30bd2"}, - {file = "pyats.results-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:f43cf39ced4fe6e5950afadfda3c9efafe97f60f75696b1237337351afd4f1ee"}, - {file = "pyats.results-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:9741bd236c6002c4e2074f287ae9de808d585296d798b59c7ea1247453000421"}, - {file = "pyats.results-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:2402c2382ff81d0c2ce576622b7cce5e6e0bad24d7cde32e80dc21e19f343938"}, - {file = "pyats.results-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:71555c29bed00fcfba188a654488cd69ee7471e527cf7b4395464250955ed4b2"}, - {file = "pyats.results-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:de3f94288483d9430c1e44bbab46770f3e88f2ba645e39d70b3dbd5745d16b8f"}, - {file = "pyats.results-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:94fa12c3fc532ac8bf61a4e3f8b520baa774651e3e7b2773c7306313b7962522"}, - {file = "pyats.results-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:ceb5f0085dda405de1b757f6e09c99d0a2a36a5e4724e8eee0f5aff5d15ef458"}, - {file = "pyats.results-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:56b25cb6b61c0fcaf5846cf06555cdc08ca8f753b87be69c870a8c918ee7ece2"}, - {file = "pyats.results-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:2e02a41eb2857c835403639211b556496f3bc3c2ec47b2318ee76d9e29065133"}, - {file = "pyats.results-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:f057fa611e3723cf4216b33ad5261d69356fafb1e0d2a46c91530ced7291f2f9"}, - {file = "pyats.results-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:fc625489cf1b5e4e188b3e986688726ab9e3b71789c4ce3e7b8e0072d57f14eb"}, - {file = "pyats.results-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:e3bac62fee82b692dc0a1b039fdc3121f808b1e639e4d4c854d34e18806c1393"}, - {file = "pyats.results-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a96b01e4f797e75dd55037c9d7d910139efae02d003dfc2b6256279317e6129b"}, + {file = "pyats.results-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:90ce90ffe42359b8192cbc24bfde90895fcdcc9655306c2e59f66a1503b61d92"}, + {file = "pyats.results-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:c7e23f06baf070880105e69ee37a128f4f81e96772cf93a17497b690e62deeb1"}, + {file = "pyats.results-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:eb050cc14a7f7be6ea07ad9f292ed07c12125540bdeb757fbf62576bfb97a81f"}, + {file = "pyats.results-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:fb59039cc5a54f3bc063467e46eb395cf777690c6ee2d110cb27c332fe3a6b80"}, + {file = "pyats.results-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:511d80526cce469626324a75618701f2c8b1f5919f3223418bac88adcaed8760"}, + {file = "pyats.results-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:64d3ea4bf2d32f96af664f35720f3cc2af78c32d6c5842de8202308df8d5208a"}, + {file = "pyats.results-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7f0af025d12a231dc5ee7276329684872d3dba4b93d9a97fadefe8e3dcea4248"}, + {file = "pyats.results-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:22cc3ffb85703a90c6b6b5f5e8f141b93f39efbac84f0327e7b4471e12b24cbd"}, + {file = "pyats.results-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:b5655a7cb3a9f9b4267a4ca56fdb014787f7606ea22ea7b308a8e4a9139d8568"}, + {file = "pyats.results-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:a0ad5c56c6ac3f2e9d90a6f93978ff2ec23a9aa94cda852702e2e2d6c177a90e"}, + {file = "pyats.results-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:21ed63c7c8c05644b4b3c3b0932a3beac0f2f7c12480790667d7d98e9df07210"}, + {file = "pyats.results-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:e18e445c2577971dc883a9d9b0801be2d1af7dd589cb31313db8e1f4a842957d"}, + {file = "pyats.results-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:e056f59a7a9184508e4c0c085a6ca0e3abdea5798c273e006baf618cb65b56df"}, + {file = "pyats.results-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:0b9cf15616340fe056b7f64f1536c3c8218d6bce7dcecedba8c390bd52cc27ad"}, + {file = "pyats.results-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:297230b6f88b76ae9bf651cf7eed56d986bd21dda0a8baa7faa3c47bb86d80fa"}, + {file = "pyats.results-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f6079ccea0d7a44c402c6547f6c8f169816c1df96fe9482abb7c21e5b57e63e1"}, ] [package.extras] @@ -2147,63 +2263,65 @@ dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-tcl" -version = "24.5" +version = "24.6" description = "pyATS Tcl: Tcl Integration and Objects" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.tcl-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:1fe2dff6c73dafaef0e99e8812b08879447c3d2d2a7bd7e34c11acf5840408fa"}, - {file = "pyats.tcl-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:d4e9587931d0c378158074fdf8de79ec0ea5246dc75657bffef0f89fc10c490d"}, - {file = "pyats.tcl-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:7953c830db026be55c7c19da3e6a98a16f18ab802ba86870e84e6e75a973595e"}, - {file = "pyats.tcl-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:afe87a099ac27b1aef8f1bb1158ad1ee34516a7d94772e2e7986215b92fb5bcd"}, - {file = "pyats.tcl-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:e7f1d614f6714704bb8aba3aa38c784176f5e99f7c92132e5f51755bdec2e865"}, - {file = "pyats.tcl-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:c22fbc8cae559402b4751f0972202440bb23db65c114e9e3347852cb0f6c0961"}, - {file = "pyats.tcl-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:a6ab0025515e1eab5dcf175d35d469d260280947c966a6f436b4a20c930bc027"}, - {file = "pyats.tcl-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:7cce2c10ed3ce6c2abf0542a2f080d1fdde2f1a621190c95d35e9aa0a71d2137"}, - {file = "pyats.tcl-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:fbd3aa0b5ddc25e6bf2d651f95a6c294695d42c331a1f22eaa107e94e1de9edd"}, - {file = "pyats.tcl-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:da081735ab006da8d7f27be92d270ced0e62ca62230ebb51b2c01a367ecbd243"}, - {file = "pyats.tcl-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:41dcdd957b79eb2b78f14ee7ed66e658295d56fcb54e2e58a3361a815733af44"}, - {file = "pyats.tcl-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:957d371a84cd4ed34fddf25af808f10665dcb251795a68f00007c47b8415bb37"}, - {file = "pyats.tcl-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:c1ff6fae90acc35b785ad2c9bef53120ce5c1421aef0e83126dd076b66223eb3"}, - {file = "pyats.tcl-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:b315b93a57d731fe124da1260832d9950038b576b1c6c58127fbbcd5c13a9de3"}, - {file = "pyats.tcl-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2e58419fe3a60dc273b315a25b384374a6b84342e4417b03a07de7d1c1c5d6d1"}, + {file = "pyats.tcl-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:6f139b909ea8049024fb065a08d3b479053a70fb97d5cc2fa2fb072a1d5b2e69"}, + {file = "pyats.tcl-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:70a23e46eb9bdc73dfa32c13a1e4f549c144b260eeae90188d09c8f9c87c3238"}, + {file = "pyats.tcl-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:66a1838264d4b10086f8866ad2a0d449105534870cba7d6ec2220bb23f1ab5ed"}, + {file = "pyats.tcl-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:fedf8eda08a775f08ec207e7747d7a801d90602a469b6045272cc2b862d9efa7"}, + {file = "pyats.tcl-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:ea0533c47d6323424819bf21369b7c046970068299b0814e48f52716e26234ef"}, + {file = "pyats.tcl-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:d3a12243998e5fe934862cafa52df821aa95f8270455891f92072bb4111b351e"}, + {file = "pyats.tcl-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:a28591967d240a92b4b657c9fb236ddd16e54623ec48cd47ea10e662c8e904a2"}, + {file = "pyats.tcl-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:adfe08c25da3d369c61f6d9cee0b284d9930436aee14071b3d825061a586fde4"}, + {file = "pyats.tcl-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:6a40b94322273e6b606eb83a20ffe4b3f6935b69f95862a0fe355016c179426e"}, + {file = "pyats.tcl-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:ab296dfe9220ddb8b0f8bccd0fbff9854e69994b9314297c6bfa9930e975b7df"}, + {file = "pyats.tcl-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:e8def69c6200e32ca5196ac0a88be77f5f992f7943256d0975fff1074937c4ff"}, + {file = "pyats.tcl-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:eb5b43cea36027952dcf8b218978ff80b748cecc17f66cd4bbbac6ed16bc91b2"}, + {file = "pyats.tcl-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:112d690127779d701d4c3e9ba473b4fd15daf521f54ee2479247ffc50a1e0b7f"}, + {file = "pyats.tcl-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:e0e7e307ab92fad6ab5b38d2e05b618dc1eb13a565a78350e88200b9a26b0dc6"}, + {file = "pyats.tcl-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:f410de5694e48d57b6c1d5f2baf31ddc11ea7247f79c98a026a5ee5b8a95d0ab"}, + {file = "pyats.tcl-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b7a0d5231816de14e0f539fc8f8e270bf6c5a0d9ddd8d57207681dde87747c2b"}, ] [package.dependencies] -"pyats.datastructures" = ">=24.5.0,<24.6.0" -"pyats.log" = ">=24.5.0,<24.6.0" +"pyats.datastructures" = ">=24.6.0,<24.7.0" +"pyats.log" = ">=24.6.0,<24.7.0" [package.extras] dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-topology" -version = "24.5" +version = "24.6" description = "pyATS Topology: Topology Objects and Testbed YAMLs" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.topology-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:5ddea1a56c7d081fd5c928232e636fa5252b561e4c3ef20174b941abf3696a33"}, - {file = "pyats.topology-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:cc06504bd32ba209291bfaf6a3d79225113f0e7783d316b8ef4440866afa6317"}, - {file = "pyats.topology-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:d4645ed9648c7c1c55b68df284b1e089cdb4b1220478a86514ef06c98ce58a0a"}, - {file = "pyats.topology-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:a7dd631f24e3c40999b770faf8cb75c5ca587dc55ea0526564bae49efcc176db"}, - {file = "pyats.topology-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:12dccd116f21583fc1dc26d753a557ef293c421c02b2c64bdd3938f230684d78"}, - {file = "pyats.topology-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:511f67ba8019ae1c8e049f722f5aec9baef8e444e6674361659d11680b18fee5"}, - {file = "pyats.topology-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:10f0ea999cbfae81f5f080ddf5ea12452d801f6b25cbad21178b076986723624"}, - {file = "pyats.topology-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:f8e8dd907e98a846abcc12fdb83788a5074f5ee46a8f32f6ffc343589bd8b612"}, - {file = "pyats.topology-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:951c48f206f51b819163f5b61a52246c579fccbed9478485784fbb895474d81e"}, - {file = "pyats.topology-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2bb3cead2a77d48c753267b620cf82e117d61e1f2f98c4b759c4755554f121bb"}, - {file = "pyats.topology-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:c21a2fe23217c024e70087d62531216335762dc253d83399334e7449bbac4b02"}, - {file = "pyats.topology-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:cd4677b66197b73905acaa590e13cf422f00bc16de0c2f4cb5d4e93103b0485a"}, - {file = "pyats.topology-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d1398aead0542c8180dc2a3fbb8bc9ef00948893737c5e160755a3f403985272"}, - {file = "pyats.topology-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:4eee506769de1981c3904d63fd75657eee440eb66419c03c5f04d03367750789"}, - {file = "pyats.topology-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:596c689bfe82a7100a3dee87fbda9842861ed29ab39bc3cff8331cd556174ede"}, -] - -[package.dependencies] -"pyats.connections" = ">=24.5.0,<24.6.0" -"pyats.datastructures" = ">=24.5.0,<24.6.0" -"pyats.utils" = ">=24.5.0,<24.6.0" + {file = "pyats.topology-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0216938d132255384ebf1d1f796f16e247383a107c2901d784d7cc82ba8af1d0"}, + {file = "pyats.topology-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:22c672d66e2bd2a1bfbb82bd67e853ae5e7cbe7f6db555d16a779ba1e4df3c2c"}, + {file = "pyats.topology-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:ae0fb6596a1d8623bc00ecca2f34307fef61bf57ea35f8cd36335b82c1a61ddf"}, + {file = "pyats.topology-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:f36898374dfaca24ba4c1345c2035b32d31610f09466c57c99bdf6da4c06362e"}, + {file = "pyats.topology-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:57de54b7b0514662f5a74d48203c75b47df7233f326d6bfb9f6de900ed2d6694"}, + {file = "pyats.topology-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:9067f39c0a95116f8c8817ebc5febd50e245695abf8345bdc8fa785cd2365883"}, + {file = "pyats.topology-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:619a3d5a2b7576ab1975f27b0d9c31223689cc04881d1dda85b802d34deb1fd9"}, + {file = "pyats.topology-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:f44f867456667ffb7f6ac42642e388a335e961abe17cfd5e26f4cb3dee097f01"}, + {file = "pyats.topology-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:072e663dc162e85cd7cfa3ca5b78a0da90127f955b35e6e9a3d4ca6d9d86fd10"}, + {file = "pyats.topology-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:aa8bc1f0578852cdb54fc99cbf4573282058b47b1f5f0ab45418bceb5a891db4"}, + {file = "pyats.topology-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:1c2c97796bee3697b0a031f27c5be95fb28f3d5ab230533968f6623461154410"}, + {file = "pyats.topology-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:e3edda530bd31f1ff90747a162318f6966d2698624611ad0d9a505eacde08c81"}, + {file = "pyats.topology-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:e492f4786d34b43769263c035a09b05de955994f00fec26bf9195ad09b5e91d7"}, + {file = "pyats.topology-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:60243775cf8a306ccb49e6ea7fb90c823cb62cac8b44e8485e41caa09e176522"}, + {file = "pyats.topology-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:42eeed933175e7d300f973aa4dcb74d11a097957d56a2a303c6229f219a0e9da"}, + {file = "pyats.topology-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c06e001621a2446b4d5ed610a881ef6d0acebad710e23124e845568d8c35b4f9"}, +] + +[package.dependencies] +"pyats.connections" = ">=24.6.0,<24.7.0" +"pyats.datastructures" = ">=24.6.0,<24.7.0" +"pyats.utils" = ">=24.6.0,<24.7.0" pyyaml = "*" yamllint = "*" @@ -2212,33 +2330,34 @@ dev = ["Sphinx", "sphinx-rtd-theme"] [[package]] name = "pyats-utils" -version = "24.5" +version = "24.6" description = "pyATS Utils: Utilities Module" optional = false python-versions = ">=3.8" files = [ - {file = "pyats.utils-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:01d601bf9157b889b572427c7ba5adf4d22a029b0126a2c1c30600754f5e201b"}, - {file = "pyats.utils-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:fec88ca74d5530afdab9b0b5e22819b09a1c9bc6e3f65cb1c0711ccab9ab1761"}, - {file = "pyats.utils-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e0844cb4af0c70fe1fff85d0a9f842a916ae004b72bdccd036584d4cd46a9274"}, - {file = "pyats.utils-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:4346d03aff5a9aa45719ace1e00ebfe363e3446ae151f2e1ffdf1b4886488ee7"}, - {file = "pyats.utils-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:df326ccb00813cb1bf5581e1195d2d2b284a27937bd0628fcfb55c2cd389a5f1"}, - {file = "pyats.utils-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:b18718fbdbb9b1f16042121620545f127e7c468c17523bd3ba25e2bf70743c84"}, - {file = "pyats.utils-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3c42ce340f174f8cfedf35fd44487609e88b89aa237456d51922907574a97525"}, - {file = "pyats.utils-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:34b336cfa0d0d075cc57152ce870318d95d4a969fc527405098de3a98ce9f462"}, - {file = "pyats.utils-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:7b79b76b507d32aa06301ee2e85718373600c0dd3fa10d5ccacc1421e1578670"}, - {file = "pyats.utils-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:ba92dc28ad1a6b2401e624b7150685b2cb241fc9a6734e8182797ebd39ee0417"}, - {file = "pyats.utils-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:6baf2ddd9d6e1dde0f4284003447e4c5fa342b14756611b8d4f9b3ec8003eedb"}, - {file = "pyats.utils-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:6a92d28587f5a30c94aebc97754ae066874757cdeea1b5dcf463534311ea9904"}, - {file = "pyats.utils-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:95db5aa13dc0bf3b3ade70122d7882c9a1765b0bedcba28631263b33dd982408"}, - {file = "pyats.utils-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:4b8f2a0c7f3d500d7bf53f3bf1d88eb2eba880047e4503c29ff5a480634c3fd9"}, - {file = "pyats.utils-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f9a605cad3b5082b32fbd84e0b9dd545c041383e4aa93fb27ef9ac9afbe8dd67"}, + {file = "pyats.utils-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:2efa376a613eafc9819d43e2eec93c34305baee0b567ef3e8b912913edc64e12"}, + {file = "pyats.utils-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:d360d45f25cc43debc862348b07d445290f589e8a5be01cfc6c6a30e6e1e3fd4"}, + {file = "pyats.utils-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:f0a5f946150197d5e3803261fad5cb81282d3f63d3f3e3221410e57344202296"}, + {file = "pyats.utils-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:35562cd4cac177c4ae905bbd5e93b4bc14d57c0b20ed9f4d1582caab77a72f01"}, + {file = "pyats.utils-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:805d2575dc91f5b597973e71ffa01d5c379bee046cef9c8589650f17305017a8"}, + {file = "pyats.utils-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:61e5b5666ad9dd4f0347bce408c834f9ad8284ede974f1a0a8e70461d6d5e2cb"}, + {file = "pyats.utils-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:aaf78973272386ef5908880aabc5810838a5a63ea7598c9f8e01ffc4fa1781b0"}, + {file = "pyats.utils-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:2ce1f8eff9a578e68cbb6836b5a93d53228757d8952fd591c3387f0245fa3e42"}, + {file = "pyats.utils-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:0efa8e681a59de08928bb624630578292caf055fff05acf75b47f9937d217ada"}, + {file = "pyats.utils-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:36d7cb00ce92f69fe76b10cc7d48c05d03e79e9e1828d82c28a93d7bd901a4d4"}, + {file = "pyats.utils-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:eaaca9fbdc5117345c3d8d10013cf5f21df6ae7a22a6fccd2be352c462ba31f7"}, + {file = "pyats.utils-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:f458d4c3eba902ab2c08dc2d129d51946651a742c96f25754fc1e404bed6bee6"}, + {file = "pyats.utils-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:5b4c7d1e9113ffa73fbc3f6320a23478649bc68e345e02ee71d60bece927315e"}, + {file = "pyats.utils-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:674b0cad190acc605bbc34f080f75edd6e46761d31436fdb8996681c6484b603"}, + {file = "pyats.utils-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:b8eff9a2415f71f6ee501ae4b92cb50e380662cf06fc7fd17307868fec150a41"}, + {file = "pyats.utils-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bf39fbd4a6f9011ec22bc15cddc134d20799587271702af30df43a7d1504fd75"}, ] [package.dependencies] cryptography = "*" distro = "*" -"pyats.datastructures" = ">=24.5.0,<24.6.0" -"pyats.topology" = ">=24.5.0,<24.6.0" +"pyats.datastructures" = ">=24.6.0,<24.7.0" +"pyats.topology" = ">=24.6.0,<24.7.0" [package.extras] dev = ["Sphinx", "requests-mock", "sphinx-rtd-theme"] @@ -2325,13 +2444,13 @@ toml = ["tomli (>=1.2.3)"] [[package]] name = "pyflakes" -version = "2.4.0" +version = "3.2.0" description = "passive checker of Python programs" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pyflakes-2.4.0-py2.py3-none-any.whl", hash = "sha256:3bb3a3f256f4b7968c9c788781e4ff07dce46bdf12339dcda61053375426ee2e"}, - {file = "pyflakes-2.4.0.tar.gz", hash = "sha256:05a85c2872edf37a4ed30b0cce2f6093e1d0581f8c19d7393122da7e25b2b24c"}, + {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"}, + {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, ] [[package]] @@ -2363,20 +2482,20 @@ windows-terminal = ["colorama (>=0.4.6)"] [[package]] name = "pylama" -version = "8.3.8" +version = "8.4.1" description = "Code audit tool for python" optional = false python-versions = ">=3.7" files = [ - {file = "pylama-8.3.8-py3-none-any.whl", hash = "sha256:aff89423f7de118713f638c7f937fa83a5873e3bdf06d413661d9cb8dc5f3a7b"}, - {file = "pylama-8.3.8.tar.gz", hash = "sha256:2dd852fe9312ea6012466cf17ff179668fc3d2716856fcfaaee8ce7876d83620"}, + {file = "pylama-8.4.1-py3-none-any.whl", hash = "sha256:5bbdbf5b620aba7206d688ed9fc917ecd3d73e15ec1a89647037a09fa3a86e60"}, + {file = "pylama-8.4.1.tar.gz", hash = "sha256:2d4f7aecfb5b7466216d48610c7d6bad1c3990c29cdd392ad08259b161e486f6"}, ] [package.dependencies] -mccabe = ">=0.6.1" -pycodestyle = ">=2.8.0" +mccabe = ">=0.7.0" +pycodestyle = ">=2.9.1" pydocstyle = ">=6.1.1" -pyflakes = ">=2.4.0" +pyflakes = ">=2.5.0" [package.extras] all = ["eradicate", "mypy", "pylint", "radon", "vulture"] @@ -2384,7 +2503,8 @@ eradicate = ["eradicate"] mypy = ["mypy"] pylint = ["pylint"] radon = ["radon"] -tests = ["eradicate (>=2.0.0)", "mypy", "pylama-quotes", "pylint (>=2.11.1)", "pytest", "pytest-mypy", "radon (>=5.1.0)", "types-setuptools", "vulture"] +tests = ["eradicate (>=2.0.0)", "mypy", "pylama-quotes", "pylint (>=2.11.1)", "pytest (>=7.1.2)", "pytest-mypy", "radon (>=5.1.0)", "toml", "types-setuptools", "types-toml", "vulture"] +toml = ["toml (>=0.10.2)"] vulture = ["vulture"] [[package]] @@ -2505,27 +2625,25 @@ cryptography = {version = "*", markers = "python_version >= \"3.4\""} [[package]] name = "pytest" -version = "7.1.2" +version = "8.2.2" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.1.2-py3-none-any.whl", hash = "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c"}, - {file = "pytest-7.1.2.tar.gz", hash = "sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45"}, + {file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"}, + {file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"}, ] [package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -tomli = ">=1.0.0" +pluggy = ">=1.5,<2.0" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "python-engineio" @@ -2564,6 +2682,17 @@ six = ">=1.9.0" asyncio-client = ["aiohttp (>=3.4)", "websockets (>=7.0)"] client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] +[[package]] +name = "pywin32-ctypes" +version = "0.2.2" +description = "A (partial) reimplementation of pywin32 using ctypes/cffi" +optional = false +python-versions = ">=3.6" +files = [ + {file = "pywin32-ctypes-0.2.2.tar.gz", hash = "sha256:3426e063bdd5fd4df74a14fa3cf80a0b42845a87e1d1e81f6549f9daec593a60"}, + {file = "pywin32_ctypes-0.2.2-py3-none-any.whl", hash = "sha256:bf490a1a709baf35d688fe0ecf980ed4de11d2b3e37b51e5442587a75d9957e7"}, +] + [[package]] name = "pyyaml" version = "6.0.1" @@ -2680,12 +2809,12 @@ requests = ">=2.0.1,<3.0.0" [[package]] name = "rest-connector" -version = "24.5" +version = "24.6" description = "pyATS REST connection package" optional = false python-versions = "*" files = [ - {file = "rest.connector-24.5-py3-none-any.whl", hash = "sha256:8cd6b458de2830947b8ebe0c4948249796d367ce19af0ecbbe9da5f2d3927767"}, + {file = "rest.connector-24.6-py3-none-any.whl", hash = "sha256:ef7aef50d1fee0e419a21ba182b1f7cb85878f5c2b43b936e9e4fcf82deef5bc"}, ] [package.dependencies] @@ -2696,6 +2825,39 @@ requests = ">=1.15.1" [package.extras] dev = ["Sphinx", "coverage", "requests-mock", "restview", "sphinx-rtd-theme"] +[[package]] +name = "rfc3986" +version = "2.0.0" +description = "Validating URI References per RFC 3986" +optional = false +python-versions = ">=3.7" +files = [ + {file = "rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd"}, + {file = "rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c"}, +] + +[package.extras] +idna2008 = ["idna"] + +[[package]] +name = "rich" +version = "13.7.1" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + [[package]] name = "ruamel-yaml" version = "0.18.6" @@ -2787,20 +2949,35 @@ files = [ [package.dependencies] paramiko = "*" +[[package]] +name = "secretstorage" +version = "3.3.3" +description = "Python bindings to FreeDesktop.org Secret Service API" +optional = false +python-versions = ">=3.6" +files = [ + {file = "SecretStorage-3.3.3-py3-none-any.whl", hash = "sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99"}, + {file = "SecretStorage-3.3.3.tar.gz", hash = "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77"}, +] + +[package.dependencies] +cryptography = ">=2.0" +jeepney = ">=0.6" + [[package]] name = "setuptools" -version = "70.1.1" +version = "70.2.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-70.1.1-py3-none-any.whl", hash = "sha256:a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95"}, - {file = "setuptools-70.1.1.tar.gz", hash = "sha256:937a48c7cdb7a21eb53cd7f9b59e525503aa8abaf3584c730dc5f7a5bec3a650"}, + {file = "setuptools-70.2.0-py3-none-any.whl", hash = "sha256:b8b8060bb426838fbe942479c90296ce976249451118ef566a5a0b7d8b78fb05"}, + {file = "setuptools-70.2.0.tar.gz", hash = "sha256:bd63e505105011b25c3c11f753f7e3b8465ea739efddaccef8f0efac2137bac1"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "six" @@ -2908,36 +3085,35 @@ full = ["cerberus (>=1.3.0,<1.4.0)", "deepdiff (>=5.8.0,<5.9.0)", "jinja2 (>=3.0 [[package]] name = "twine" -version = "1.15.0" +version = "5.1.1" description = "Collection of utilities for publishing packages on PyPI" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "twine-1.15.0-py2.py3-none-any.whl", hash = "sha256:630fadd6e342e725930be6c696537e3f9ccc54331742b16245dab292a17d0460"}, - {file = "twine-1.15.0.tar.gz", hash = "sha256:a3d22aab467b4682a22de4a422632e79d07eebd07ff2a7079effb13f8a693787"}, + {file = "twine-5.1.1-py3-none-any.whl", hash = "sha256:215dbe7b4b94c2c50a7315c0275d2258399280fbb7d04182c7e55e24b5f93997"}, + {file = "twine-5.1.1.tar.gz", hash = "sha256:9aa0825139c02b3434d913545c7b847a21c835e11597f5255842d457da2322db"}, ] [package.dependencies] -pkginfo = ">=1.4.2" -readme-renderer = ">=21.0" -requests = ">=2.5.0,<2.15 || >2.15,<2.16 || >2.16" +importlib-metadata = ">=3.6" +keyring = ">=15.1" +pkginfo = ">=1.8.1,<1.11" +readme-renderer = ">=35.0" +requests = ">=2.20" requests-toolbelt = ">=0.8.0,<0.9.0 || >0.9.0" -setuptools = ">=0.7.0" -tqdm = ">=4.14" - -[package.extras] -keyring = ["keyring"] -with-blake2 = ["pyblake2"] +rfc3986 = ">=1.4.0" +rich = ">=12.0.0" +urllib3 = ">=1.26.0" [[package]] name = "types-paramiko" -version = "3.0.0.2" +version = "3.4.0.20240423" description = "Typing stubs for paramiko" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-paramiko-3.0.0.2.tar.gz", hash = "sha256:9f582a3a96cd9df1ab0a21fb333a3c40f120ccf01aaab326daa0df3887376059"}, - {file = "types_paramiko-3.0.0.2-py3-none-any.whl", hash = "sha256:5328f60d0f83ef90d8196c8b24c6c6124aebf1fa9ab3ccfd72cd3b623512ae61"}, + {file = "types-paramiko-3.4.0.20240423.tar.gz", hash = "sha256:aaa98dda232c47886563d66743d3a8b66c432790c596bc3bdd3f17f91be2a8c1"}, + {file = "types_paramiko-3.4.0.20240423-py3-none-any.whl", hash = "sha256:c56e0d43399a1b909901b1e0375e0ff6ee62e16cd6e00695024abc2e9fe02035"}, ] [package.dependencies] @@ -2945,13 +3121,13 @@ cryptography = ">=37.0.0" [[package]] name = "types-pyyaml" -version = "6.0.12.4" +version = "6.0.12.20240311" description = "Typing stubs for PyYAML" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "types-PyYAML-6.0.12.4.tar.gz", hash = "sha256:ade6e328a5a3df816c47c912c2e1e946ae2bace90744aa73111ee6834b03a314"}, - {file = "types_PyYAML-6.0.12.4-py3-none-any.whl", hash = "sha256:de3bacfc4e0772d9b1baf007c37354f3c34c8952e90307d5155b6de0fc183a67"}, + {file = "types-PyYAML-6.0.12.20240311.tar.gz", hash = "sha256:a9e0f0f88dc835739b0c1ca51ee90d04ca2a897a71af79de9aec5f38cb0a5342"}, + {file = "types_PyYAML-6.0.12.20240311-py3-none-any.whl", hash = "sha256:b845b06a1c7e54b8e5b4c683043de0d9caf205e7434b3edc678ff2411979b8f6"}, ] [[package]] @@ -2967,32 +3143,33 @@ files = [ [[package]] name = "unicon" -version = "24.5" +version = "24.6" description = "Unicon Connection Library" optional = false python-versions = ">=3.8" files = [ - {file = "unicon-24.5-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:7b722853e88e2833d242f653c4853034c97587286e56f27bb24b4d8e17d6e21a"}, - {file = "unicon-24.5-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:d10e048ed34163104e84c4365ce32fc05887b96b6d9bcb44f543bb3cdb4f7882"}, - {file = "unicon-24.5-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:9fe8fcf4f8888dfa7d2460fb54ed4cf08c0faab8b57ce96f00f38337faf8f23a"}, - {file = "unicon-24.5-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:d081e997827a192d470f96a88fc6cbaed8d81736d9067ac8139b2cfd898e9d50"}, - {file = "unicon-24.5-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:bdf8a9366a0f2e888dcd2caad03ff86d9e1a7d00d3c8f376e2690fbd6fba9096"}, - {file = "unicon-24.5-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:b9d4b0c92c201755844bc09522fd2c6898dd4818f5f2677610855cd313ef5ea6"}, - {file = "unicon-24.5-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:6af745e2f2e0fc1e3b2ba839fb12a791f14ad883bf9a951b3061aada883b509c"}, - {file = "unicon-24.5-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:ac72ac50d6d983067cd10b1904790c166243ebf2a48a35ec03f402aa27e49c9f"}, - {file = "unicon-24.5-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:5df2df13c87d8c87fb1edc4cb3cd25f12c0152b6c9194a29c0c3fa2806605299"}, - {file = "unicon-24.5-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f1d072f05fc02707c435f1b12d9e70f74a37b1f5d537dd8b929db5b51120f9bd"}, - {file = "unicon-24.5-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:db862c848918664c04360238a30ea2848f562a304fd49e5c40575e602595b17f"}, - {file = "unicon-24.5-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:2be8b4f6fca40814f70a5cf339362202b8da1acc5dc21941471322253488d2f2"}, - {file = "unicon-24.5-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:c1025e4f2666eb9cb37282bdd965ad455b27f61599d18b91e9f229c72e3d3318"}, - {file = "unicon-24.5-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:e490f00805ee47072898d6283f106075f757aff39163247ca9db9927797ec35c"}, - {file = "unicon-24.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c802d9dcbb734d6310223f7c631d40fb5711317dba5d91b68ad31c618a2fd058"}, + {file = "unicon-24.6-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:12fd03ce82a9878c2de5037eef7240185272cbc2cf5f9505760982e9619e1eee"}, + {file = "unicon-24.6-cp310-cp310-manylinux2014_aarch64.whl", hash = "sha256:03e07fc3d3cce96612b2b7dcf27af654608dbf5641271eb1939e0a2fbab84b45"}, + {file = "unicon-24.6-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e24a95eded51f3a762cb110d5348de2c766905320df266c086f938d2331a4686"}, + {file = "unicon-24.6-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e665afb7db64202cdfc7baefd2d310ce6dd673718e1bbe262dd04caa20f38bc5"}, + {file = "unicon-24.6-cp311-cp311-manylinux2014_aarch64.whl", hash = "sha256:f3a4b56ed798473a6f4a5152c4353a0d699157c94ad39afdb154677e32b991aa"}, + {file = "unicon-24.6-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:13bec6229c103bf36167e385a1604d17c6fd0a1806b240e27908932aa945d817"}, + {file = "unicon-24.6-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:574debb57b4275263eed2b4d7b322523e0805d61ee8988581df996f55820ef02"}, + {file = "unicon-24.6-cp312-cp312-manylinux2014_aarch64.whl", hash = "sha256:497080eeeb57a7241afbffd2494404c5439ca9bc9a26729856bd31f7f84028a3"}, + {file = "unicon-24.6-cp312-cp312-manylinux2014_x86_64.whl", hash = "sha256:9e4b996ad83c3d32b728a3d853fd429e5a7d64cc030827d72f621c187f1fab02"}, + {file = "unicon-24.6-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:5c68eefa90261b3afbd3ccc9e9734dd003ecedfee3f4fc45c4faf41bf8979069"}, + {file = "unicon-24.6-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:8effe50bea972f0c6298913eecff3b4ffb1aa14bd00783c7dedec25646e2b983"}, + {file = "unicon-24.6-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:edd34071905e5301df8a8015899c91b9087556b679302d9c6897b7535e459ca7"}, + {file = "unicon-24.6-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:1c28a0278bdc82236005cfcd679c80d0fe0792d48c06982f71ef05cd2a1d0339"}, + {file = "unicon-24.6-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:1ad47fbf42498dd7fceb8f2f19e11c5b77bb1b6ecbb0352f5b66fd38537df98f"}, + {file = "unicon-24.6-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:39107b21146481873134823f29dc167b951602a42f4f54f62e0c15e1e8710923"}, + {file = "unicon-24.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:15199fed580939809a8c3cc9942f85aa5d18a1f65956d1a398b9e73d1247965d"}, ] [package.dependencies] dill = "*" pyyaml = "*" -"unicon.plugins" = ">=24.5.0,<24.6.0" +"unicon.plugins" = ">=24.6.0,<24.7.0" [package.extras] dev = ["Sphinx", "cisco-distutils", "coverage", "restview", "sphinx-rtd-theme", "sphinxcontrib-mockautodoc", "sphinxcontrib-napoleon"] @@ -3001,18 +3178,18 @@ robot = ["robotframework"] [[package]] name = "unicon-plugins" -version = "24.5" +version = "24.6" description = "Unicon Connection Library Plugins" optional = false python-versions = "*" files = [ - {file = "unicon.plugins-24.5-py3-none-any.whl", hash = "sha256:ad54588b16707bfdb74c919850f9d652b0790c8a60583e0c92400fff5aab3c4d"}, + {file = "unicon.plugins-24.6-py3-none-any.whl", hash = "sha256:b8bad0f37b297bba9cb619147b8428ed545e24124bba452a85a8ec9baf5aaa1b"}, ] [package.dependencies] PrettyTable = "*" pyyaml = "*" -unicon = ">=24.5.0,<24.6.0" +unicon = ">=24.6.0,<24.7.0" [package.extras] dev = ["Sphinx", "coverage", "pip", "restview", "setuptools", "sphinx-rtd-theme", "sphinxcontrib-mockautodoc", "sphinxcontrib-napoleon", "wheel"] @@ -3090,12 +3267,12 @@ dev = ["doc8", "flake8", "flake8-import-order", "rstcheck[sphinx]", "sphinx"] [[package]] name = "yang-connector" -version = "24.5" +version = "24.6" description = "YANG defined interface API protocol connector" optional = false python-versions = "*" files = [ - {file = "yang.connector-24.5-py3-none-any.whl", hash = "sha256:d1a0ab2603826465942c62ef15f18af4c1e183c24937933483b338ccf9a01fa8"}, + {file = "yang.connector-24.6-py3-none-any.whl", hash = "sha256:c205c2c343931b1d6835b8e98a13c0cd0f9fef54f92ca633071e51369f97a7b6"}, ] [package.dependencies] @@ -3229,4 +3406,4 @@ test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", [metadata] lock-version = "2.0" python-versions = ">=3.8,<4.0" -content-hash = "53385e66883312bdc81280c36bf0db6c67f2475339266f528a17914e76541178" +content-hash = "b2f6a481680f297df52f338c236787dbdb038bdf0b9e489891453503bc7efe50" diff --git a/pyproject.toml b/pyproject.toml index 88bcaf253..40b2d52a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,28 +22,25 @@ classifiers = [ [tool.poetry.dependencies] python = ">=3.8,<4.0" +setuptools = ">=65.0.0" paramiko = ">=2.9.5" scp = ">=0.13.6" pyyaml = ">=5.3" textfsm = ">=1.1.3" -ntc-templates = ">=2.0.0" +ntc-templates = ">=3.1.0" pyserial = ">=3.3" -# Needed for PY3.13 and cffi -cffi = [ - {version = ">=1.0.0", python = "<3.13"}, - {version = ">=1.17.0rc1", python = ">=3.13"} -] +cffi = ">=1.17.0rc1" [tool.poetry.group.dev.dependencies] -black = "22.3.0" -mypy = "1.0.0" +black = "24.4.2" +mypy = "1.10.1" mypy-extensions = "1.0.0" PyYAML = "6.0.1" -pytest = "7.1.2" +pytest = "8.2.2" # Issue with build failure on pyflakes 2.5.0 -pyflakes = "2.4.0" -pylama = "8.3.8" -twine = "1.15.0" +pyflakes = "3.2.0" +pylama = "8.4.1" +twine = "5.1.1" # docutils/poetry release issue on 0.21.1 docutils = [ {version = "<=0.20", python = "3.8.*"}, @@ -51,8 +48,8 @@ docutils = [ ] pysnmp = "4.4.12" pdoc3 = "0.10.0" -types-paramiko = "3.0.0.2" -types-PyYAML = "6.0.12.4" +types-paramiko = "3.4.0.20240423" +types-PyYAML = "6.0.12.20240311" [tool.poetry.group.parsers] optional = true @@ -60,7 +57,7 @@ optional = true [tool.poetry.group.parsers.dependencies] pyats = ">=24.5" genie = ">=24.5" -ttp = ">=0.9.0" +ttp = ">=0.9.5" [tool.poetry.scripts] "netmiko-grep" = "netmiko.cli_tools.netmiko_grep:main_ep" diff --git a/setup.cfg b/setup.cfg index 8c325d066..16b3dfa42 100644 --- a/setup.cfg +++ b/setup.cfg @@ -17,7 +17,7 @@ addopts = -rs [mypy] # The mypy configurations: http://bit.ly/2zEl9WI -python_version = 3.6 +python_version = 3.9 exclude = (netmiko/_telnetlib) check_untyped_defs = True disallow_any_generics = True From bfc51415153c511dec1a978c70fa1c0d513df0e8 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Mon, 8 Jul 2024 14:54:11 -0700 Subject: [PATCH 2/5] Update docs for release 4.4.0 (#3454) --- docs/netmiko/a10/a10_ssh.html | 1 + docs/netmiko/adva/adva_aos_fsp_150_f2.html | 1 + docs/netmiko/adva/adva_aos_fsp_150_f3.html | 1 + docs/netmiko/adva/index.html | 1 + docs/netmiko/alcatel/alcatel_aos_ssh.html | 1 + docs/netmiko/aruba/aruba_aoscx.html | 356 +++++++++++++++ docs/netmiko/aruba/aruba_os.html | 421 ++++++++++++++++++ docs/netmiko/aruba/index.html | 280 +++++++++++- docs/netmiko/base_connection.html | 32 +- docs/netmiko/calix/calix_b6.html | 1 + docs/netmiko/centec/centec_os.html | 1 + docs/netmiko/channel.html | 12 +- docs/netmiko/ciena/ciena_saos.html | 1 + docs/netmiko/cisco/cisco_asa_ssh.html | 1 + docs/netmiko/cisco/cisco_ftd_ssh.html | 1 + docs/netmiko/cisco/cisco_tp_tcce.html | 1 + docs/netmiko/cisco/cisco_viptela.html | 1 + docs/netmiko/cisco/cisco_wlc_ssh.html | 1 + docs/netmiko/cisco/cisco_xr.html | 6 +- docs/netmiko/cisco_base_connection.html | 4 +- docs/netmiko/dell/dell_dnos6.html | 1 + docs/netmiko/dell/dell_force10_ssh.html | 1 + docs/netmiko/dell/dell_os10_ssh.html | 1 + docs/netmiko/dell/dell_powerconnect.html | 1 + docs/netmiko/dell/dell_sonic_ssh.html | 1 + docs/netmiko/digi/digi_transport.html | 1 + docs/netmiko/enterasys/enterasys_ssh.html | 1 + docs/netmiko/ericsson/ericsson_ipos.html | 1 + docs/netmiko/ericsson/ericsson_mltn.html | 1 + docs/netmiko/extreme/extreme_ers_ssh.html | 1 + docs/netmiko/extreme/extreme_exos.html | 1 + docs/netmiko/extreme/extreme_nos_ssh.html | 1 + docs/netmiko/extreme/extreme_slx_ssh.html | 1 + .../netmiko/extreme/extreme_tierraos_ssh.html | 1 + docs/netmiko/extreme/extreme_vsp_ssh.html | 1 + docs/netmiko/fiberstore/fiberstore_fsos.html | 1 + docs/netmiko/huawei/huawei.html | 66 +-- docs/netmiko/huawei/index.html | 22 +- docs/netmiko/index.html | 19 +- docs/netmiko/ipinfusion/index.html | 2 +- docs/netmiko/ipinfusion/ipinfusion_ocnos.html | 16 +- .../netmiko/mellanox/mellanox_mlnxos_ssh.html | 1 + docs/netmiko/mrv/mrv_lx.html | 1 + docs/netmiko/mrv/mrv_ssh.html | 1 + docs/netmiko/netgear/netgear_prosafe_ssh.html | 1 + docs/netmiko/oneaccess/oneaccess_oneos.html | 1 + docs/netmiko/raisecom/index.html | 6 +- docs/netmiko/raisecom/raisecom_roap.html | 26 +- docs/netmiko/ruckus/index.html | 2 +- docs/netmiko/ruckus/ruckus_fastiron.html | 6 +- docs/netmiko/ruijie/ruijie_os.html | 1 + docs/netmiko/scp_functions.html | 1 + docs/netmiko/scp_handler.html | 1 + docs/netmiko/snmp_autodetect.html | 1 + docs/netmiko/sophos/index.html | 12 +- docs/netmiko/sophos/sophos_sfos_ssh.html | 25 +- docs/netmiko/ssh_autodetect.html | 13 + docs/netmiko/telnet_proxy.html | 8 +- .../terminal_server/terminal_server.html | 1 + docs/netmiko/utilities.html | 1 + docs/netmiko/zte/index.html | 2 +- docs/netmiko/zte/zte_zxros.html | 18 +- release_process.txt | 7 +- 63 files changed, 1257 insertions(+), 144 deletions(-) create mode 100644 docs/netmiko/aruba/aruba_aoscx.html create mode 100644 docs/netmiko/aruba/aruba_os.html diff --git a/docs/netmiko/a10/a10_ssh.html b/docs/netmiko/a10/a10_ssh.html index 348d2b42d..e90c924a7 100644 --- a/docs/netmiko/a10/a10_ssh.html +++ b/docs/netmiko/a10/a10_ssh.html @@ -28,6 +28,7 @@

Module netmiko.a10.a10_ssh

Expand source code
"""A10 support."""
+
 from netmiko.cisco_base_connection import CiscoSSHConnection
 
 
diff --git a/docs/netmiko/adva/adva_aos_fsp_150_f2.html b/docs/netmiko/adva/adva_aos_fsp_150_f2.html
index 49f399bce..c4c58c8bc 100644
--- a/docs/netmiko/adva/adva_aos_fsp_150_f2.html
+++ b/docs/netmiko/adva/adva_aos_fsp_150_f2.html
@@ -28,6 +28,7 @@ 

Module netmiko.adva.adva_aos_fsp_150_f2

Expand source code
"""Adva support."""
+
 import re
 from typing import Any, Optional
 from netmiko.no_enable import NoEnable
diff --git a/docs/netmiko/adva/adva_aos_fsp_150_f3.html b/docs/netmiko/adva/adva_aos_fsp_150_f3.html
index e0bc8f3ca..b7bf78950 100644
--- a/docs/netmiko/adva/adva_aos_fsp_150_f3.html
+++ b/docs/netmiko/adva/adva_aos_fsp_150_f3.html
@@ -28,6 +28,7 @@ 

Module netmiko.adva.adva_aos_fsp_150_f3

Expand source code
"""Adva F3 Device Support"""
+
 import re
 from typing import (
     Optional,
diff --git a/docs/netmiko/adva/index.html b/docs/netmiko/adva/index.html
index dcc0045c2..97514c95f 100644
--- a/docs/netmiko/adva/index.html
+++ b/docs/netmiko/adva/index.html
@@ -28,6 +28,7 @@ 

Module netmiko.adva

Expand source code
"""Adva Device Drivers"""
+
 from netmiko.adva.adva_aos_fsp_150_f2 import AdvaAosFsp150F2SSH
 from netmiko.adva.adva_aos_fsp_150_f3 import AdvaAosFsp150F3SSH
 
diff --git a/docs/netmiko/alcatel/alcatel_aos_ssh.html b/docs/netmiko/alcatel/alcatel_aos_ssh.html
index fd67d123d..259c8d896 100644
--- a/docs/netmiko/alcatel/alcatel_aos_ssh.html
+++ b/docs/netmiko/alcatel/alcatel_aos_ssh.html
@@ -28,6 +28,7 @@ 

Module netmiko.alcatel.alcatel_aos_ssh

Expand source code
"""Alcatel-Lucent Enterprise AOS support (AOS6 and AOS8)."""
+
 from netmiko.no_enable import NoEnable
 from netmiko.no_config import NoConfig
 from netmiko.cisco_base_connection import CiscoSSHConnection
diff --git a/docs/netmiko/aruba/aruba_aoscx.html b/docs/netmiko/aruba/aruba_aoscx.html
new file mode 100644
index 000000000..f07f415ae
--- /dev/null
+++ b/docs/netmiko/aruba/aruba_aoscx.html
@@ -0,0 +1,356 @@
+
+
+
+
+
+
+netmiko.aruba.aruba_aoscx API documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

Module netmiko.aruba.aruba_aoscx

+
+
+

Aruba AOS CX support.

+

For use with Aruba AOS CX devices.

+
+ +Expand source code + +
"""
+Aruba AOS CX support.
+
+For use with Aruba AOS CX devices.
+
+"""
+
+from typing import Any
+from netmiko.cisco_base_connection import CiscoSSHConnection
+
+
+class ArubaCxSSH(CiscoSSHConnection):
+    """Aruba AOS CX support"""
+
+    def __init__(self, **kwargs: Any) -> None:
+        if kwargs.get("default_enter") is None:
+            kwargs["default_enter"] = "\r"
+        return super().__init__(**kwargs)
+
+    def session_preparation(self) -> None:
+        self.ansi_escape_codes = True
+        self._test_channel_read(pattern=r"[>#]")
+        self.set_base_prompt()
+        self.disable_paging(command="no page")
+
+    def check_config_mode(
+        self,
+        check_string: str = "(config)#",
+        pattern: str = r"[>#]",
+        force_regex: bool = False,
+    ) -> bool:
+        return super().check_config_mode(check_string=check_string, pattern=pattern)
+
+    def config_mode(
+        self,
+        config_command: str = "configure term",
+        pattern: str = "",
+        re_flags: int = 0,
+    ) -> str:
+        """Aruba auto completes on space so 'configure' needs fully spelled-out."""
+        return super().config_mode(
+            config_command=config_command, pattern=pattern, re_flags=re_flags
+        )
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class ArubaCxSSH +(**kwargs: Any) +
+
+

Aruba AOS CX support

+
    Initialize attributes for establishing connection to target device.
+
+    :param ip: IP address of target device. Not required if <code>host</code> is
+        provided.
+
+    :param host: Hostname of target device. Not required if <code>ip</code> is
+            provided.
+
+    :param username: Username to authenticate against target device if
+            required.
+
+    :param password: Password to authenticate against target device if
+            required.
+
+    :param secret: The enable password if target device requires one.
+
+    :param port: The destination port used to connect to the target
+            device.
+
+    :param device_type: Class selection based on device type.
+
+    :param verbose: Enable additional messages to standard output.
+
+    :param global_delay_factor: Multiplication factor affecting Netmiko delays (default: 1).
+
+    :param use_keys: Connect to target device using SSH keys.
+
+    :param key_file: Filename path of the SSH key file to use.
+
+    :param pkey: SSH key object to use.
+
+    :param passphrase: Passphrase to use for encrypted key; password will be used for key
+            decryption if not specified.
+
+    :param disabled_algorithms: Dictionary of SSH algorithms to disable. Refer to the Paramiko
+            documentation for a description of the expected format.
+
+    :param disable_sha2_fix: Boolean that fixes Paramiko issue with missing server-sig-algs
+        <https://github.com/paramiko/paramiko/issues/1961> (default: False)
+
+    :param allow_agent: Enable use of SSH key-agent.
+
+    :param ssh_strict: Automatically reject unknown SSH host keys (default: False, which
+            means unknown SSH host keys will be accepted).
+
+    :param system_host_keys: Load host keys from the users known_hosts file.
+
+    :param alt_host_keys: If <code>True</code> host keys will be loaded from the file specified in
+            alt_key_file.
+
+    :param alt_key_file: SSH host key file to use (if alt_host_keys=True).
+
+    :param ssh_config_file: File name of OpenSSH configuration file.
+
+    :param conn_timeout: TCP connection timeout.
+
+    :param session_timeout: Set a timeout for parallel requests.
+
+    :param auth_timeout: Set a timeout (in seconds) to wait for an authentication response.
+
+    :param banner_timeout: Set a timeout to wait for the SSH banner (pass to Paramiko).
+
+    :param read_timeout_override: Set a timeout that will override the default read_timeout
+            of both send_command and send_command_timing. This is useful for 3rd party
+            libraries where directly accessing method arguments might be impractical.
+
+    :param keepalive: Send SSH keepalive packets at a specific interval, in seconds.
+            Currently defaults to 0, for backwards compatibility (it will not attempt
+            to keep the connection alive).
+
+    :param default_enter: Character(s) to send to correspond to enter key (default:
+
+

).

+
    :param response_return: Character(s) to use in normalized return data to represent
+            enter key (default:
+
+

)

+
    :param serial_settings: Dictionary of settings for use with serial port (pySerial).
+
+    :param fast_cli: Provide a way to optimize for performance. Converts select_delay_factor
+            to select smallest of global and specific. Sets default global_delay_factor to .1
+            (default: True)
+
+    :param session_log: File path, SessionLog object, or BufferedIOBase subclass object
+            to write the session log to.
+
+    :param session_log_record_writes: The session log generally only records channel reads due
+            to eliminate command duplication due to command echo. You can enable this if you
+            want to record both channel reads and channel writes in the log (default: False).
+
+    :param session_log_file_mode: "write" or "append" for session_log file mode
+            (default: "write")
+
+    :param allow_auto_change: Allow automatic configuration changes for terminal settings.
+            (default: False)
+
+    :param encoding: Encoding to be used when writing bytes to the output channel.
+            (default: "utf-8")
+
+    :param sock: An open socket or socket-like object (such as a <code>.Channel</code>) to use for
+            communication to the target host (default: None).
+
+    :param sock_telnet: A dictionary of telnet socket parameters (SOCKS proxy). See
+            telnet_proxy.py code for details.
+
+    :param global_cmd_verify: Control whether command echo verification is enabled or disabled
+            (default: None). Global attribute takes precedence over function <code>cmd\_verify</code>
+            argument. Value of <code>None</code> indicates to use function <code>cmd\_verify</code> argument.
+
+    :param auto_connect: Control whether Netmiko automatically establishes the connection as
+            part of the object creation (default: True).
+
+    :param delay_factor_compat: Set send_command and send_command_timing back to using Netmiko
+            3.x behavior for delay_factor/global_delay_factor/max_loops. This argument will be
+            eliminated in Netmiko 5.x (default: False).
+
+    :param disable_lf_normalization: Disable Netmiko's linefeed normalization behavior
+            (default: False)
+
+
+ +Expand source code + +
class ArubaCxSSH(CiscoSSHConnection):
+    """Aruba AOS CX support"""
+
+    def __init__(self, **kwargs: Any) -> None:
+        if kwargs.get("default_enter") is None:
+            kwargs["default_enter"] = "\r"
+        return super().__init__(**kwargs)
+
+    def session_preparation(self) -> None:
+        self.ansi_escape_codes = True
+        self._test_channel_read(pattern=r"[>#]")
+        self.set_base_prompt()
+        self.disable_paging(command="no page")
+
+    def check_config_mode(
+        self,
+        check_string: str = "(config)#",
+        pattern: str = r"[>#]",
+        force_regex: bool = False,
+    ) -> bool:
+        return super().check_config_mode(check_string=check_string, pattern=pattern)
+
+    def config_mode(
+        self,
+        config_command: str = "configure term",
+        pattern: str = "",
+        re_flags: int = 0,
+    ) -> str:
+        """Aruba auto completes on space so 'configure' needs fully spelled-out."""
+        return super().config_mode(
+            config_command=config_command, pattern=pattern, re_flags=re_flags
+        )
+
+

Ancestors

+ +

Methods

+
+
+def config_mode(self, config_command: str = 'configure term', pattern: str = '', re_flags: int = 0) ‑> str +
+
+

Aruba auto completes on space so 'configure' needs fully spelled-out.

+
+ +Expand source code + +
def config_mode(
+    self,
+    config_command: str = "configure term",
+    pattern: str = "",
+    re_flags: int = 0,
+) -> str:
+    """Aruba auto completes on space so 'configure' needs fully spelled-out."""
+    return super().config_mode(
+        config_command=config_command, pattern=pattern, re_flags=re_flags
+    )
+
+
+
+

Inherited members

+ +
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/netmiko/aruba/aruba_os.html b/docs/netmiko/aruba/aruba_os.html new file mode 100644 index 000000000..5f6e78aa2 --- /dev/null +++ b/docs/netmiko/aruba/aruba_os.html @@ -0,0 +1,421 @@ + + + + + + +netmiko.aruba.aruba_os API documentation + + + + + + + + + + + +
+
+
+

Module netmiko.aruba.aruba_os

+
+
+

Aruba OS support.

+

For use with Aruba OS Controllers.

+
+ +Expand source code + +
"""
+Aruba OS support.
+
+For use with Aruba OS Controllers.
+
+"""
+
+from typing import Any
+from netmiko.cisco_base_connection import CiscoSSHConnection
+
+
+class ArubaOsSSH(CiscoSSHConnection):
+    """Aruba OS support"""
+
+    def __init__(self, **kwargs: Any) -> None:
+        if kwargs.get("default_enter") is None:
+            kwargs["default_enter"] = "\r"
+        # Aruba has an auto-complete on space behavior that is problematic
+        if kwargs.get("global_cmd_verify") is None:
+            kwargs["global_cmd_verify"] = False
+        return super().__init__(**kwargs)
+
+    def session_preparation(self) -> None:
+        """Aruba OS requires enable mode to disable paging."""
+        # Aruba switches output ansi codes
+        self.ansi_escape_codes = True
+        self._test_channel_read(pattern=r"[>#]")
+        self.set_base_prompt()
+        self.enable()
+        self.disable_paging(command="no paging")
+
+    def check_config_mode(
+        self,
+        check_string: str = "(config) #",
+        pattern: str = r"[>#]",
+        force_regex: bool = False,
+    ) -> bool:
+        """
+        Checks if the device is in configuration mode or not.
+
+        Aruba uses "(<controller name>) (config) #" as config prompt
+        """
+        return super().check_config_mode(check_string=check_string, pattern=pattern)
+
+    def config_mode(
+        self,
+        config_command: str = "configure term",
+        pattern: str = "",
+        re_flags: int = 0,
+    ) -> str:
+        """Aruba auto completes on space so 'configure' needs fully spelled-out."""
+        return super().config_mode(
+            config_command=config_command, pattern=pattern, re_flags=re_flags
+        )
+
+
+
+
+
+
+
+
+
+

Classes

+
+
+class ArubaOsSSH +(**kwargs: Any) +
+
+

Aruba OS support

+
    Initialize attributes for establishing connection to target device.
+
+    :param ip: IP address of target device. Not required if <code>host</code> is
+        provided.
+
+    :param host: Hostname of target device. Not required if <code>ip</code> is
+            provided.
+
+    :param username: Username to authenticate against target device if
+            required.
+
+    :param password: Password to authenticate against target device if
+            required.
+
+    :param secret: The enable password if target device requires one.
+
+    :param port: The destination port used to connect to the target
+            device.
+
+    :param device_type: Class selection based on device type.
+
+    :param verbose: Enable additional messages to standard output.
+
+    :param global_delay_factor: Multiplication factor affecting Netmiko delays (default: 1).
+
+    :param use_keys: Connect to target device using SSH keys.
+
+    :param key_file: Filename path of the SSH key file to use.
+
+    :param pkey: SSH key object to use.
+
+    :param passphrase: Passphrase to use for encrypted key; password will be used for key
+            decryption if not specified.
+
+    :param disabled_algorithms: Dictionary of SSH algorithms to disable. Refer to the Paramiko
+            documentation for a description of the expected format.
+
+    :param disable_sha2_fix: Boolean that fixes Paramiko issue with missing server-sig-algs
+        <https://github.com/paramiko/paramiko/issues/1961> (default: False)
+
+    :param allow_agent: Enable use of SSH key-agent.
+
+    :param ssh_strict: Automatically reject unknown SSH host keys (default: False, which
+            means unknown SSH host keys will be accepted).
+
+    :param system_host_keys: Load host keys from the users known_hosts file.
+
+    :param alt_host_keys: If <code>True</code> host keys will be loaded from the file specified in
+            alt_key_file.
+
+    :param alt_key_file: SSH host key file to use (if alt_host_keys=True).
+
+    :param ssh_config_file: File name of OpenSSH configuration file.
+
+    :param conn_timeout: TCP connection timeout.
+
+    :param session_timeout: Set a timeout for parallel requests.
+
+    :param auth_timeout: Set a timeout (in seconds) to wait for an authentication response.
+
+    :param banner_timeout: Set a timeout to wait for the SSH banner (pass to Paramiko).
+
+    :param read_timeout_override: Set a timeout that will override the default read_timeout
+            of both send_command and send_command_timing. This is useful for 3rd party
+            libraries where directly accessing method arguments might be impractical.
+
+    :param keepalive: Send SSH keepalive packets at a specific interval, in seconds.
+            Currently defaults to 0, for backwards compatibility (it will not attempt
+            to keep the connection alive).
+
+    :param default_enter: Character(s) to send to correspond to enter key (default:
+
+

).

+
    :param response_return: Character(s) to use in normalized return data to represent
+            enter key (default:
+
+

)

+
    :param serial_settings: Dictionary of settings for use with serial port (pySerial).
+
+    :param fast_cli: Provide a way to optimize for performance. Converts select_delay_factor
+            to select smallest of global and specific. Sets default global_delay_factor to .1
+            (default: True)
+
+    :param session_log: File path, SessionLog object, or BufferedIOBase subclass object
+            to write the session log to.
+
+    :param session_log_record_writes: The session log generally only records channel reads due
+            to eliminate command duplication due to command echo. You can enable this if you
+            want to record both channel reads and channel writes in the log (default: False).
+
+    :param session_log_file_mode: "write" or "append" for session_log file mode
+            (default: "write")
+
+    :param allow_auto_change: Allow automatic configuration changes for terminal settings.
+            (default: False)
+
+    :param encoding: Encoding to be used when writing bytes to the output channel.
+            (default: "utf-8")
+
+    :param sock: An open socket or socket-like object (such as a <code>.Channel</code>) to use for
+            communication to the target host (default: None).
+
+    :param sock_telnet: A dictionary of telnet socket parameters (SOCKS proxy). See
+            telnet_proxy.py code for details.
+
+    :param global_cmd_verify: Control whether command echo verification is enabled or disabled
+            (default: None). Global attribute takes precedence over function <code>cmd\_verify</code>
+            argument. Value of <code>None</code> indicates to use function <code>cmd\_verify</code> argument.
+
+    :param auto_connect: Control whether Netmiko automatically establishes the connection as
+            part of the object creation (default: True).
+
+    :param delay_factor_compat: Set send_command and send_command_timing back to using Netmiko
+            3.x behavior for delay_factor/global_delay_factor/max_loops. This argument will be
+            eliminated in Netmiko 5.x (default: False).
+
+    :param disable_lf_normalization: Disable Netmiko's linefeed normalization behavior
+            (default: False)
+
+
+ +Expand source code + +
class ArubaOsSSH(CiscoSSHConnection):
+    """Aruba OS support"""
+
+    def __init__(self, **kwargs: Any) -> None:
+        if kwargs.get("default_enter") is None:
+            kwargs["default_enter"] = "\r"
+        # Aruba has an auto-complete on space behavior that is problematic
+        if kwargs.get("global_cmd_verify") is None:
+            kwargs["global_cmd_verify"] = False
+        return super().__init__(**kwargs)
+
+    def session_preparation(self) -> None:
+        """Aruba OS requires enable mode to disable paging."""
+        # Aruba switches output ansi codes
+        self.ansi_escape_codes = True
+        self._test_channel_read(pattern=r"[>#]")
+        self.set_base_prompt()
+        self.enable()
+        self.disable_paging(command="no paging")
+
+    def check_config_mode(
+        self,
+        check_string: str = "(config) #",
+        pattern: str = r"[>#]",
+        force_regex: bool = False,
+    ) -> bool:
+        """
+        Checks if the device is in configuration mode or not.
+
+        Aruba uses "(<controller name>) (config) #" as config prompt
+        """
+        return super().check_config_mode(check_string=check_string, pattern=pattern)
+
+    def config_mode(
+        self,
+        config_command: str = "configure term",
+        pattern: str = "",
+        re_flags: int = 0,
+    ) -> str:
+        """Aruba auto completes on space so 'configure' needs fully spelled-out."""
+        return super().config_mode(
+            config_command=config_command, pattern=pattern, re_flags=re_flags
+        )
+
+

Ancestors

+ +

Methods

+
+
+def check_config_mode(self, check_string: str = '(config) #', pattern: str = '[>#]', force_regex: bool = False) ‑> bool +
+
+

Checks if the device is in configuration mode or not.

+

Aruba uses "() (config) #" as config prompt

+
+ +Expand source code + +
def check_config_mode(
+    self,
+    check_string: str = "(config) #",
+    pattern: str = r"[>#]",
+    force_regex: bool = False,
+) -> bool:
+    """
+    Checks if the device is in configuration mode or not.
+
+    Aruba uses "(<controller name>) (config) #" as config prompt
+    """
+    return super().check_config_mode(check_string=check_string, pattern=pattern)
+
+
+
+def config_mode(self, config_command: str = 'configure term', pattern: str = '', re_flags: int = 0) ‑> str +
+
+

Aruba auto completes on space so 'configure' needs fully spelled-out.

+
+ +Expand source code + +
def config_mode(
+    self,
+    config_command: str = "configure term",
+    pattern: str = "",
+    re_flags: int = 0,
+) -> str:
+    """Aruba auto completes on space so 'configure' needs fully spelled-out."""
+    return super().config_mode(
+        config_command=config_command, pattern=pattern, re_flags=re_flags
+    )
+
+
+
+def session_preparation(self) ‑> None +
+
+

Aruba OS requires enable mode to disable paging.

+
+ +Expand source code + +
def session_preparation(self) -> None:
+    """Aruba OS requires enable mode to disable paging."""
+    # Aruba switches output ansi codes
+    self.ansi_escape_codes = True
+    self._test_channel_read(pattern=r"[>#]")
+    self.set_base_prompt()
+    self.enable()
+    self.disable_paging(command="no paging")
+
+
+
+

Inherited members

+ +
+
+
+
+ +
+ + + \ No newline at end of file diff --git a/docs/netmiko/aruba/index.html b/docs/netmiko/aruba/index.html index fecf5e266..0ccadf3dc 100644 --- a/docs/netmiko/aruba/index.html +++ b/docs/netmiko/aruba/index.html @@ -26,15 +26,20 @@

Module netmiko.aruba

Expand source code -
from netmiko.aruba.aruba_ssh import ArubaSSH
+
from netmiko.aruba.aruba_aoscx import ArubaCxSSH
+from netmiko.aruba.aruba_os import ArubaOsSSH
 
-__all__ = ["ArubaSSH"]
+__all__ = ["ArubaOsSSH", "ArubaCxSSH"]

Sub-modules

-
netmiko.aruba.aruba_ssh
+
netmiko.aruba.aruba_aoscx
+
+

Aruba AOS CX support …

+
+
netmiko.aruba.aruba_os

Aruba OS support …

@@ -47,8 +52,248 @@

Sub-modules

Classes

-
-class ArubaSSH +
+class ArubaCxSSH +(**kwargs: Any) +
+
+

Aruba AOS CX support

+
    Initialize attributes for establishing connection to target device.
+
+    :param ip: IP address of target device. Not required if <code>host</code> is
+        provided.
+
+    :param host: Hostname of target device. Not required if <code>ip</code> is
+            provided.
+
+    :param username: Username to authenticate against target device if
+            required.
+
+    :param password: Password to authenticate against target device if
+            required.
+
+    :param secret: The enable password if target device requires one.
+
+    :param port: The destination port used to connect to the target
+            device.
+
+    :param device_type: Class selection based on device type.
+
+    :param verbose: Enable additional messages to standard output.
+
+    :param global_delay_factor: Multiplication factor affecting Netmiko delays (default: 1).
+
+    :param use_keys: Connect to target device using SSH keys.
+
+    :param key_file: Filename path of the SSH key file to use.
+
+    :param pkey: SSH key object to use.
+
+    :param passphrase: Passphrase to use for encrypted key; password will be used for key
+            decryption if not specified.
+
+    :param disabled_algorithms: Dictionary of SSH algorithms to disable. Refer to the Paramiko
+            documentation for a description of the expected format.
+
+    :param disable_sha2_fix: Boolean that fixes Paramiko issue with missing server-sig-algs
+        <https://github.com/paramiko/paramiko/issues/1961> (default: False)
+
+    :param allow_agent: Enable use of SSH key-agent.
+
+    :param ssh_strict: Automatically reject unknown SSH host keys (default: False, which
+            means unknown SSH host keys will be accepted).
+
+    :param system_host_keys: Load host keys from the users known_hosts file.
+
+    :param alt_host_keys: If <code>True</code> host keys will be loaded from the file specified in
+            alt_key_file.
+
+    :param alt_key_file: SSH host key file to use (if alt_host_keys=True).
+
+    :param ssh_config_file: File name of OpenSSH configuration file.
+
+    :param conn_timeout: TCP connection timeout.
+
+    :param session_timeout: Set a timeout for parallel requests.
+
+    :param auth_timeout: Set a timeout (in seconds) to wait for an authentication response.
+
+    :param banner_timeout: Set a timeout to wait for the SSH banner (pass to Paramiko).
+
+    :param read_timeout_override: Set a timeout that will override the default read_timeout
+            of both send_command and send_command_timing. This is useful for 3rd party
+            libraries where directly accessing method arguments might be impractical.
+
+    :param keepalive: Send SSH keepalive packets at a specific interval, in seconds.
+            Currently defaults to 0, for backwards compatibility (it will not attempt
+            to keep the connection alive).
+
+    :param default_enter: Character(s) to send to correspond to enter key (default:
+
+

).

+
    :param response_return: Character(s) to use in normalized return data to represent
+            enter key (default:
+
+

)

+
    :param serial_settings: Dictionary of settings for use with serial port (pySerial).
+
+    :param fast_cli: Provide a way to optimize for performance. Converts select_delay_factor
+            to select smallest of global and specific. Sets default global_delay_factor to .1
+            (default: True)
+
+    :param session_log: File path, SessionLog object, or BufferedIOBase subclass object
+            to write the session log to.
+
+    :param session_log_record_writes: The session log generally only records channel reads due
+            to eliminate command duplication due to command echo. You can enable this if you
+            want to record both channel reads and channel writes in the log (default: False).
+
+    :param session_log_file_mode: "write" or "append" for session_log file mode
+            (default: "write")
+
+    :param allow_auto_change: Allow automatic configuration changes for terminal settings.
+            (default: False)
+
+    :param encoding: Encoding to be used when writing bytes to the output channel.
+            (default: "utf-8")
+
+    :param sock: An open socket or socket-like object (such as a <code>.Channel</code>) to use for
+            communication to the target host (default: None).
+
+    :param sock_telnet: A dictionary of telnet socket parameters (SOCKS proxy). See
+            telnet_proxy.py code for details.
+
+    :param global_cmd_verify: Control whether command echo verification is enabled or disabled
+            (default: None). Global attribute takes precedence over function <code>cmd\_verify</code>
+            argument. Value of <code>None</code> indicates to use function <code>cmd\_verify</code> argument.
+
+    :param auto_connect: Control whether Netmiko automatically establishes the connection as
+            part of the object creation (default: True).
+
+    :param delay_factor_compat: Set send_command and send_command_timing back to using Netmiko
+            3.x behavior for delay_factor/global_delay_factor/max_loops. This argument will be
+            eliminated in Netmiko 5.x (default: False).
+
+    :param disable_lf_normalization: Disable Netmiko's linefeed normalization behavior
+            (default: False)
+
+
+ +Expand source code + +
class ArubaCxSSH(CiscoSSHConnection):
+    """Aruba AOS CX support"""
+
+    def __init__(self, **kwargs: Any) -> None:
+        if kwargs.get("default_enter") is None:
+            kwargs["default_enter"] = "\r"
+        return super().__init__(**kwargs)
+
+    def session_preparation(self) -> None:
+        self.ansi_escape_codes = True
+        self._test_channel_read(pattern=r"[>#]")
+        self.set_base_prompt()
+        self.disable_paging(command="no page")
+
+    def check_config_mode(
+        self,
+        check_string: str = "(config)#",
+        pattern: str = r"[>#]",
+        force_regex: bool = False,
+    ) -> bool:
+        return super().check_config_mode(check_string=check_string, pattern=pattern)
+
+    def config_mode(
+        self,
+        config_command: str = "configure term",
+        pattern: str = "",
+        re_flags: int = 0,
+    ) -> str:
+        """Aruba auto completes on space so 'configure' needs fully spelled-out."""
+        return super().config_mode(
+            config_command=config_command, pattern=pattern, re_flags=re_flags
+        )
+
+

Ancestors

+ +

Methods

+
+
+def config_mode(self, config_command: str = 'configure term', pattern: str = '', re_flags: int = 0) ‑> str +
+
+

Aruba auto completes on space so 'configure' needs fully spelled-out.

+
+ +Expand source code + +
def config_mode(
+    self,
+    config_command: str = "configure term",
+    pattern: str = "",
+    re_flags: int = 0,
+) -> str:
+    """Aruba auto completes on space so 'configure' needs fully spelled-out."""
+    return super().config_mode(
+        config_command=config_command, pattern=pattern, re_flags=re_flags
+    )
+
+
+
+

Inherited members

+ +
+
+class ArubaOsSSH (**kwargs: Any)
@@ -176,7 +421,7 @@

Classes

Expand source code -
class ArubaSSH(CiscoSSHConnection):
+
class ArubaOsSSH(CiscoSSHConnection):
     """Aruba OS support"""
 
     def __init__(self, **kwargs: Any) -> None:
@@ -228,7 +473,7 @@ 

Ancestors

Methods

-
+
def check_config_mode(self, check_string: str = '(config) #', pattern: str = '[>#]', force_regex: bool = False) ‑> bool
@@ -252,7 +497,7 @@

Methods

return super().check_config_mode(check_string=check_string, pattern=pattern)
-
+
def config_mode(self, config_command: str = 'configure term', pattern: str = '', re_flags: int = 0) ‑> str
@@ -273,7 +518,7 @@

Methods

)
-
+
def session_preparation(self) ‑> None
@@ -355,17 +600,24 @@

Index

  • Sub-modules

  • Classes

    diff --git a/docs/netmiko/base_connection.html b/docs/netmiko/base_connection.html index 74cd45057..6ac60976f 100644 --- a/docs/netmiko/base_connection.html +++ b/docs/netmiko/base_connection.html @@ -38,6 +38,7 @@

    Module netmiko.base_connection

    Also defines methods that should generally be supported by child classes """ + from typing import ( Optional, Callable, @@ -59,7 +60,6 @@

    Module netmiko.base_connection

    import io import re import socket -import telnetlib import time from collections import deque from os import path @@ -82,6 +82,7 @@

    Module netmiko.base_connection

    ReadException, ReadTimeout, ) +from netmiko._telnetlib import telnetlib from netmiko.channel import Channel, SSHChannel, TelnetChannel, SerialChannel from netmiko.session_log import SessionLog from netmiko.utilities import ( @@ -420,7 +421,8 @@

    Module netmiko.base_connection

    if self.secret: no_log["secret"] = self.secret # Always sanitize username and password - log.addFilter(SecretsFilter(no_log=no_log)) + self._secrets_filter = SecretsFilter(no_log=no_log) + log.addFilter(self._secrets_filter) # Netmiko will close the session_log if we open the file if session_log is not None: @@ -630,7 +632,7 @@

    Module netmiko.base_connection

    log.debug("Sending IAC + NOP") # Need to send multiple times to test connection assert isinstance(self.remote_conn, telnetlib.Telnet) - telnet_socket = self.remote_conn.get_socket() + telnet_socket = self.remote_conn.get_socket() # type: ignore telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) @@ -1149,7 +1151,7 @@

    Module netmiko.base_connection

    proxy_dict=self.sock_telnet, ) else: - self.remote_conn = telnetlib.Telnet( + self.remote_conn = telnetlib.Telnet( # type: ignore self.host, port=self.port, timeout=self.timeout ) # Migrating communication to channel class @@ -2500,7 +2502,7 @@

    Module netmiko.base_connection

    self.paramiko_cleanup() elif self.protocol == "telnet": assert isinstance(self.remote_conn, telnetlib.Telnet) - self.remote_conn.close() + self.remote_conn.close() # type: ignore elif self.protocol == "serial": assert isinstance(self.remote_conn, serial.Serial) self.remote_conn.close() @@ -2512,6 +2514,7 @@

    Module netmiko.base_connection

    self.remote_conn = None if self.session_log: self.session_log.close() + log.removeFilter(self._secrets_filter) def commit(self) -> str: """Commit method for platforms that support this.""" @@ -3032,7 +3035,8 @@

    Classes

    if self.secret: no_log["secret"] = self.secret # Always sanitize username and password - log.addFilter(SecretsFilter(no_log=no_log)) + self._secrets_filter = SecretsFilter(no_log=no_log) + log.addFilter(self._secrets_filter) # Netmiko will close the session_log if we open the file if session_log is not None: @@ -3242,7 +3246,7 @@

    Classes

    log.debug("Sending IAC + NOP") # Need to send multiple times to test connection assert isinstance(self.remote_conn, telnetlib.Telnet) - telnet_socket = self.remote_conn.get_socket() + telnet_socket = self.remote_conn.get_socket() # type: ignore telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) @@ -3761,7 +3765,7 @@

    Classes

    proxy_dict=self.sock_telnet, ) else: - self.remote_conn = telnetlib.Telnet( + self.remote_conn = telnetlib.Telnet( # type: ignore self.host, port=self.port, timeout=self.timeout ) # Migrating communication to channel class @@ -5112,7 +5116,7 @@

    Classes

    self.paramiko_cleanup() elif self.protocol == "telnet": assert isinstance(self.remote_conn, telnetlib.Telnet) - self.remote_conn.close() + self.remote_conn.close() # type: ignore elif self.protocol == "serial": assert isinstance(self.remote_conn, serial.Serial) self.remote_conn.close() @@ -5124,6 +5128,7 @@

    Classes

    self.remote_conn = None if self.session_log: self.session_log.close() + log.removeFilter(self._secrets_filter) def commit(self) -> str: """Commit method for platforms that support this.""" @@ -5501,7 +5506,7 @@

    Methods

    self.paramiko_cleanup() elif self.protocol == "telnet": assert isinstance(self.remote_conn, telnetlib.Telnet) - self.remote_conn.close() + self.remote_conn.close() # type: ignore elif self.protocol == "serial": assert isinstance(self.remote_conn, serial.Serial) self.remote_conn.close() @@ -5512,7 +5517,8 @@

    Methods

    self.remote_conn_pre = None self.remote_conn = None if self.session_log: - self.session_log.close()
  • + self.session_log.close() + log.removeFilter(self._secrets_filter)
    @@ -5628,7 +5634,7 @@

    Methods

    proxy_dict=self.sock_telnet, ) else: - self.remote_conn = telnetlib.Telnet( + self.remote_conn = telnetlib.Telnet( # type: ignore self.host, port=self.port, timeout=self.timeout ) # Migrating communication to channel class @@ -5868,7 +5874,7 @@

    Methods

    log.debug("Sending IAC + NOP") # Need to send multiple times to test connection assert isinstance(self.remote_conn, telnetlib.Telnet) - telnet_socket = self.remote_conn.get_socket() + telnet_socket = self.remote_conn.get_socket() # type: ignore telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) diff --git a/docs/netmiko/calix/calix_b6.html b/docs/netmiko/calix/calix_b6.html index 0d4b31dd6..24b33df32 100644 --- a/docs/netmiko/calix/calix_b6.html +++ b/docs/netmiko/calix/calix_b6.html @@ -28,6 +28,7 @@

    Module netmiko.calix.calix_b6

    Expand source code
    """Calix B6 SSH Driver for Netmiko"""
    +
     from typing import Any
     import time
     from os import path
    diff --git a/docs/netmiko/centec/centec_os.html b/docs/netmiko/centec/centec_os.html
    index aadf3543f..40bb0c817 100644
    --- a/docs/netmiko/centec/centec_os.html
    +++ b/docs/netmiko/centec/centec_os.html
    @@ -28,6 +28,7 @@ 

    Module netmiko.centec.centec_os

    Expand source code
    """Centec OS Support"""
    +
     from netmiko.cisco_base_connection import CiscoBaseConnection
     
     
    diff --git a/docs/netmiko/channel.html b/docs/netmiko/channel.html
    index 2bbe38fbd..4fe84b681 100644
    --- a/docs/netmiko/channel.html
    +++ b/docs/netmiko/channel.html
    @@ -29,9 +29,9 @@ 

    Module netmiko.channel

    from typing import Any, Optional
     from abc import ABC, abstractmethod
     import paramiko
    -import telnetlib
     import serial
     
    +from netmiko._telnetlib import telnetlib
     from netmiko.utilities import write_bytes
     from netmiko.netmiko_globals import MAX_BUFFER
     from netmiko.exceptions import ReadException, WriteException
    @@ -141,7 +141,7 @@ 

    Module netmiko.channel

    raise WriteException( "Attempt to write data, but there is no active channel." ) - self.remote_conn.write(write_bytes(out_data, encoding=self.encoding)) + self.remote_conn.write(write_bytes(out_data, encoding=self.encoding)) # type: ignore def read_buffer(self) -> str: """Single read of available data.""" @@ -151,7 +151,7 @@

    Module netmiko.channel

    """Read all of the available data from the channel.""" if self.remote_conn is None: raise ReadException("Attempt to read, but there is no active channel.") - return self.remote_conn.read_very_eager().decode(self.encoding, "ignore") + return self.remote_conn.read_very_eager().decode(self.encoding, "ignore") # type: ignore class SerialChannel(Channel): @@ -462,7 +462,7 @@

    Inherited members

    class TelnetChannel -(conn: Optional[telnetlib.Telnet], encoding: str) +(conn: Optional[netmiko._telnetlib.telnetlib.Telnet], encoding: str)

    Helper class that provides a standard way to create an ABC using @@ -488,7 +488,7 @@

    Inherited members

    raise WriteException( "Attempt to write data, but there is no active channel." ) - self.remote_conn.write(write_bytes(out_data, encoding=self.encoding)) + self.remote_conn.write(write_bytes(out_data, encoding=self.encoding)) # type: ignore def read_buffer(self) -> str: """Single read of available data.""" @@ -498,7 +498,7 @@

    Inherited members

    """Read all of the available data from the channel.""" if self.remote_conn is None: raise ReadException("Attempt to read, but there is no active channel.") - return self.remote_conn.read_very_eager().decode(self.encoding, "ignore")
    + return self.remote_conn.read_very_eager().decode(self.encoding, "ignore") # type: ignore

    Ancestors

      diff --git a/docs/netmiko/ciena/ciena_saos.html b/docs/netmiko/ciena/ciena_saos.html index d129c8b6f..8bfadc166 100644 --- a/docs/netmiko/ciena/ciena_saos.html +++ b/docs/netmiko/ciena/ciena_saos.html @@ -28,6 +28,7 @@

      Module netmiko.ciena.ciena_saos

      Expand source code
      """Ciena SAOS support."""
      +
       from typing import Optional, Any
       import re
       import os
      diff --git a/docs/netmiko/cisco/cisco_asa_ssh.html b/docs/netmiko/cisco/cisco_asa_ssh.html
      index 9fa53494e..dba9d8973 100644
      --- a/docs/netmiko/cisco/cisco_asa_ssh.html
      +++ b/docs/netmiko/cisco/cisco_asa_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.cisco.cisco_asa_ssh

      Expand source code
      """Subclass specific to Cisco ASA."""
      +
       from typing import Any, Union, List, Dict, Optional
       import re
       import time
      diff --git a/docs/netmiko/cisco/cisco_ftd_ssh.html b/docs/netmiko/cisco/cisco_ftd_ssh.html
      index 9f16a152a..8109e53fb 100644
      --- a/docs/netmiko/cisco/cisco_ftd_ssh.html
      +++ b/docs/netmiko/cisco/cisco_ftd_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.cisco.cisco_ftd_ssh

      Expand source code
      """Subclass specific to Cisco FTD."""
      +
       from typing import Any
       from netmiko.no_enable import NoEnable
       from netmiko.no_config import NoConfig
      diff --git a/docs/netmiko/cisco/cisco_tp_tcce.html b/docs/netmiko/cisco/cisco_tp_tcce.html
      index db7eccdd8..3ffd77cf3 100644
      --- a/docs/netmiko/cisco/cisco_tp_tcce.html
      +++ b/docs/netmiko/cisco/cisco_tp_tcce.html
      @@ -41,6 +41,7 @@ 

      Module netmiko.cisco.cisco_tp_tcce

      Written by Ahmad Barrin Updated by Kirk Byers """ + from typing import Any, Union, List, Dict import time import re diff --git a/docs/netmiko/cisco/cisco_viptela.html b/docs/netmiko/cisco/cisco_viptela.html index 81a751854..89123b343 100644 --- a/docs/netmiko/cisco/cisco_viptela.html +++ b/docs/netmiko/cisco/cisco_viptela.html @@ -28,6 +28,7 @@

      Module netmiko.cisco.cisco_viptela

      Expand source code
      """Subclass specific to Cisco Viptela."""
      +
       from typing import Union, Sequence, Iterator, TextIO, Any
       import re
       
      diff --git a/docs/netmiko/cisco/cisco_wlc_ssh.html b/docs/netmiko/cisco/cisco_wlc_ssh.html
      index 37f1f08b7..c0a6c9f91 100644
      --- a/docs/netmiko/cisco/cisco_wlc_ssh.html
      +++ b/docs/netmiko/cisco/cisco_wlc_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.cisco.cisco_wlc_ssh

      Expand source code
      """Netmiko Cisco WLC support."""
      +
       from typing import Any, Union, Sequence, Iterator, TextIO
       import time
       import re
      diff --git a/docs/netmiko/cisco/cisco_xr.html b/docs/netmiko/cisco/cisco_xr.html
      index 5b7105cf1..18c3cf1c2 100644
      --- a/docs/netmiko/cisco/cisco_xr.html
      +++ b/docs/netmiko/cisco/cisco_xr.html
      @@ -219,7 +219,7 @@ 

      Module netmiko.cisco.cisco_xr

      # Read until we detect either an Uncommitted change or the end prompt if not re.search(r"(Uncommitted|#$)", output): output += self.read_until_pattern(pattern=r"(Uncommitted|#$)") - if "Uncommitted changes found" in output: + if "Uncommitted" in output: self.write_channel(self.normalize_cmd("no\n")) output += self.read_until_pattern(pattern=r"[>#]") if not re.search(pattern, output, flags=re.M): @@ -613,7 +613,7 @@

      Classes

      # Read until we detect either an Uncommitted change or the end prompt if not re.search(r"(Uncommitted|#$)", output): output += self.read_until_pattern(pattern=r"(Uncommitted|#$)") - if "Uncommitted changes found" in output: + if "Uncommitted" in output: self.write_channel(self.normalize_cmd("no\n")) output += self.read_until_pattern(pattern=r"[>#]") if not re.search(pattern, output, flags=re.M): @@ -847,7 +847,7 @@

      Methods

      # Read until we detect either an Uncommitted change or the end prompt if not re.search(r"(Uncommitted|#$)", output): output += self.read_until_pattern(pattern=r"(Uncommitted|#$)") - if "Uncommitted changes found" in output: + if "Uncommitted" in output: self.write_channel(self.normalize_cmd("no\n")) output += self.read_until_pattern(pattern=r"[>#]") if not re.search(pattern, output, flags=re.M): diff --git a/docs/netmiko/cisco_base_connection.html b/docs/netmiko/cisco_base_connection.html index 8d53083c0..40a5679f0 100644 --- a/docs/netmiko/cisco_base_connection.html +++ b/docs/netmiko/cisco_base_connection.html @@ -28,6 +28,7 @@

      Module netmiko.cisco_base_connection

      Expand source code
      """CiscoBaseConnection is netmiko SSH class for Cisco and Cisco-like platforms."""
      +
       from typing import Optional
       import re
       import time
      @@ -1267,7 +1268,8 @@ 

      Subclasses

    • ApresiaAeosBase
    • AristaBase
    • ArrisCERBase
    • -
    • ArubaSSH
    • +
    • ArubaCxSSH
    • +
    • ArubaOsSSH
    • BroadcomIcosSSH
    • BrocadeFOSSSH
    • CalixB6Base
    • diff --git a/docs/netmiko/dell/dell_dnos6.html b/docs/netmiko/dell/dell_dnos6.html index 8492e799b..f116bc408 100644 --- a/docs/netmiko/dell/dell_dnos6.html +++ b/docs/netmiko/dell/dell_dnos6.html @@ -28,6 +28,7 @@

      Module netmiko.dell.dell_dnos6

      Expand source code
      """Dell N2/3/4000 base driver- supports DNOS6."""
      +
       from netmiko.dell.dell_powerconnect import DellPowerConnectBase
       
       
      diff --git a/docs/netmiko/dell/dell_force10_ssh.html b/docs/netmiko/dell/dell_force10_ssh.html
      index 431dac419..efbe0c09b 100644
      --- a/docs/netmiko/dell/dell_force10_ssh.html
      +++ b/docs/netmiko/dell/dell_force10_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.dell.dell_force10_ssh

      Expand source code
      """Dell Force10 Driver - supports DNOS9."""
      +
       from netmiko.cisco_base_connection import CiscoSSHConnection
       
       
      diff --git a/docs/netmiko/dell/dell_os10_ssh.html b/docs/netmiko/dell/dell_os10_ssh.html
      index 14f590974..83e7ea05a 100644
      --- a/docs/netmiko/dell/dell_os10_ssh.html
      +++ b/docs/netmiko/dell/dell_os10_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.dell.dell_os10_ssh

      Expand source code
      """Dell EMC Networking OS10 Driver - supports dellos10."""
      +
       from typing import Any, Optional
       from netmiko.base_connection import BaseConnection
       from netmiko.cisco_base_connection import CiscoSSHConnection
      diff --git a/docs/netmiko/dell/dell_powerconnect.html b/docs/netmiko/dell/dell_powerconnect.html
      index 1620f47c6..fa40ae31f 100644
      --- a/docs/netmiko/dell/dell_powerconnect.html
      +++ b/docs/netmiko/dell/dell_powerconnect.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.dell.dell_powerconnect

      Expand source code
      """Dell PowerConnect Driver."""
      +
       from typing import Optional
       from paramiko import SSHClient
       import time
      diff --git a/docs/netmiko/dell/dell_sonic_ssh.html b/docs/netmiko/dell/dell_sonic_ssh.html
      index 8cf71e723..fc49e3c74 100644
      --- a/docs/netmiko/dell/dell_sonic_ssh.html
      +++ b/docs/netmiko/dell/dell_sonic_ssh.html
      @@ -33,6 +33,7 @@ 

      Module netmiko.dell.dell_sonic_ssh

      Dell EMC PowerSwitch platforms running Enterprise SONiC Distribution by Dell Technologies Driver - supports dellenterprisesonic. """ + from netmiko.no_enable import NoEnable from netmiko.cisco_base_connection import CiscoSSHConnection from netmiko import log diff --git a/docs/netmiko/digi/digi_transport.html b/docs/netmiko/digi/digi_transport.html index cb2485bd4..81daab766 100644 --- a/docs/netmiko/digi/digi_transport.html +++ b/docs/netmiko/digi/digi_transport.html @@ -28,6 +28,7 @@

      Module netmiko.digi.digi_transport

      Expand source code
      """Digi TransPort Routers"""
      +
       from typing import Any
       from netmiko.no_enable import NoEnable
       from netmiko.no_config import NoConfig
      diff --git a/docs/netmiko/enterasys/enterasys_ssh.html b/docs/netmiko/enterasys/enterasys_ssh.html
      index 3e034e0ad..aa4eef514 100644
      --- a/docs/netmiko/enterasys/enterasys_ssh.html
      +++ b/docs/netmiko/enterasys/enterasys_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.enterasys.enterasys_ssh

      Expand source code
      """Enterasys support."""
      +
       from typing import Any
       from netmiko.cisco_base_connection import CiscoSSHConnection
       
      diff --git a/docs/netmiko/ericsson/ericsson_ipos.html b/docs/netmiko/ericsson/ericsson_ipos.html
      index 4a606cda6..5d92265a7 100644
      --- a/docs/netmiko/ericsson/ericsson_ipos.html
      +++ b/docs/netmiko/ericsson/ericsson_ipos.html
      @@ -30,6 +30,7 @@ 

      Module netmiko.ericsson.ericsson_ipos

      """
       Ericsson Ipos looks like it was RedBack equipment.
       """
      +
       from typing import Optional, Any, Union, Sequence, Iterator, TextIO
       import re
       import warnings
      diff --git a/docs/netmiko/ericsson/ericsson_mltn.html b/docs/netmiko/ericsson/ericsson_mltn.html
      index 285388b8a..6fcf12a43 100644
      --- a/docs/netmiko/ericsson/ericsson_mltn.html
      +++ b/docs/netmiko/ericsson/ericsson_mltn.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.ericsson.ericsson_mltn

      Expand source code
      """Ericsson MiniLink driver."""
      +
       import time
       import re
       from os import path
      diff --git a/docs/netmiko/extreme/extreme_ers_ssh.html b/docs/netmiko/extreme/extreme_ers_ssh.html
      index f59b34f36..2257159d7 100644
      --- a/docs/netmiko/extreme/extreme_ers_ssh.html
      +++ b/docs/netmiko/extreme/extreme_ers_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.extreme.extreme_ers_ssh

      Expand source code
      """Netmiko support for Extreme Ethernet Routing Switch."""
      +
       import re
       from netmiko.cisco_base_connection import CiscoSSHConnection
       from netmiko.exceptions import NetmikoAuthenticationException
      diff --git a/docs/netmiko/extreme/extreme_exos.html b/docs/netmiko/extreme/extreme_exos.html
      index e73eb37af..968260546 100644
      --- a/docs/netmiko/extreme/extreme_exos.html
      +++ b/docs/netmiko/extreme/extreme_exos.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.extreme.extreme_exos

      Expand source code
      """Extreme support."""
      +
       import os
       from typing import Any, Callable, Optional, Union, List, Dict
       import re
      diff --git a/docs/netmiko/extreme/extreme_nos_ssh.html b/docs/netmiko/extreme/extreme_nos_ssh.html
      index 74a5ca71f..27c83a0ba 100644
      --- a/docs/netmiko/extreme/extreme_nos_ssh.html
      +++ b/docs/netmiko/extreme/extreme_nos_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.extreme.extreme_nos_ssh

      Expand source code
      """Support for Extreme NOS/VDX."""
      +
       import time
       from netmiko.no_enable import NoEnable
       from netmiko.cisco_base_connection import CiscoSSHConnection
      diff --git a/docs/netmiko/extreme/extreme_slx_ssh.html b/docs/netmiko/extreme/extreme_slx_ssh.html
      index 72446a9e1..5e25b87ee 100644
      --- a/docs/netmiko/extreme/extreme_slx_ssh.html
      +++ b/docs/netmiko/extreme/extreme_slx_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.extreme.extreme_slx_ssh

      Expand source code
      """Support for Extreme SLX."""
      +
       import time
       from netmiko.no_enable import NoEnable
       from netmiko.cisco_base_connection import CiscoSSHConnection
      diff --git a/docs/netmiko/extreme/extreme_tierraos_ssh.html b/docs/netmiko/extreme/extreme_tierraos_ssh.html
      index 1229efea3..f254be8bf 100644
      --- a/docs/netmiko/extreme/extreme_tierraos_ssh.html
      +++ b/docs/netmiko/extreme/extreme_tierraos_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.extreme.extreme_tierraos_ssh

      Expand source code
      """Support for Extreme TierraOS."""
      +
       import time
       from netmiko.no_enable import NoEnable
       from netmiko.cisco_base_connection import CiscoSSHConnection
      diff --git a/docs/netmiko/extreme/extreme_vsp_ssh.html b/docs/netmiko/extreme/extreme_vsp_ssh.html
      index 56d7e649c..e68c2d75d 100644
      --- a/docs/netmiko/extreme/extreme_vsp_ssh.html
      +++ b/docs/netmiko/extreme/extreme_vsp_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.extreme.extreme_vsp_ssh

      Expand source code
      """Extreme Virtual Services Platform Support."""
      +
       from netmiko.cisco_base_connection import CiscoSSHConnection
       
       
      diff --git a/docs/netmiko/fiberstore/fiberstore_fsos.html b/docs/netmiko/fiberstore/fiberstore_fsos.html
      index 3bb0b76bc..a9c35d5eb 100644
      --- a/docs/netmiko/fiberstore/fiberstore_fsos.html
      +++ b/docs/netmiko/fiberstore/fiberstore_fsos.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.fiberstore.fiberstore_fsos

      Expand source code
      """Fiberstore FSOS Driver."""
      +
       from typing import Optional
       from paramiko import SSHClient
       from netmiko.ssh_auth import SSHClient_noauth
      diff --git a/docs/netmiko/huawei/huawei.html b/docs/netmiko/huawei/huawei.html
      index 5b75abc55..66beeac95 100644
      --- a/docs/netmiko/huawei/huawei.html
      +++ b/docs/netmiko/huawei/huawei.html
      @@ -132,12 +132,18 @@ 

      Module netmiko.huawei.huawei

      Configuration file had been saved successfully Note: The configuration file will take effect after being activated ###################################################################### + or + ###################################################################### + Warning: The current configuration will be written to the device. Continue? [Y/N]:y + Now saving the current configuration to the slot 1 . + Info: Save the configuration successfully. + ###################################################################### """ # Huawei devices might break if you try to use send_command_timing() so use send_command() # instead. if confirm: - pattern = rf"(?:Are you sure|{self.prompt_pattern})" + pattern = rf"(?:[Cc]ontinue\?|{self.prompt_pattern})" output = self._send_command_str( command_string=cmd, expect_string=pattern, @@ -145,7 +151,7 @@

      Module netmiko.huawei.huawei

      strip_command=False, read_timeout=100.0, ) - if confirm_response and "Are you sure" in output: + if confirm_response and re.search(r"[Cc]ontinue\?", output): output += self._send_command_str( command_string=confirm_response, expect_string=self.prompt_pattern, @@ -293,11 +299,7 @@

      Module netmiko.huawei.huawei

      if error_marker in output: raise ValueError(f"Commit failed with following errors:\n\n{output}") - return output - - def save_config(self, *args: Any, **kwargs: Any) -> str: - """Not Implemented""" - raise NotImplementedError
      + return output
      @@ -540,12 +542,18 @@

      Classes

      Configuration file had been saved successfully Note: The configuration file will take effect after being activated ###################################################################### + or + ###################################################################### + Warning: The current configuration will be written to the device. Continue? [Y/N]:y + Now saving the current configuration to the slot 1 . + Info: Save the configuration successfully. + ###################################################################### """ # Huawei devices might break if you try to use send_command_timing() so use send_command() # instead. if confirm: - pattern = rf"(?:Are you sure|{self.prompt_pattern})" + pattern = rf"(?:[Cc]ontinue\?|{self.prompt_pattern})" output = self._send_command_str( command_string=cmd, expect_string=pattern, @@ -553,7 +561,7 @@

      Classes

      strip_command=False, read_timeout=100.0, ) - if confirm_response and "Are you sure" in output: + if confirm_response and re.search(r"[Cc]ontinue\?", output): output += self._send_command_str( command_string=confirm_response, expect_string=self.prompt_pattern, @@ -645,7 +653,13 @@
      It will take several minutes to save configuration file, please wait..................... Configuration file had been saved successfully Note: The configuration file will take effect after being activated

      -
      +
      +

      or

      +
      +

      Warning: The current configuration will be written to the device. Continue? [Y/N]:y +Now saving the current configuration to the slot 1 . +Info: Save the configuration successfully.

      +
      Expand source code @@ -664,12 +678,18 @@
      Configuration file had been saved successfully Note: The configuration file will take effect after being activated ###################################################################### + or + ###################################################################### + Warning: The current configuration will be written to the device. Continue? [Y/N]:y + Now saving the current configuration to the slot 1 . + Info: Save the configuration successfully. + ###################################################################### """ # Huawei devices might break if you try to use send_command_timing() so use send_command() # instead. if confirm: - pattern = rf"(?:Are you sure|{self.prompt_pattern})" + pattern = rf"(?:[Cc]ontinue\?|{self.prompt_pattern})" output = self._send_command_str( command_string=cmd, expect_string=pattern, @@ -677,7 +697,7 @@
      strip_command=False, read_timeout=100.0, ) - if confirm_response and "Are you sure" in output: + if confirm_response and re.search(r"[Cc]ontinue\?", output): output += self._send_command_str( command_string=confirm_response, expect_string=self.prompt_pattern, @@ -1517,11 +1537,7 @@

      Inherited members

      if error_marker in output: raise ValueError(f"Commit failed with following errors:\n\n{output}") - return output - - def save_config(self, *args: Any, **kwargs: Any) -> str: - """Not Implemented""" - raise NotImplementedError
      + return output

      Ancestors

        @@ -1593,20 +1609,6 @@

        Methods

        return output
      -
      -def save_config(self, *args: Any, **kwargs: Any) ‑> str -
      -
      -

      Not Implemented

      -
      - -Expand source code - -
      def save_config(self, *args: Any, **kwargs: Any) -> str:
      -    """Not Implemented"""
      -    raise NotImplementedError
      -
      -
      def send_config_set(self, config_commands: Union[str, Sequence[str], Iterator[str], TextIO, ForwardRef(None)] = None, exit_config_mode: bool = False, **kwargs: Any) ‑> str
      @@ -1655,6 +1657,7 @@

      Inherited members

    • read_until_prompt
    • read_until_prompt_or_pattern
    • run_ttp
    • +
    • save_config
    • select_delay_factor
    • send_command
    • send_command_expect
    • @@ -1718,7 +1721,6 @@

      HuaweiVrpv8SSH

      diff --git a/docs/netmiko/huawei/index.html b/docs/netmiko/huawei/index.html index 2ec6263a7..fac28e055 100644 --- a/docs/netmiko/huawei/index.html +++ b/docs/netmiko/huawei/index.html @@ -1123,11 +1123,7 @@

      Inherited members

      if error_marker in output: raise ValueError(f"Commit failed with following errors:\n\n{output}") - return output - - def save_config(self, *args: Any, **kwargs: Any) -> str: - """Not Implemented""" - raise NotImplementedError
      + return output

      Ancestors

        @@ -1199,20 +1195,6 @@

        Methods

        return output
      -
      -def save_config(self, *args: Any, **kwargs: Any) ‑> str -
      -
      -

      Not Implemented

      -
      - -Expand source code - -
      def save_config(self, *args: Any, **kwargs: Any) -> str:
      -    """Not Implemented"""
      -    raise NotImplementedError
      -
      -
      def send_config_set(self, config_commands: Union[str, Sequence[str], Iterator[str], TextIO, ForwardRef(None)] = None, exit_config_mode: bool = False, **kwargs: Any) ‑> str
      @@ -1261,6 +1243,7 @@

      Inherited members

    • read_until_prompt
    • read_until_prompt_or_pattern
    • run_ttp
    • +
    • save_config
    • select_delay_factor
    • send_command
    • send_command_expect
    • @@ -1325,7 +1308,6 @@

      HuaweiVrpv8SSH

      diff --git a/docs/netmiko/index.html b/docs/netmiko/index.html index 155f5d9b7..d22de5580 100644 --- a/docs/netmiko/index.html +++ b/docs/netmiko/index.html @@ -1261,7 +1261,8 @@

      Classes

      if self.secret: no_log["secret"] = self.secret # Always sanitize username and password - log.addFilter(SecretsFilter(no_log=no_log)) + self._secrets_filter = SecretsFilter(no_log=no_log) + log.addFilter(self._secrets_filter) # Netmiko will close the session_log if we open the file if session_log is not None: @@ -1471,7 +1472,7 @@

      Classes

      log.debug("Sending IAC + NOP") # Need to send multiple times to test connection assert isinstance(self.remote_conn, telnetlib.Telnet) - telnet_socket = self.remote_conn.get_socket() + telnet_socket = self.remote_conn.get_socket() # type: ignore telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) @@ -1990,7 +1991,7 @@

      Classes

      proxy_dict=self.sock_telnet, ) else: - self.remote_conn = telnetlib.Telnet( + self.remote_conn = telnetlib.Telnet( # type: ignore self.host, port=self.port, timeout=self.timeout ) # Migrating communication to channel class @@ -3341,7 +3342,7 @@

      Classes

      self.paramiko_cleanup() elif self.protocol == "telnet": assert isinstance(self.remote_conn, telnetlib.Telnet) - self.remote_conn.close() + self.remote_conn.close() # type: ignore elif self.protocol == "serial": assert isinstance(self.remote_conn, serial.Serial) self.remote_conn.close() @@ -3353,6 +3354,7 @@

      Classes

      self.remote_conn = None if self.session_log: self.session_log.close() + log.removeFilter(self._secrets_filter) def commit(self) -> str: """Commit method for platforms that support this.""" @@ -3730,7 +3732,7 @@

      Methods

      self.paramiko_cleanup() elif self.protocol == "telnet": assert isinstance(self.remote_conn, telnetlib.Telnet) - self.remote_conn.close() + self.remote_conn.close() # type: ignore elif self.protocol == "serial": assert isinstance(self.remote_conn, serial.Serial) self.remote_conn.close() @@ -3741,7 +3743,8 @@

      Methods

      self.remote_conn_pre = None self.remote_conn = None if self.session_log: - self.session_log.close()
      + self.session_log.close() + log.removeFilter(self._secrets_filter)
      @@ -3857,7 +3860,7 @@

      Methods

      proxy_dict=self.sock_telnet, ) else: - self.remote_conn = telnetlib.Telnet( + self.remote_conn = telnetlib.Telnet( # type: ignore self.host, port=self.port, timeout=self.timeout ) # Migrating communication to channel class @@ -4097,7 +4100,7 @@

      Methods

      log.debug("Sending IAC + NOP") # Need to send multiple times to test connection assert isinstance(self.remote_conn, telnetlib.Telnet) - telnet_socket = self.remote_conn.get_socket() + telnet_socket = self.remote_conn.get_socket() # type: ignore telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) telnet_socket.sendall(telnetlib.IAC + telnetlib.NOP) diff --git a/docs/netmiko/ipinfusion/index.html b/docs/netmiko/ipinfusion/index.html index cb1efb174..68559ba94 100644 --- a/docs/netmiko/ipinfusion/index.html +++ b/docs/netmiko/ipinfusion/index.html @@ -398,7 +398,7 @@

      Inherited members

      # set callback function to handle telnet options. assert self.remote_conn is not None assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore return super().telnet_login( pri_prompt_terminator=pri_prompt_terminator, alt_prompt_terminator=alt_prompt_terminator, diff --git a/docs/netmiko/ipinfusion/ipinfusion_ocnos.html b/docs/netmiko/ipinfusion/ipinfusion_ocnos.html index c3c190523..d3388954b 100644 --- a/docs/netmiko/ipinfusion/ipinfusion_ocnos.html +++ b/docs/netmiko/ipinfusion/ipinfusion_ocnos.html @@ -30,7 +30,17 @@

      Module netmiko.ipinfusion.ipinfusion_ocnos

      from typing import Any from socket import socket -from telnetlib import IAC, DO, DONT, WILL, WONT, SB, SE, TTYPE, Telnet +from netmiko._telnetlib.telnetlib import ( + IAC, + DO, + DONT, + WILL, + WONT, + SB, + SE, + TTYPE, + Telnet, +) from netmiko.cisco_base_connection import CiscoBaseConnection @@ -95,7 +105,7 @@

      Module netmiko.ipinfusion.ipinfusion_ocnos

      # set callback function to handle telnet options. assert self.remote_conn is not None assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore return super().telnet_login( pri_prompt_terminator=pri_prompt_terminator, alt_prompt_terminator=alt_prompt_terminator, @@ -696,7 +706,7 @@

      Inherited members

      # set callback function to handle telnet options. assert self.remote_conn is not None assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore return super().telnet_login( pri_prompt_terminator=pri_prompt_terminator, alt_prompt_terminator=alt_prompt_terminator, diff --git a/docs/netmiko/mellanox/mellanox_mlnxos_ssh.html b/docs/netmiko/mellanox/mellanox_mlnxos_ssh.html index 44865fdca..66ebefe8c 100644 --- a/docs/netmiko/mellanox/mellanox_mlnxos_ssh.html +++ b/docs/netmiko/mellanox/mellanox_mlnxos_ssh.html @@ -28,6 +28,7 @@

      Module netmiko.mellanox.mellanox_mlnxos_ssh

      Expand source code
      """Mellanox MLNX-OS Switch support."""
      +
       import re
       from typing import Optional
       
      diff --git a/docs/netmiko/mrv/mrv_lx.html b/docs/netmiko/mrv/mrv_lx.html
      index 6b60ac973..4fe68a2ec 100644
      --- a/docs/netmiko/mrv/mrv_lx.html
      +++ b/docs/netmiko/mrv/mrv_lx.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.mrv.mrv_lx

      Expand source code
      """MRV Communications Driver (LX)."""
      +
       import time
       import re
       from typing import Optional
      diff --git a/docs/netmiko/mrv/mrv_ssh.html b/docs/netmiko/mrv/mrv_ssh.html
      index 7c585473f..d3bc39945 100644
      --- a/docs/netmiko/mrv/mrv_ssh.html
      +++ b/docs/netmiko/mrv/mrv_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.mrv.mrv_ssh

      Expand source code
      """MRV Communications Driver (OptiSwitch)."""
      +
       import time
       import re
       from typing import Optional
      diff --git a/docs/netmiko/netgear/netgear_prosafe_ssh.html b/docs/netmiko/netgear/netgear_prosafe_ssh.html
      index 1ea2f8965..d70a2fc72 100644
      --- a/docs/netmiko/netgear/netgear_prosafe_ssh.html
      +++ b/docs/netmiko/netgear/netgear_prosafe_ssh.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.netgear.netgear_prosafe_ssh

      Expand source code
      """ProSafe OS support"""
      +
       import time
       from typing import Any
       
      diff --git a/docs/netmiko/oneaccess/oneaccess_oneos.html b/docs/netmiko/oneaccess/oneaccess_oneos.html
      index fc10f24f5..0e524f66e 100644
      --- a/docs/netmiko/oneaccess/oneaccess_oneos.html
      +++ b/docs/netmiko/oneaccess/oneaccess_oneos.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.oneaccess.oneaccess_oneos

      Expand source code
      """Netmiko driver for OneAccess ONEOS"""
      +
       from typing import Any
       
       from netmiko.cisco_base_connection import CiscoBaseConnection
      diff --git a/docs/netmiko/raisecom/index.html b/docs/netmiko/raisecom/index.html
      index 16adedf4b..105720d29 100644
      --- a/docs/netmiko/raisecom/index.html
      +++ b/docs/netmiko/raisecom/index.html
      @@ -459,7 +459,7 @@ 

      Inherited members

      # set callback function to handle telnet options. assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore delay_factor = self.select_delay_factor(delay_factor) time.sleep(1 * delay_factor) @@ -499,7 +499,7 @@

      Inherited members

      time.sleep(0.5 * delay_factor) i += 1 except EOFError: - self.remote_conn.close() + self.remote_conn.close() # type: ignore msg = f"Login failed: {self.host}" raise NetmikoAuthenticationException(msg) @@ -514,7 +514,7 @@

      Inherited members

      return return_msg msg = f"Login failed: {self.host}" - self.remote_conn.close() + self.remote_conn.close() # type: ignore raise NetmikoAuthenticationException(msg)

      Ancestors

      diff --git a/docs/netmiko/raisecom/raisecom_roap.html b/docs/netmiko/raisecom/raisecom_roap.html index f7fd7a991..cc5169833 100644 --- a/docs/netmiko/raisecom/raisecom_roap.html +++ b/docs/netmiko/raisecom/raisecom_roap.html @@ -31,7 +31,19 @@

      Module netmiko.raisecom.raisecom_roap

      import time from socket import socket -from telnetlib import IAC, DO, DONT, WILL, WONT, SB, SE, ECHO, SGA, NAWS, Telnet +from netmiko._telnetlib.telnetlib import ( + IAC, + DO, + DONT, + WILL, + WONT, + SB, + SE, + ECHO, + SGA, + NAWS, + Telnet, +) from netmiko.exceptions import NetmikoAuthenticationException @@ -128,7 +140,7 @@

      Module netmiko.raisecom.raisecom_roap

      # set callback function to handle telnet options. assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore delay_factor = self.select_delay_factor(delay_factor) time.sleep(1 * delay_factor) @@ -168,7 +180,7 @@

      Module netmiko.raisecom.raisecom_roap

      time.sleep(0.5 * delay_factor) i += 1 except EOFError: - self.remote_conn.close() + self.remote_conn.close() # type: ignore msg = f"Login failed: {self.host}" raise NetmikoAuthenticationException(msg) @@ -183,7 +195,7 @@

      Module netmiko.raisecom.raisecom_roap

      return return_msg msg = f"Login failed: {self.host}" - self.remote_conn.close() + self.remote_conn.close() # type: ignore raise NetmikoAuthenticationException(msg)
      @@ -849,7 +861,7 @@

      Inherited members

      # set callback function to handle telnet options. assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore delay_factor = self.select_delay_factor(delay_factor) time.sleep(1 * delay_factor) @@ -889,7 +901,7 @@

      Inherited members

      time.sleep(0.5 * delay_factor) i += 1 except EOFError: - self.remote_conn.close() + self.remote_conn.close() # type: ignore msg = f"Login failed: {self.host}" raise NetmikoAuthenticationException(msg) @@ -904,7 +916,7 @@

      Inherited members

      return return_msg msg = f"Login failed: {self.host}" - self.remote_conn.close() + self.remote_conn.close() # type: ignore raise NetmikoAuthenticationException(msg)

      Ancestors

      diff --git a/docs/netmiko/ruckus/index.html b/docs/netmiko/ruckus/index.html index 664450a8a..a250538db 100644 --- a/docs/netmiko/ruckus/index.html +++ b/docs/netmiko/ruckus/index.html @@ -387,7 +387,7 @@

      Inherited members

      def telnet_login(self, *args: Any, **kwargs: Any) -> str: # set callback function to handle telnet options. assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore return super().telnet_login(*args, **kwargs)

      Ancestors

      diff --git a/docs/netmiko/ruckus/ruckus_fastiron.html b/docs/netmiko/ruckus/ruckus_fastiron.html index 35f15145c..5d302a32d 100644 --- a/docs/netmiko/ruckus/ruckus_fastiron.html +++ b/docs/netmiko/ruckus/ruckus_fastiron.html @@ -31,7 +31,7 @@

      Module netmiko.ruckus.ruckus_fastiron

      from socket import socket from typing import Optional, Any -from telnetlib import DO, DONT, ECHO, IAC, WILL, WONT, Telnet +from netmiko._telnetlib.telnetlib import DO, DONT, ECHO, IAC, WILL, WONT, Telnet from netmiko.cisco_base_connection import CiscoSSHConnection @@ -131,7 +131,7 @@

      Module netmiko.ruckus.ruckus_fastiron

      def telnet_login(self, *args: Any, **kwargs: Any) -> str: # set callback function to handle telnet options. assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore return super().telnet_login(*args, **kwargs) @@ -854,7 +854,7 @@

      Inherited members

      def telnet_login(self, *args: Any, **kwargs: Any) -> str: # set callback function to handle telnet options. assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore return super().telnet_login(*args, **kwargs)

      Ancestors

      diff --git a/docs/netmiko/ruijie/ruijie_os.html b/docs/netmiko/ruijie/ruijie_os.html index d82849d28..4a8316c66 100644 --- a/docs/netmiko/ruijie/ruijie_os.html +++ b/docs/netmiko/ruijie/ruijie_os.html @@ -28,6 +28,7 @@

      Module netmiko.ruijie.ruijie_os

      Expand source code
      """Ruijie RGOS Support"""
      +
       import time
       from typing import Any
       
      diff --git a/docs/netmiko/scp_functions.html b/docs/netmiko/scp_functions.html
      index d5fac3392..49c6a855d 100644
      --- a/docs/netmiko/scp_functions.html
      +++ b/docs/netmiko/scp_functions.html
      @@ -36,6 +36,7 @@ 

      Module netmiko.scp_functions

      SCP requires a separate SSH connection for a control channel. """ + from typing import AnyStr, Optional, Callable, Any, Dict from typing import TYPE_CHECKING from netmiko.scp_handler import BaseFileTransfer diff --git a/docs/netmiko/scp_handler.html b/docs/netmiko/scp_handler.html index de0b9edd6..079745f11 100644 --- a/docs/netmiko/scp_handler.html +++ b/docs/netmiko/scp_handler.html @@ -36,6 +36,7 @@

      Module netmiko.scp_handler

      SCP requires a separate SSH connection for a control channel. """ + from typing import Callable, Optional, Any, Type from typing import TYPE_CHECKING from types import TracebackType diff --git a/docs/netmiko/snmp_autodetect.html b/docs/netmiko/snmp_autodetect.html index 7f89ec393..c4a228f85 100644 --- a/docs/netmiko/snmp_autodetect.html +++ b/docs/netmiko/snmp_autodetect.html @@ -62,6 +62,7 @@

      Example:

      Note, pysnmp is a required dependency for SNMPDetect and is intentionally not included in netmiko requirements. So installation of pysnmp might be required. """ + from typing import Optional, Dict, List from typing.re import Pattern import re diff --git a/docs/netmiko/sophos/index.html b/docs/netmiko/sophos/index.html index ebf7262be..2333414cd 100644 --- a/docs/netmiko/sophos/index.html +++ b/docs/netmiko/sophos/index.html @@ -186,7 +186,7 @@

      Classes

      class SophosSfosSSH(NoEnable, NoConfig, CiscoSSHConnection):
           def session_preparation(self) -> None:
               """Prepare the session after the connection has been established."""
      -        self._test_channel_read()
      +        self._test_channel_read(pattern=r"Main Menu")
               """
               Sophos Firmware Version SFOS 18.0.0 GA-Build339
       
      @@ -203,8 +203,8 @@ 

      Classes

      Select Menu Number [0-7]: """ - self.write_channel("4" + self.RETURN) - self._test_channel_read(pattern=r"[console>]") + self.write_channel(SOPHOS_MENU_DEFAULT + self.RETURN) + self._test_channel_read(pattern=r"[#>]") self.set_base_prompt() # Clear the read buffer time.sleep(0.3 * self.global_delay_factor) @@ -249,7 +249,7 @@

      Methods

      def session_preparation(self) -> None:
           """Prepare the session after the connection has been established."""
      -    self._test_channel_read()
      +    self._test_channel_read(pattern=r"Main Menu")
           """
           Sophos Firmware Version SFOS 18.0.0 GA-Build339
       
      @@ -266,8 +266,8 @@ 

      Methods

      Select Menu Number [0-7]: """ - self.write_channel("4" + self.RETURN) - self._test_channel_read(pattern=r"[console>]") + self.write_channel(SOPHOS_MENU_DEFAULT + self.RETURN) + self._test_channel_read(pattern=r"[#>]") self.set_base_prompt() # Clear the read buffer time.sleep(0.3 * self.global_delay_factor) diff --git a/docs/netmiko/sophos/sophos_sfos_ssh.html b/docs/netmiko/sophos/sophos_sfos_ssh.html index 7c3acb6f1..ad4f05ede 100644 --- a/docs/netmiko/sophos/sophos_sfos_ssh.html +++ b/docs/netmiko/sophos/sophos_sfos_ssh.html @@ -28,18 +28,23 @@

      Module netmiko.sophos.sophos_sfos_ssh

      Expand source code
      """SophosXG (SFOS) Firewall support"""
      -import time
      +
       from typing import Any
      +import time
      +import os
       
       from netmiko.no_enable import NoEnable
       from netmiko.no_config import NoConfig
       from netmiko.cisco_base_connection import CiscoSSHConnection
       
       
      +SOPHOS_MENU_DEFAULT = os.getenv("NETMIKO_SOPHOS_MENU", "4")
      +
      +
       class SophosSfosSSH(NoEnable, NoConfig, CiscoSSHConnection):
           def session_preparation(self) -> None:
               """Prepare the session after the connection has been established."""
      -        self._test_channel_read()
      +        self._test_channel_read(pattern=r"Main Menu")
               """
               Sophos Firmware Version SFOS 18.0.0 GA-Build339
       
      @@ -56,8 +61,8 @@ 

      Module netmiko.sophos.sophos_sfos_ssh

      Select Menu Number [0-7]: """ - self.write_channel("4" + self.RETURN) - self._test_channel_read(pattern=r"[console>]") + self.write_channel(SOPHOS_MENU_DEFAULT + self.RETURN) + self._test_channel_read(pattern=r"[#>]") self.set_base_prompt() # Clear the read buffer time.sleep(0.3 * self.global_delay_factor) @@ -216,7 +221,7 @@

      Classes

      class SophosSfosSSH(NoEnable, NoConfig, CiscoSSHConnection):
           def session_preparation(self) -> None:
               """Prepare the session after the connection has been established."""
      -        self._test_channel_read()
      +        self._test_channel_read(pattern=r"Main Menu")
               """
               Sophos Firmware Version SFOS 18.0.0 GA-Build339
       
      @@ -233,8 +238,8 @@ 

      Classes

      Select Menu Number [0-7]: """ - self.write_channel("4" + self.RETURN) - self._test_channel_read(pattern=r"[console>]") + self.write_channel(SOPHOS_MENU_DEFAULT + self.RETURN) + self._test_channel_read(pattern=r"[#>]") self.set_base_prompt() # Clear the read buffer time.sleep(0.3 * self.global_delay_factor) @@ -279,7 +284,7 @@

      Methods

      def session_preparation(self) -> None:
           """Prepare the session after the connection has been established."""
      -    self._test_channel_read()
      +    self._test_channel_read(pattern=r"Main Menu")
           """
           Sophos Firmware Version SFOS 18.0.0 GA-Build339
       
      @@ -296,8 +301,8 @@ 

      Methods

      Select Menu Number [0-7]: """ - self.write_channel("4" + self.RETURN) - self._test_channel_read(pattern=r"[console>]") + self.write_channel(SOPHOS_MENU_DEFAULT + self.RETURN) + self._test_channel_read(pattern=r"[#>]") self.set_base_prompt() # Clear the read buffer time.sleep(0.3 * self.global_delay_factor) diff --git a/docs/netmiko/ssh_autodetect.html b/docs/netmiko/ssh_autodetect.html index 4ebc4ee44..e05f48cfb 100644 --- a/docs/netmiko/ssh_autodetect.html +++ b/docs/netmiko/ssh_autodetect.html @@ -100,6 +100,7 @@

      Netmiko connection creation section >>> remote_device['device_type'] = best_match >>> connection = ConnectHandler(**remote_device) """ + from typing import Any, List, Optional, Union, Dict import re import time @@ -156,6 +157,12 @@

      Netmiko connection creation section "priority": 99, "dispatch": "_autodetect_std", }, + "cisco_ftd": { + "cmd": "show version", + "search_patterns": [r"Cisco Firepower"], + "priority": 99, + "dispatch": "_autodetect_std", + }, "cisco_ios": { "cmd": "show version", "search_patterns": [ @@ -364,6 +371,12 @@

      Netmiko connection creation section "priority": 99, "dispatch": "_autodetect_std", }, + "netgear_prosafe": { + "cmd": "show version", + "search_patterns": [r"ProSAFE"], + "priority": 99, + "dispatch": "_autodetect_std", + }, } # Sort SSH_MAPPER_DICT such that the most common commands are first diff --git a/docs/netmiko/telnet_proxy.html b/docs/netmiko/telnet_proxy.html index bf3ff3742..861c621bc 100644 --- a/docs/netmiko/telnet_proxy.html +++ b/docs/netmiko/telnet_proxy.html @@ -28,7 +28,7 @@

      Module netmiko.telnet_proxy

      from typing import Dict, Any, Optional
       import socket
      -import telnetlib
      +from netmiko._telnetlib import telnetlib
       
       try:
           import socks
      @@ -47,7 +47,7 @@ 

      Module netmiko.telnet_proxy

      proxy_dict: Optional[Dict[str, Any]] = None, ) -> None: self.proxy_dict = proxy_dict - super().__init__(host=host, port=port, timeout=timeout) + super().__init__(host=host, port=port, timeout=timeout) # type: ignore def open( self, @@ -162,7 +162,7 @@

      Classes

      proxy_dict: Optional[Dict[str, Any]] = None, ) -> None: self.proxy_dict = proxy_dict - super().__init__(host=host, port=port, timeout=timeout) + super().__init__(host=host, port=port, timeout=timeout) # type: ignore def open( self, @@ -205,7 +205,7 @@

      Classes

      Ancestors

        -
      • telnetlib.Telnet
      • +
      • netmiko._telnetlib.telnetlib.Telnet

      Methods

      diff --git a/docs/netmiko/terminal_server/terminal_server.html b/docs/netmiko/terminal_server/terminal_server.html index 8c2b2aaee..d2e4890ba 100644 --- a/docs/netmiko/terminal_server/terminal_server.html +++ b/docs/netmiko/terminal_server/terminal_server.html @@ -28,6 +28,7 @@

      Module netmiko.terminal_server.terminal_serverExpand source code
      """Generic Terminal Server driver."""
      +
       from typing import Any
       
       from netmiko.base_connection import BaseConnection
      diff --git a/docs/netmiko/utilities.html b/docs/netmiko/utilities.html
      index e07c3514c..de4a93c67 100644
      --- a/docs/netmiko/utilities.html
      +++ b/docs/netmiko/utilities.html
      @@ -28,6 +28,7 @@ 

      Module netmiko.utilities

      Expand source code
      """Miscellaneous utility functions."""
      +
       from typing import (
           Any,
           AnyStr,
      diff --git a/docs/netmiko/zte/index.html b/docs/netmiko/zte/index.html
      index 5bda59ed5..ec3cf84af 100644
      --- a/docs/netmiko/zte/index.html
      +++ b/docs/netmiko/zte/index.html
      @@ -389,7 +389,7 @@ 

      Inherited members

      def telnet_login(self, *args: Any, **kwargs: Any) -> str: # set callback function to handle telnet options. assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore return super().telnet_login(*args, **kwargs)

      Ancestors

      diff --git a/docs/netmiko/zte/zte_zxros.html b/docs/netmiko/zte/zte_zxros.html index 5f35d4e10..50915dc0d 100644 --- a/docs/netmiko/zte/zte_zxros.html +++ b/docs/netmiko/zte/zte_zxros.html @@ -31,7 +31,19 @@

      Module netmiko.zte.zte_zxros

      from typing import Any from netmiko.cisco_base_connection import CiscoBaseConnection -from telnetlib import IAC, DO, DONT, WILL, WONT, SB, SE, ECHO, SGA, NAWS, Telnet +from netmiko._telnetlib.telnetlib import ( + IAC, + DO, + DONT, + WILL, + WONT, + SB, + SE, + ECHO, + SGA, + NAWS, + Telnet, +) class ZteZxrosBase(CiscoBaseConnection): @@ -90,7 +102,7 @@

      Module netmiko.zte.zte_zxros

      def telnet_login(self, *args: Any, **kwargs: Any) -> str: # set callback function to handle telnet options. assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore return super().telnet_login(*args, **kwargs)
      @@ -696,7 +708,7 @@

      Inherited members

      def telnet_login(self, *args: Any, **kwargs: Any) -> str: # set callback function to handle telnet options. assert isinstance(self.remote_conn, Telnet) - self.remote_conn.set_option_negotiation_callback(self._process_option) + self.remote_conn.set_option_negotiation_callback(self._process_option) # type: ignore return super().telnet_login(*args, **kwargs)

      Ancestors

      diff --git a/release_process.txt b/release_process.txt index a09178089..87708bc9b 100644 --- a/release_process.txt +++ b/release_process.txt @@ -18,12 +18,9 @@ $ pdoc3 --html --output-dir docs netmiko --force # Run ./_release.sh # Create a tag for the version -git tag -a v4.3.0 -m "Version 4.3.0 Release" -git push origin_ssh v4.2.0 +git tag -a v4.4.0 -m "Version 4.4.0 Release" +git push origin_ssh v4.4.0 # Make sure to run the performance tests for the new release and to update the graphs! -# Update license dependencies (then edit the file) -pip-licenses -o license >> license-dependencies.txt - # Regenerate device types for PLATFORMS.md document From 07e0ac1b4a807329fb5f87573f66913977c848f9 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Mon, 8 Jul 2024 15:08:10 -0700 Subject: [PATCH 3/5] Rolling version in dunder-init --- netmiko/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netmiko/__init__.py b/netmiko/__init__.py index bfc1cd44b..7d7092e4e 100644 --- a/netmiko/__init__.py +++ b/netmiko/__init__.py @@ -1,6 +1,6 @@ import sys -__version__ = "4.3.0" +__version__ = "4.4.0" PY_MAJ_VER = 3 PY_MIN_VER = 8 MIN_PYTHON_VER = "3.8" From 3d4680e5e17cde1340642a3ffc5766dda0299ddb Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Mon, 8 Jul 2024 15:49:42 -0700 Subject: [PATCH 4/5] Add Query Device Code to ANSI Escape Codes for MikroTik (#3457) * Add code 'ESC[c' into method 'strip_ansi_escape_codes' Co-authored-by: Maxim Shpak --- netmiko/base_connection.py | 9 +++++---- tests/unit/test_base_connection.py | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/netmiko/base_connection.py b/netmiko/base_connection.py index 307223da9..e6f0b62e9 100644 --- a/netmiko/base_connection.py +++ b/netmiko/base_connection.py @@ -2344,7 +2344,7 @@ def strip_ansi_escape_codes(self, string_buffer: str) -> str: http://en.wikipedia.org/wiki/ANSI_escape_code Note: this does not capture ALL possible ANSI Escape Codes only the ones - I have encountered + that have been encountered Current codes that are filtered: ESC = '\x1b' or chr(27) @@ -2362,9 +2362,8 @@ def strip_ansi_escape_codes(self, string_buffer: str) -> str: ESC[6n Get cursor position ESC[1D Move cursor position leftward by x characters (1 in this case) ESC[9999B Move cursor down N-lines (very large value is attempt to move to the - very bottom of the screen). - - HP ProCurve and Cisco SG300 require this (possible others). + very bottom of the screen) + ESC[c Query Device (used by MikroTik in 'Safe-Mode') :param string_buffer: The string to be processed to remove ANSI escape codes :type string_buffer: str @@ -2399,6 +2398,7 @@ def strip_ansi_escape_codes(self, string_buffer: str) -> str: code_cursor_down = chr(27) + r"\[\d*B" code_wrap_around = chr(27) + r"\[\?7h" code_bracketed_paste_mode = chr(27) + r"\[\?2004h" + code_query_device = chr(27) + r"\[c" code_set = [ code_position_cursor, @@ -2429,6 +2429,7 @@ def strip_ansi_escape_codes(self, string_buffer: str) -> str: code_cursor_forward, code_wrap_around, code_bracketed_paste_mode, + code_query_device, ] output = string_buffer diff --git a/tests/unit/test_base_connection.py b/tests/unit/test_base_connection.py index 1e8b7d037..a7de4bca0 100755 --- a/tests/unit/test_base_connection.py +++ b/tests/unit/test_base_connection.py @@ -468,6 +468,7 @@ def test_strip_ansi_codes(): "\x1b[J", # code_erase_display "\x1b[0m", # code_attrs_off "\x1b[7m", # code_reverse + "\x1b[c", # code_query_device ] for ansi_code in ansi_codes_to_strip: assert connection.strip_ansi_escape_codes(ansi_code) == "" From e3acedd0585851afac38240c146ab2bd1943e942 Mon Sep 17 00:00:00 2001 From: Kirk Byers Date: Tue, 9 Jul 2024 18:45:22 -0700 Subject: [PATCH 5/5] Mikrotik free version ssh login fix (with minor updates) (#3458) Co-authored-by: meganerd --- netmiko/mikrotik/mikrotik_ssh.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/netmiko/mikrotik/mikrotik_ssh.py b/netmiko/mikrotik/mikrotik_ssh.py index 5f4ae458e..a4e81eda6 100644 --- a/netmiko/mikrotik/mikrotik_ssh.py +++ b/netmiko/mikrotik/mikrotik_ssh.py @@ -21,11 +21,25 @@ def __init__(self, **kwargs: Any) -> None: return super().__init__(**kwargs) def special_login_handler(self, delay_factor: float = 1.0) -> None: - # Mikrotik might prompt to read software licenses before displaying the initial prompt. + """Handles special case scenarios for logins that might be encountered. + + Special cases: + Mikrotik might prompt to read software licenses before displaying the initial prompt. + Mikrotik might also prompt for acknowledging no software key message if unlicensed. + """ + no_license_message = 'Please press "Enter" to continue!' license_prompt = "Do you want to see the software license" - combined_pattern = rf"(?:{self.prompt_pattern}|{license_prompt})" + combined_pattern = ( + rf"(?:{self.prompt_pattern}|{no_license_message}|{license_prompt})" + ) + data = self.read_until_pattern(pattern=combined_pattern, re_flags=re.I) - if license_prompt in data: + if no_license_message in data: + # Handle "no license" message + self.write_channel(self.RETURN) + self.read_until_pattern(pattern=self.prompt_pattern) + elif license_prompt in data: + # Handle software license prompt self.write_channel("n") self.read_until_pattern(pattern=self.prompt_pattern)