From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BEBE545482; Mon, 17 Jun 2024 17:28:34 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id B0F224064E; Mon, 17 Jun 2024 17:28:34 +0200 (CEST) Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by mails.dpdk.org (Postfix) with ESMTP id 8E2FA402AB for ; Mon, 17 Jun 2024 17:28:33 +0200 (CEST) Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-2ebd6ae2f56so5064671fa.0 for ; Mon, 17 Jun 2024 08:28:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; t=1718638113; x=1719242913; darn=dpdk.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=dOlB/maoC9rK6vs2espp5sZ7FGoo50bdczuxrUT3pHQ=; b=PXjOo7S1ce+PDbUl9Vh0I6JWZkGbqAtclQUA6b1Z+psdN8mR62IUij5b3P2lioD29f q6X0Z1x/NLqM0KPfwKtm0ynk7JkuGvS3YpoG1ocxhgJY61+aYH0RlqNyDguciC06eXBA mX2FSG1Ynh7AvS+qXCVvnmCH+lcaE7TslCbwU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718638113; x=1719242913; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dOlB/maoC9rK6vs2espp5sZ7FGoo50bdczuxrUT3pHQ=; b=qI6HMgr32Hj/KpVZY9/2GS8dce7NdsSVANo/5NWv+mCgzOoQWBFWCXaCq3JwwPiJFR 7GjAaru92sflAlMGwRzY//1FdWeMY5RSlJu0ihNeTyjtbURGghs1hyG6QWI+bNMiRZR0 auyVN/Lo/hdPteqdXrpnP5NtoyscwM0rlpkWBYfPeOMX7rYGwe6pUu+dCFSbZS5VUp8y /fDpm0v27X7GCCqnwOYt4y4ZfoEH6mWL7EcWhjPUEE9ZVxvoD3l9eqP7co3o7hVpoKUH I2Mvom8+2opcfj+faZnqX3+J8IiatdKUhXfxNCSSSFcRREx4XqsG0+20MD0FOi03kXNw yLsQ== X-Gm-Message-State: AOJu0Yy86tQq8hQWbRwWvnuueDRU12SeenGQfW5ZMqbibZclHTuNfo+y /V05R2Jbsh8ziCQYlo+J2Gw1peu3Kr0nW5FUCkpi8KDA11CIRkJyQVesAUXH1SUWwEwyyLoD89u z4K+Z3uy3Su07S25dB2NynL43dBvibrQ9+6ceTq7DN+sdL3fa5EU= X-Google-Smtp-Source: AGHT+IEEDFxyc8V/8q9ndM8iFvagMdpd8NNfCH/QKOhtyVynZixhwJcp2UttS45K14Wkhl78Xi7vAMx3+wU535OisOw= X-Received: by 2002:a2e:be11:0:b0:2eb:e738:53b2 with SMTP id 38308e7fff4ca-2ec0e463c53mr71315861fa.1.1718638111894; Mon, 17 Jun 2024 08:28:31 -0700 (PDT) MIME-Version: 1.0 References: <20240509105704.1162449-1-luca.vizzarro@arm.com> <20240530151951.388179-1-luca.vizzarro@arm.com> <20240530151951.388179-2-luca.vizzarro@arm.com> In-Reply-To: <20240530151951.388179-2-luca.vizzarro@arm.com> From: Nicholas Pratte Date: Mon, 17 Jun 2024 11:28:20 -0400 Message-ID: Subject: Re: [PATCH v3 1/2] dts: update mypy static checker To: Luca Vizzarro Cc: dev@dpdk.org, =?UTF-8?Q?Juraj_Linke=C5=A1?= , Jeremy Spewock , Paul Szczepanek Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Tested-by: Nicholas Pratte Reviewed-by: Nicholas Pratte On Thu, May 30, 2024 at 11:20=E2=80=AFAM Luca Vizzarro wrote: > > Update the mypy static checker to the latest version and fix all the > reported errors. > > Bump up supported Poetry shell version. > > Bugzilla ID: 1433 > > Signed-off-by: Luca Vizzarro > Reviewed-by: Paul Szczepanek > --- > doc/guides/tools/dts.rst | 2 +- > dts/Dockerfile | 2 +- > dts/framework/config/__init__.py | 2 +- > dts/framework/logger.py | 4 +- > .../interactive_remote_session.py | 4 +- > .../remote_session/interactive_shell.py | 2 +- > dts/framework/remote_session/ssh_session.py | 6 +- > dts/framework/runner.py | 12 +-- > dts/framework/test_result.py | 4 +- > dts/framework/test_suite.py | 6 +- > dts/framework/testbed_model/tg_node.py | 2 +- > .../capturing_traffic_generator.py | 4 +- > .../testbed_model/traffic_generator/scapy.py | 6 +- > .../traffic_generator/traffic_generator.py | 2 +- > dts/framework/utils.py | 2 +- > dts/poetry.lock | 86 +++++++++++-------- > dts/pyproject.toml | 2 +- > dts/tests/TestSuite_os_udp.py | 4 +- > dts/tests/TestSuite_pmd_buffer_scatter.py | 8 +- > 19 files changed, 88 insertions(+), 72 deletions(-) > > diff --git a/doc/guides/tools/dts.rst b/doc/guides/tools/dts.rst > index 47b218b2c6..91560ee326 100644 > --- a/doc/guides/tools/dts.rst > +++ b/doc/guides/tools/dts.rst > @@ -82,7 +82,7 @@ Setting up DTS environment > Another benefit is the usage of ``pyproject.toml``, which has become = the standard config file > for python projects, improving project organization. > To install Poetry, visit their `doc pages `_. > - The recommended Poetry version is at least 1.5.1. > + The recommended Poetry version is at least 1.8.2. > > #. **Getting a Poetry shell** > > diff --git a/dts/Dockerfile b/dts/Dockerfile > index fa4c1af10e..a81e46c41a 100644 > --- a/dts/Dockerfile > +++ b/dts/Dockerfile > @@ -14,7 +14,7 @@ RUN apt-get -y update && apt-get -y upgrade && \ > pipx \ > python3-cachecontrol \ > openssh-client && \ > - pipx install poetry>=3D1.5.1 && pipx ensurepath > + pipx install poetry>=3D1.8.2 && pipx ensurepath > WORKDIR /dpdk/dts > > > diff --git a/dts/framework/config/__init__.py b/dts/framework/config/__in= it__.py > index 4cb5c74059..6b2ad2b16d 100644 > --- a/dts/framework/config/__init__.py > +++ b/dts/framework/config/__init__.py > @@ -40,7 +40,7 @@ > from pathlib import Path > from typing import Union > > -import warlock # type: ignore[import] > +import warlock # type: ignore[import-untyped] > import yaml > > from framework.config.types import ( > diff --git a/dts/framework/logger.py b/dts/framework/logger.py > index fc6c50c983..5b88725481 100644 > --- a/dts/framework/logger.py > +++ b/dts/framework/logger.py > @@ -79,7 +79,7 @@ def makeRecord(self, *args, **kwargs) -> logging.LogRec= ord: > record: The generated record with the stage information. > """ > record =3D super().makeRecord(*args, **kwargs) > - record.stage =3D DTSLogger._stage # type: ignore[attr-defined] > + record.stage =3D DTSLogger._stage > return record > > def add_dts_root_logger_handlers(self, verbose: bool, output_dir: st= r) -> None: > @@ -178,7 +178,7 @@ def _remove_extra_file_handlers(self) -> None: > self._extra_file_handlers =3D [] > > > -def get_dts_logger(name: str =3D None) -> DTSLogger: > +def get_dts_logger(name: str | None =3D None) -> DTSLogger: > """Return a DTS logger instance identified by `name`. > > Args: > diff --git a/dts/framework/remote_session/interactive_remote_session.py b= /dts/framework/remote_session/interactive_remote_session.py > index c50790db79..97194e6af8 100644 > --- a/dts/framework/remote_session/interactive_remote_session.py > +++ b/dts/framework/remote_session/interactive_remote_session.py > @@ -6,8 +6,8 @@ > import socket > import traceback > > -from paramiko import AutoAddPolicy, SSHClient, Transport # type: ignore= [import] > -from paramiko.ssh_exception import ( # type: ignore[import] > +from paramiko import AutoAddPolicy, SSHClient, Transport # type: ignore= [import-untyped] > +from paramiko.ssh_exception import ( # type: ignore[import-untyped] > AuthenticationException, > BadHostKeyException, > NoValidConnectionsError, > diff --git a/dts/framework/remote_session/interactive_shell.py b/dts/fram= ework/remote_session/interactive_shell.py > index 5cfe202e15..074a541279 100644 > --- a/dts/framework/remote_session/interactive_shell.py > +++ b/dts/framework/remote_session/interactive_shell.py > @@ -18,7 +18,7 @@ > from pathlib import PurePath > from typing import Callable, ClassVar > > -from paramiko import Channel, SSHClient, channel # type: ignore[import] > +from paramiko import Channel, SSHClient, channel # type: ignore[import-= untyped] > > from framework.logger import DTSLogger > from framework.settings import SETTINGS > diff --git a/dts/framework/remote_session/ssh_session.py b/dts/framework/= remote_session/ssh_session.py > index 782220092c..216bd25aed 100644 > --- a/dts/framework/remote_session/ssh_session.py > +++ b/dts/framework/remote_session/ssh_session.py > @@ -7,13 +7,13 @@ > import traceback > from pathlib import PurePath > > -from fabric import Connection # type: ignore[import] > -from invoke.exceptions import ( # type: ignore[import] > +from fabric import Connection # type: ignore[import-untyped] > +from invoke.exceptions import ( # type: ignore[import-untyped] > CommandTimedOut, > ThreadException, > UnexpectedExit, > ) > -from paramiko.ssh_exception import ( # type: ignore[import] > +from paramiko.ssh_exception import ( # type: ignore[import-untyped] > AuthenticationException, > BadHostKeyException, > NoValidConnectionsError, > diff --git a/dts/framework/runner.py b/dts/framework/runner.py > index db8e3ba96b..dfdee14802 100644 > --- a/dts/framework/runner.py > +++ b/dts/framework/runner.py > @@ -23,7 +23,7 @@ > import re > import sys > from pathlib import Path > -from types import MethodType > +from types import FunctionType > from typing import Iterable, Sequence > > from .config import ( > @@ -94,7 +94,7 @@ def __init__(self): > self._func_test_case_regex =3D r"test_(?!perf_)" > self._perf_test_case_regex =3D r"test_perf_" > > - def run(self): > + def run(self) -> None: > """Run all build targets in all executions from the test run con= figuration. > > Before running test suites, executions and build targets are fir= st set up. > @@ -305,7 +305,7 @@ def is_test_suite(object) -> bool: > > def _filter_test_cases( > self, test_suite_class: type[TestSuite], test_cases_to_run: Sequ= ence[str] > - ) -> tuple[list[MethodType], list[MethodType]]: > + ) -> tuple[list[FunctionType], list[FunctionType]]: > """Filter `test_cases_to_run` from `test_suite_class`. > > There are two rounds of filtering if `test_cases_to_run` is not = empty. > @@ -593,7 +593,7 @@ def _run_test_suite( > def _execute_test_suite( > self, > test_suite: TestSuite, > - test_cases: Iterable[MethodType], > + test_cases: Iterable[FunctionType], > test_suite_result: TestSuiteResult, > ) -> None: > """Execute all `test_cases` in `test_suite`. > @@ -626,7 +626,7 @@ def _execute_test_suite( > def _run_test_case( > self, > test_suite: TestSuite, > - test_case_method: MethodType, > + test_case_method: FunctionType, > test_case_result: TestCaseResult, > ) -> None: > """Setup, execute and teardown `test_case_method` from `test_sui= te`. > @@ -672,7 +672,7 @@ def _run_test_case( > def _execute_test_case( > self, > test_suite: TestSuite, > - test_case_method: MethodType, > + test_case_method: FunctionType, > test_case_result: TestCaseResult, > ) -> None: > """Execute `test_case_method` from `test_suite`, record the resu= lt and handle failures. > diff --git a/dts/framework/test_result.py b/dts/framework/test_result.py > index 28f84fd793..d8d0fe2b2b 100644 > --- a/dts/framework/test_result.py > +++ b/dts/framework/test_result.py > @@ -27,7 +27,7 @@ > from collections.abc import MutableSequence > from dataclasses import dataclass > from enum import Enum, auto > -from types import MethodType > +from types import FunctionType > from typing import Union > > from .config import ( > @@ -63,7 +63,7 @@ class is to hold a subset of test cases (which could be= all test cases) because > """ > > test_suite_class: type[TestSuite] > - test_cases: list[MethodType] > + test_cases: list[FunctionType] > > def create_config(self) -> TestSuiteConfig: > """Generate a :class:`TestSuiteConfig` from the stored test suit= e with test cases. > diff --git a/dts/framework/test_suite.py b/dts/framework/test_suite.py > index 9c3b516002..8768f756a6 100644 > --- a/dts/framework/test_suite.py > +++ b/dts/framework/test_suite.py > @@ -16,9 +16,9 @@ > from ipaddress import IPv4Interface, IPv6Interface, ip_interface > from typing import ClassVar, Union > > -from scapy.layers.inet import IP # type: ignore[import] > -from scapy.layers.l2 import Ether # type: ignore[import] > -from scapy.packet import Packet, Padding # type: ignore[import] > +from scapy.layers.inet import IP # type: ignore[import-untyped] > +from scapy.layers.l2 import Ether # type: ignore[import-untyped] > +from scapy.packet import Packet, Padding # type: ignore[import-untyped] > > from .exception import TestCaseVerifyError > from .logger import DTSLogger, get_dts_logger > diff --git a/dts/framework/testbed_model/tg_node.py b/dts/framework/testb= ed_model/tg_node.py > index d3206e87e0..164f790383 100644 > --- a/dts/framework/testbed_model/tg_node.py > +++ b/dts/framework/testbed_model/tg_node.py > @@ -9,7 +9,7 @@ > A TG node is where the TG runs. > """ > > -from scapy.packet import Packet # type: ignore[import] > +from scapy.packet import Packet # type: ignore[import-untyped] > > from framework.config import TGNodeConfiguration > > diff --git a/dts/framework/testbed_model/traffic_generator/capturing_traf= fic_generator.py b/dts/framework/testbed_model/traffic_generator/capturing_= traffic_generator.py > index e5a1560e90..c8380b7d57 100644 > --- a/dts/framework/testbed_model/traffic_generator/capturing_traffic_gen= erator.py > +++ b/dts/framework/testbed_model/traffic_generator/capturing_traffic_gen= erator.py > @@ -13,8 +13,8 @@ > from abc import abstractmethod > from dataclasses import dataclass > > -import scapy.utils # type: ignore[import] > -from scapy.packet import Packet # type: ignore[import] > +import scapy.utils # type: ignore[import-untyped] > +from scapy.packet import Packet # type: ignore[import-untyped] > > from framework.settings import SETTINGS > from framework.testbed_model.port import Port > diff --git a/dts/framework/testbed_model/traffic_generator/scapy.py b/dts= /framework/testbed_model/traffic_generator/scapy.py > index df3069d516..ed5467d825 100644 > --- a/dts/framework/testbed_model/traffic_generator/scapy.py > +++ b/dts/framework/testbed_model/traffic_generator/scapy.py > @@ -20,9 +20,9 @@ > import xmlrpc.client > from xmlrpc.server import SimpleXMLRPCServer > > -import scapy.all # type: ignore[import] > -from scapy.layers.l2 import Ether # type: ignore[import] > -from scapy.packet import Packet # type: ignore[import] > +import scapy.all # type: ignore[import-untyped] > +from scapy.layers.l2 import Ether # type: ignore[import-untyped] > +from scapy.packet import Packet # type: ignore[import-untyped] > > from framework.config import OS, ScapyTrafficGeneratorConfig > from framework.remote_session import PythonShell > diff --git a/dts/framework/testbed_model/traffic_generator/traffic_genera= tor.py b/dts/framework/testbed_model/traffic_generator/traffic_generator.py > index d86d7fb532..4ce1148706 100644 > --- a/dts/framework/testbed_model/traffic_generator/traffic_generator.py > +++ b/dts/framework/testbed_model/traffic_generator/traffic_generator.py > @@ -10,7 +10,7 @@ > > from abc import ABC, abstractmethod > > -from scapy.packet import Packet # type: ignore[import] > +from scapy.packet import Packet # type: ignore[import-untyped] > > from framework.config import TrafficGeneratorConfig > from framework.logger import DTSLogger, get_dts_logger > diff --git a/dts/framework/utils.py b/dts/framework/utils.py > index cc5e458cc8..74a11f1aaf 100644 > --- a/dts/framework/utils.py > +++ b/dts/framework/utils.py > @@ -21,7 +21,7 @@ > from pathlib import Path > from subprocess import SubprocessError > > -from scapy.packet import Packet # type: ignore[import] > +from scapy.packet import Packet # type: ignore[import-untyped] > > from .exception import ConfigurationError > > diff --git a/dts/poetry.lock b/dts/poetry.lock > index a734fa71f0..df9cecb7e0 100644 > --- a/dts/poetry.lock > +++ b/dts/poetry.lock > @@ -1,4 +1,4 @@ > -# This file is automatically @generated by Poetry 1.5.1 and should not b= e changed by hand. > +# This file is automatically @generated by Poetry 1.8.2 and should not b= e changed by hand. > > [[package]] > name =3D "attrs" > @@ -353,44 +353,49 @@ files =3D [ > > [[package]] > name =3D "mypy" > -version =3D "0.961" > +version =3D "1.10.0" > description =3D "Optional static typing for Python" > optional =3D false > -python-versions =3D ">=3D3.6" > +python-versions =3D ">=3D3.8" > files =3D [ > - {file =3D "mypy-0.961-cp310-cp310-macosx_10_9_universal2.whl", hash = =3D "sha256:697540876638ce349b01b6786bc6094ccdaba88af446a9abb967293ce6eaa2b= 0"}, > - {file =3D "mypy-0.961-cp310-cp310-macosx_10_9_x86_64.whl", hash =3D = "sha256:b117650592e1782819829605a193360a08aa99f1fc23d1d71e1a75a142dc7e15"}, > - {file =3D "mypy-0.961-cp310-cp310-macosx_11_0_arm64.whl", hash =3D "= sha256:bdd5ca340beffb8c44cb9dc26697628d1b88c6bddf5c2f6eb308c46f269bb6f3"}, > - {file =3D "mypy-0.961-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x8= 6_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash =3D "sha256:3e09= f1f983a71d0672bbc97ae33ee3709d10c779beb613febc36805a6e28bb4e"}, > - {file =3D "mypy-0.961-cp310-cp310-win_amd64.whl", hash =3D "sha256:e= 999229b9f3198c0c880d5e269f9f8129c8862451ce53a011326cad38b9ccd24"}, > - {file =3D "mypy-0.961-cp36-cp36m-macosx_10_9_x86_64.whl", hash =3D "= sha256:b24be97351084b11582fef18d79004b3e4db572219deee0212078f7cf6352723"}, > - {file =3D "mypy-0.961-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86= _64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash =3D "sha256:f4a21= d01fc0ba4e31d82f0fff195682e29f9401a8bdb7173891070eb260aeb3b"}, > - {file =3D "mypy-0.961-cp36-cp36m-win_amd64.whl", hash =3D "sha256:43= 9c726a3b3da7ca84a0199a8ab444cd8896d95012c4a6c4a0d808e3147abf5d"}, > - {file =3D "mypy-0.961-cp37-cp37m-macosx_10_9_x86_64.whl", hash =3D "= sha256:5a0b53747f713f490affdceef835d8f0cb7285187a6a44c33821b6d1f46ed813"}, > - {file =3D "mypy-0.961-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86= _64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash =3D "sha256:0e9f7= 0df36405c25cc530a86eeda1e0867863d9471fe76d1273c783df3d35c2e"}, > - {file =3D "mypy-0.961-cp37-cp37m-win_amd64.whl", hash =3D "sha256:b8= 8f784e9e35dcaa075519096dc947a388319cb86811b6af621e3523980f1c8a"}, > - {file =3D "mypy-0.961-cp38-cp38-macosx_10_9_universal2.whl", hash = =3D "sha256:d5aaf1edaa7692490f72bdb9fbd941fbf2e201713523bdb3f4038be0af8846c= 6"}, > - {file =3D "mypy-0.961-cp38-cp38-macosx_10_9_x86_64.whl", hash =3D "s= ha256:9f5f5a74085d9a81a1f9c78081d60a0040c3efb3f28e5c9912b900adf59a16e6"}, > - {file =3D "mypy-0.961-cp38-cp38-macosx_11_0_arm64.whl", hash =3D "sh= a256:f4b794db44168a4fc886e3450201365c9526a522c46ba089b55e1f11c163750d"}, > - {file =3D "mypy-0.961-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_= 64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash =3D "sha256:64759a= 273d590040a592e0f4186539858c948302c653c2eac840c7a3cd29e51b"}, > - {file =3D "mypy-0.961-cp38-cp38-win_amd64.whl", hash =3D "sha256:63e= 85a03770ebf403291ec50097954cc5caf2a9205c888ce3a61bd3f82e17569"}, > - {file =3D "mypy-0.961-cp39-cp39-macosx_10_9_universal2.whl", hash = =3D "sha256:5f1332964963d4832a94bebc10f13d3279be3ce8f6c64da563d6ee6e2eeda93= 2"}, > - {file =3D "mypy-0.961-cp39-cp39-macosx_10_9_x86_64.whl", hash =3D "s= ha256:006be38474216b833eca29ff6b73e143386f352e10e9c2fbe76aa8549e5554f5"}, > - {file =3D "mypy-0.961-cp39-cp39-macosx_11_0_arm64.whl", hash =3D "sh= a256:9940e6916ed9371809b35b2154baf1f684acba935cd09928952310fbddaba648"}, > - {file =3D "mypy-0.961-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_= 64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash =3D "sha256:a5ea08= 75a049de1b63b972456542f04643daf320d27dc592d7c3d9cd5d9bf950"}, > - {file =3D "mypy-0.961-cp39-cp39-win_amd64.whl", hash =3D "sha256:1ec= e702f29270ec6af25db8cf6185c04c02311c6bb21a69f423d40e527b75c56"}, > - {file =3D "mypy-0.961-py3-none-any.whl", hash =3D "sha256:03c6cc893e= 7563e7b2949b969e63f02c000b32502a1b4d1314cabe391aa87d66"}, > - {file =3D "mypy-0.961.tar.gz", hash =3D "sha256:f730d56cb924d371c26b= 8eaddeea3cc07d78ff51c521c6d04899ac6904b75492"}, > + {file =3D "mypy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash =3D= "sha256:da1cbf08fb3b851ab3b9523a884c232774008267b1f83371ace57f412fe308c2"}= , > + {file =3D "mypy-1.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash =3D = "sha256:12b6bfc1b1a66095ab413160a6e520e1dc076a28f3e22f7fb25ba3b000b4ef99"}, > + {file =3D "mypy-1.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux20= 14_x86_64.whl", hash =3D "sha256:9e36fb078cce9904c7989b9693e41cb9711e060013= 9ce3970c6ef814b6ebc2b2"}, > + {file =3D "mypy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = =3D "sha256:2b0695d605ddcd3eb2f736cd8b4e388288c21e7de85001e9f85df9187f2b50f= 9"}, > + {file =3D "mypy-1.10.0-cp310-cp310-win_amd64.whl", hash =3D "sha256:= cd777b780312ddb135bceb9bc8722a73ec95e042f911cc279e2ec3c667076051"}, > + {file =3D "mypy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash =3D= "sha256:3be66771aa5c97602f382230165b856c231d1277c511c9a8dd058be4784472e1"}= , > + {file =3D "mypy-1.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash =3D = "sha256:8b2cbaca148d0754a54d44121b5825ae71868c7592a53b7292eeb0f3fdae95ee"}, > + {file =3D "mypy-1.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux20= 14_x86_64.whl", hash =3D "sha256:1ec404a7cbe9fc0e92cb0e67f55ce0c025014e26d3= 3e54d9e506a0f2d07fe5de"}, > + {file =3D "mypy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = =3D "sha256:e22e1527dc3d4aa94311d246b59e47f6455b8729f4968765ac1eacf9a4760bc= 7"}, > + {file =3D "mypy-1.10.0-cp311-cp311-win_amd64.whl", hash =3D "sha256:= a87dbfa85971e8d59c9cc1fcf534efe664d8949e4c0b6b44e8ca548e746a8d53"}, > + {file =3D "mypy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash =3D= "sha256:a781f6ad4bab20eef8b65174a57e5203f4be627b46291f4589879bf4e257b97b"}= , > + {file =3D "mypy-1.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash =3D = "sha256:b808e12113505b97d9023b0b5e0c0705a90571c6feefc6f215c1df9381256e30"}, > + {file =3D "mypy-1.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux20= 14_x86_64.whl", hash =3D "sha256:8f55583b12156c399dce2df7d16f8a5095291354f1= e839c252ec6c0611e86e2e"}, > + {file =3D "mypy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = =3D "sha256:4cf18f9d0efa1b16478c4c129eabec36148032575391095f73cae2e722fcf9d= 5"}, > + {file =3D "mypy-1.10.0-cp312-cp312-win_amd64.whl", hash =3D "sha256:= bc6ac273b23c6b82da3bb25f4136c4fd42665f17f2cd850771cb600bdd2ebeda"}, > + {file =3D "mypy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash =3D "= sha256:9fd50226364cd2737351c79807775136b0abe084433b55b2e29181a4c3c878c0"}, > + {file =3D "mypy-1.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash =3D "s= ha256:f90cff89eea89273727d8783fef5d4a934be2fdca11b47def50cf5d311aff727"}, > + {file =3D "mypy-1.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014= _x86_64.whl", hash =3D "sha256:fcfc70599efde5c67862a07a1aaf50e55bce629ace26= bb19dc17cece5dd31ca4"}, > + {file =3D "mypy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash =3D= "sha256:075cbf81f3e134eadaf247de187bd604748171d6b79736fa9b6c9685b4083061"}= , > + {file =3D "mypy-1.10.0-cp38-cp38-win_amd64.whl", hash =3D "sha256:3f= 298531bca95ff615b6e9f2fc0333aae27fa48052903a0ac90215021cdcfa4f"}, > + {file =3D "mypy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash =3D "= sha256:fa7ef5244615a2523b56c034becde4e9e3f9b034854c93639adb667ec9ec2976"}, > + {file =3D "mypy-1.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash =3D "s= ha256:3236a4c8f535a0631f85f5fcdffba71c7feeef76a6002fcba7c1a8e57c8be1ec"}, > + {file =3D "mypy-1.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014= _x86_64.whl", hash =3D "sha256:4a2b5cdbb5dd35aa08ea9114436e0d79aceb2f38e32c= 21684dcf8e24e1e92821"}, > + {file =3D "mypy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash =3D= "sha256:92f93b21c0fe73dc00abf91022234c79d793318b8a96faac147cd579c1671746"}= , > + {file =3D "mypy-1.10.0-cp39-cp39-win_amd64.whl", hash =3D "sha256:28= d0e038361b45f099cc086d9dd99c15ff14d0188f44ac883010e172ce86c38a"}, > + {file =3D "mypy-1.10.0-py3-none-any.whl", hash =3D "sha256:f8c083976= eb530019175aabadb60921e73b4f45736760826aa1689dda8208aee"}, > + {file =3D "mypy-1.10.0.tar.gz", hash =3D "sha256:3d087fcbec056c4ee34= 974da493a826ce316947485cef3901f511848e687c131"}, > ] > > [package.dependencies] > -mypy-extensions =3D ">=3D0.4.3" > +mypy-extensions =3D ">=3D1.0.0" > tomli =3D {version =3D ">=3D1.1.0", markers =3D "python_version < \"3.11= \""} > -typing-extensions =3D ">=3D3.10" > +typing-extensions =3D ">=3D4.1.0" > > [package.extras] > dmypy =3D ["psutil (>=3D4.0)"] > -python2 =3D ["typed-ast (>=3D1.4.0,<2)"] > +install-types =3D ["pip"] > +mypyc =3D ["setuptools (>=3D50)"] > reports =3D ["lxml"] > > [[package]] > @@ -580,6 +585,7 @@ files =3D [ > {file =3D "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux= 2014_aarch64.whl", hash =3D "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772= db9e23b982788168117739938"}, > {file =3D "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux20= 14_s390x.whl", hash =3D "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f5= 4d5b6946cfee6360c733d"}, > {file =3D "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2= 014_x86_64.whl", hash =3D "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f56= 7d8805e11b46f4a943f5515"}, > + {file =3D "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = =3D "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb619229= 0"}, > {file =3D "PyYAML-6.0.1-cp310-cp310-win32.whl", hash =3D "sha256:bd4= af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, > {file =3D "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash =3D "sha256= :fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, > {file =3D "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = =3D "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb300= 7"}, > @@ -587,8 +593,16 @@ files =3D [ > {file =3D "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux= 2014_aarch64.whl", hash =3D "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc= 1213a3229ca5383f973a5ed6d"}, > {file =3D "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux20= 14_s390x.whl", hash =3D "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a15= 10e0ac93ef59e0ddae2bc"}, > {file =3D "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2= 014_x86_64.whl", hash =3D "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c38= 7fa4f801fbf6fb2e6ba4673"}, > + {file =3D "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = =3D "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678= b"}, > {file =3D "PyYAML-6.0.1-cp311-cp311-win32.whl", hash =3D "sha256:163= 5fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, > {file =3D "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash =3D "sha256= :bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, > + {file =3D "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = =3D "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad2= 8"}, > + {file =3D "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash =3D= "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}= , > + {file =3D "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux= 2014_aarch64.whl", hash =3D "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a= 7e01975da3a99aed1e7a378ef"}, > + {file =3D "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2= 014_x86_64.whl", hash =3D "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f722= 7bfbf93a408a9d86bcc12a0"}, > + {file =3D "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = =3D "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e= 4"}, > + {file =3D "PyYAML-6.0.1-cp312-cp312-win32.whl", hash =3D "sha256:d48= 3d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, > + {file =3D "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash =3D "sha256= :0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, > {file =3D "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash =3D= "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}= , > {file =3D "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2= 014_aarch64.whl", hash =3D "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6= 595c077e42bd0c419fa27b98"}, > {file =3D "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux201= 4_s390x.whl", hash =3D "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e27= 1b849ad7dc4a5c90c13c"}, > @@ -605,6 +619,7 @@ files =3D [ > {file =3D "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux20= 14_aarch64.whl", hash =3D "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174cce= a823003a106c7d4d7899ac5"}, > {file =3D "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014= _s390x.whl", hash =3D "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd150= 91efb73a30e90539696"}, > {file =3D "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux201= 4_x86_64.whl", hash =3D "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514= e1413a7dc761ccd755735"}, > + {file =3D "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = =3D "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd= 6"}, > {file =3D "PyYAML-6.0.1-cp38-cp38-win32.whl", hash =3D "sha256:184c5= 108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, > {file =3D "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash =3D "sha256:1= e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, > {file =3D "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash =3D = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, > @@ -612,6 +627,7 @@ files =3D [ > {file =3D "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux20= 14_aarch64.whl", hash =3D "sha256:5773183b6446b2c99bb77e77595dd486303b4faab= 2b086e7b17bc6bef28865f6"}, > {file =3D "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014= _s390x.whl", hash =3D "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a9996555= 4781d0d8d1ad31e13a0"}, > {file =3D "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux201= 4_x86_64.whl", hash =3D "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb= 94671027b73b393a7c42c"}, > + {file =3D "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = =3D "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc= 5"}, > {file =3D "PyYAML-6.0.1-cp39-cp39-win32.whl", hash =3D "sha256:faca3= bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, > {file =3D "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash =3D "sha256:5= 10c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, > {file =3D "PyYAML-6.0.1.tar.gz", hash =3D "sha256:bfdf460b1736c775f2= ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, > @@ -810,13 +826,13 @@ files =3D [ > > [[package]] > name =3D "typing-extensions" > -version =3D "4.7.1" > -description =3D "Backported and Experimental Type Hints for Python 3.7+" > +version =3D "4.11.0" > +description =3D "Backported and Experimental Type Hints for Python 3.8+" > optional =3D false > -python-versions =3D ">=3D3.7" > +python-versions =3D ">=3D3.8" > files =3D [ > - {file =3D "typing_extensions-4.7.1-py3-none-any.whl", hash =3D "sha2= 56:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, > - {file =3D "typing_extensions-4.7.1.tar.gz", hash =3D "sha256:b75ddc2= 64f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, > + {file =3D "typing_extensions-4.11.0-py3-none-any.whl", hash =3D "sha= 256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, > + {file =3D "typing_extensions-4.11.0.tar.gz", hash =3D "sha256:83f085= bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, > ] > > [[package]] > @@ -837,4 +853,4 @@ jsonschema =3D ">=3D4,<5" > [metadata] > lock-version =3D "2.0" > python-versions =3D "^3.10" > -content-hash =3D "3501e97b3dadc19fe8ae179fe21b1edd2488001da9a8e86ff2bca0= b86b99b89b" > +content-hash =3D "1572cb14f0bf88cddc6b6b225312ad468d01916b32067d17a7776a= f76c6d466c" > diff --git a/dts/pyproject.toml b/dts/pyproject.toml > index a81e46fc07..05c91ef9be 100644 > --- a/dts/pyproject.toml > +++ b/dts/pyproject.toml > @@ -28,7 +28,7 @@ scapy =3D "^2.5.0" > pydocstyle =3D "6.1.1" > > [tool.poetry.group.dev.dependencies] > -mypy =3D "^0.961" > +mypy =3D "^1.10.0" > black =3D "^22.6.0" > isort =3D "^5.10.1" > pylama =3D "^8.4.1" > diff --git a/dts/tests/TestSuite_os_udp.py b/dts/tests/TestSuite_os_udp.p= y > index b4784dd95e..a78bd74139 100644 > --- a/dts/tests/TestSuite_os_udp.py > +++ b/dts/tests/TestSuite_os_udp.py > @@ -7,8 +7,8 @@ > Send a packet to the SUT node, verify it comes back on the second port o= n the TG node. > """ > > -from scapy.layers.inet import IP, UDP # type: ignore[import] > -from scapy.layers.l2 import Ether # type: ignore[import] > +from scapy.layers.inet import IP, UDP # type: ignore[import-untyped] > +from scapy.layers.l2 import Ether # type: ignore[import-untyped] > > from framework.test_suite import TestSuite > > diff --git a/dts/tests/TestSuite_pmd_buffer_scatter.py b/dts/tests/TestSu= ite_pmd_buffer_scatter.py > index 3701c47408..a020682e8d 100644 > --- a/dts/tests/TestSuite_pmd_buffer_scatter.py > +++ b/dts/tests/TestSuite_pmd_buffer_scatter.py > @@ -17,10 +17,10 @@ > > import struct > > -from scapy.layers.inet import IP # type: ignore[import] > -from scapy.layers.l2 import Ether # type: ignore[import] > -from scapy.packet import Raw # type: ignore[import] > -from scapy.utils import hexstr # type: ignore[import] > +from scapy.layers.inet import IP # type: ignore[import-untyped] > +from scapy.layers.l2 import Ether # type: ignore[import-untyped] > +from scapy.packet import Raw # type: ignore[import-untyped] > +from scapy.utils import hexstr # type: ignore[import-untyped] > > from framework.remote_session.testpmd_shell import TestPmdForwardingMode= s, TestPmdShell > from framework.test_suite import TestSuite > -- > 2.34.1 >