[v5,4/8] dts: remove module-wide imports

Message ID 20240617145409.67407-5-luca.vizzarro@arm.com (mailing list archive)
State Superseded
Delegated to: Thomas Monjalon
Headers
Series dts: add testpmd params |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Luca Vizzarro June 17, 2024, 2:54 p.m. UTC
  Remove the imports in the testbed_model and remote_session modules init
file, to avoid the initialisation of unneeded modules, thus removing or
limiting the risk of circular dependencies.

Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com>
Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com>
Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu>
Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
---
 dts/framework/remote_session/__init__.py               | 7 +------
 dts/framework/runner.py                                | 4 +++-
 dts/framework/test_suite.py                            | 5 ++++-
 dts/framework/testbed_model/__init__.py                | 9 ---------
 dts/framework/testbed_model/os_session.py              | 4 ++--
 dts/framework/testbed_model/sut_node.py                | 2 +-
 dts/framework/testbed_model/traffic_generator/scapy.py | 2 +-
 dts/tests/TestSuite_hello_world.py                     | 2 +-
 dts/tests/TestSuite_smoke_tests.py                     | 2 +-
 9 files changed, 14 insertions(+), 23 deletions(-)
  

Comments

Nicholas Pratte June 17, 2024, 3:23 p.m. UTC | #1
Tested-by: Nicholas Pratte <npratte@iol.unh.edu>
Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>

On Mon, Jun 17, 2024 at 10:54 AM Luca Vizzarro <luca.vizzarro@arm.com> wrote:
>
> Remove the imports in the testbed_model and remote_session modules init
> file, to avoid the initialisation of unneeded modules, thus removing or
> limiting the risk of circular dependencies.
>
> Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com>
> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com>
> Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
> Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu>
> Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
> ---
>  dts/framework/remote_session/__init__.py               | 7 +------
>  dts/framework/runner.py                                | 4 +++-
>  dts/framework/test_suite.py                            | 5 ++++-
>  dts/framework/testbed_model/__init__.py                | 9 ---------
>  dts/framework/testbed_model/os_session.py              | 4 ++--
>  dts/framework/testbed_model/sut_node.py                | 2 +-
>  dts/framework/testbed_model/traffic_generator/scapy.py | 2 +-
>  dts/tests/TestSuite_hello_world.py                     | 2 +-
>  dts/tests/TestSuite_smoke_tests.py                     | 2 +-
>  9 files changed, 14 insertions(+), 23 deletions(-)
>
> diff --git a/dts/framework/remote_session/__init__.py b/dts/framework/remote_session/__init__.py
> index 1910c81c3c..0668e9c884 100644
> --- a/dts/framework/remote_session/__init__.py
> +++ b/dts/framework/remote_session/__init__.py
> @@ -12,17 +12,12 @@
>  allowing it to send and receive data within that particular shell.
>  """
>
> -# pylama:ignore=W0611
> -
>  from framework.config import NodeConfiguration
>  from framework.logger import DTSLogger
>
>  from .interactive_remote_session import InteractiveRemoteSession
> -from .interactive_shell import InteractiveShell
> -from .python_shell import PythonShell
> -from .remote_session import CommandResult, RemoteSession
> +from .remote_session import RemoteSession
>  from .ssh_session import SSHSession
> -from .testpmd_shell import TestPmdShell
>
>
>  def create_remote_session(
> diff --git a/dts/framework/runner.py b/dts/framework/runner.py
> index dfdee14802..687bc04f79 100644
> --- a/dts/framework/runner.py
> +++ b/dts/framework/runner.py
> @@ -26,6 +26,9 @@
>  from types import FunctionType
>  from typing import Iterable, Sequence
>
> +from framework.testbed_model.sut_node import SutNode
> +from framework.testbed_model.tg_node import TGNode
> +
>  from .config import (
>      BuildTargetConfiguration,
>      Configuration,
> @@ -51,7 +54,6 @@
>      TestSuiteWithCases,
>  )
>  from .test_suite import TestSuite
> -from .testbed_model import SutNode, TGNode
>
>
>  class DTSRunner:
> diff --git a/dts/framework/test_suite.py b/dts/framework/test_suite.py
> index 8768f756a6..9d3debb00f 100644
> --- a/dts/framework/test_suite.py
> +++ b/dts/framework/test_suite.py
> @@ -20,9 +20,12 @@
>  from scapy.layers.l2 import Ether  # type: ignore[import-untyped]
>  from scapy.packet import Packet, Padding  # type: ignore[import-untyped]
>
> +from framework.testbed_model.port import Port, PortLink
> +from framework.testbed_model.sut_node import SutNode
> +from framework.testbed_model.tg_node import TGNode
> +
>  from .exception import TestCaseVerifyError
>  from .logger import DTSLogger, get_dts_logger
> -from .testbed_model import Port, PortLink, SutNode, TGNode
>  from .testbed_model.traffic_generator import PacketFilteringConfig
>  from .utils import get_packet_summaries
>
> diff --git a/dts/framework/testbed_model/__init__.py b/dts/framework/testbed_model/__init__.py
> index 6086512ca2..e3edd4d811 100644
> --- a/dts/framework/testbed_model/__init__.py
> +++ b/dts/framework/testbed_model/__init__.py
> @@ -17,12 +17,3 @@
>  DTS needs to be able to connect to nodes and understand some of the hardware present on these nodes
>  to properly build and test DPDK.
>  """
> -
> -# pylama:ignore=W0611
> -
> -from .cpu import LogicalCoreCount, LogicalCoreCountFilter, LogicalCoreList
> -from .node import Node
> -from .port import Port, PortLink
> -from .sut_node import SutNode
> -from .tg_node import TGNode
> -from .virtual_device import VirtualDevice
> diff --git a/dts/framework/testbed_model/os_session.py b/dts/framework/testbed_model/os_session.py
> index 1a77aee532..e5f5fcbe0e 100644
> --- a/dts/framework/testbed_model/os_session.py
> +++ b/dts/framework/testbed_model/os_session.py
> @@ -32,13 +32,13 @@
>  from framework.logger import DTSLogger
>  from framework.params import Params
>  from framework.remote_session import (
> -    CommandResult,
>      InteractiveRemoteSession,
> -    InteractiveShell,
>      RemoteSession,
>      create_interactive_session,
>      create_remote_session,
>  )
> +from framework.remote_session.interactive_shell import InteractiveShell
> +from framework.remote_session.remote_session import CommandResult
>  from framework.settings import SETTINGS
>  from framework.utils import MesonArgs
>
> diff --git a/dts/framework/testbed_model/sut_node.py b/dts/framework/testbed_model/sut_node.py
> index e1163106a3..83ad06ae2d 100644
> --- a/dts/framework/testbed_model/sut_node.py
> +++ b/dts/framework/testbed_model/sut_node.py
> @@ -26,7 +26,7 @@
>  )
>  from framework.params import Params, Switch
>  from framework.params.eal import EalParams
> -from framework.remote_session import CommandResult
> +from framework.remote_session.remote_session import CommandResult
>  from framework.settings import SETTINGS
>  from framework.utils import MesonArgs
>
> diff --git a/dts/framework/testbed_model/traffic_generator/scapy.py b/dts/framework/testbed_model/traffic_generator/scapy.py
> index ed5467d825..7bc1c2cc08 100644
> --- a/dts/framework/testbed_model/traffic_generator/scapy.py
> +++ b/dts/framework/testbed_model/traffic_generator/scapy.py
> @@ -25,7 +25,7 @@
>  from scapy.packet import Packet  # type: ignore[import-untyped]
>
>  from framework.config import OS, ScapyTrafficGeneratorConfig
> -from framework.remote_session import PythonShell
> +from framework.remote_session.python_shell import PythonShell
>  from framework.settings import SETTINGS
>  from framework.testbed_model.node import Node
>  from framework.testbed_model.port import Port
> diff --git a/dts/tests/TestSuite_hello_world.py b/dts/tests/TestSuite_hello_world.py
> index fd7ff1534d..0d6995f260 100644
> --- a/dts/tests/TestSuite_hello_world.py
> +++ b/dts/tests/TestSuite_hello_world.py
> @@ -8,7 +8,7 @@
>  """
>
>  from framework.test_suite import TestSuite
> -from framework.testbed_model import (
> +from framework.testbed_model.cpu import (
>      LogicalCoreCount,
>      LogicalCoreCountFilter,
>      LogicalCoreList,
> diff --git a/dts/tests/TestSuite_smoke_tests.py b/dts/tests/TestSuite_smoke_tests.py
> index a553e89662..ca678f662d 100644
> --- a/dts/tests/TestSuite_smoke_tests.py
> +++ b/dts/tests/TestSuite_smoke_tests.py
> @@ -15,7 +15,7 @@
>  import re
>
>  from framework.config import PortConfig
> -from framework.remote_session import TestPmdShell
> +from framework.remote_session.testpmd_shell import TestPmdShell
>  from framework.settings import SETTINGS
>  from framework.test_suite import TestSuite
>  from framework.utils import REGEX_FOR_PCI_ADDRESS
> --
> 2.34.1
>
  

Patch

diff --git a/dts/framework/remote_session/__init__.py b/dts/framework/remote_session/__init__.py
index 1910c81c3c..0668e9c884 100644
--- a/dts/framework/remote_session/__init__.py
+++ b/dts/framework/remote_session/__init__.py
@@ -12,17 +12,12 @@ 
 allowing it to send and receive data within that particular shell.
 """
 
-# pylama:ignore=W0611
-
 from framework.config import NodeConfiguration
 from framework.logger import DTSLogger
 
 from .interactive_remote_session import InteractiveRemoteSession
-from .interactive_shell import InteractiveShell
-from .python_shell import PythonShell
-from .remote_session import CommandResult, RemoteSession
+from .remote_session import RemoteSession
 from .ssh_session import SSHSession
-from .testpmd_shell import TestPmdShell
 
 
 def create_remote_session(
diff --git a/dts/framework/runner.py b/dts/framework/runner.py
index dfdee14802..687bc04f79 100644
--- a/dts/framework/runner.py
+++ b/dts/framework/runner.py
@@ -26,6 +26,9 @@ 
 from types import FunctionType
 from typing import Iterable, Sequence
 
+from framework.testbed_model.sut_node import SutNode
+from framework.testbed_model.tg_node import TGNode
+
 from .config import (
     BuildTargetConfiguration,
     Configuration,
@@ -51,7 +54,6 @@ 
     TestSuiteWithCases,
 )
 from .test_suite import TestSuite
-from .testbed_model import SutNode, TGNode
 
 
 class DTSRunner:
diff --git a/dts/framework/test_suite.py b/dts/framework/test_suite.py
index 8768f756a6..9d3debb00f 100644
--- a/dts/framework/test_suite.py
+++ b/dts/framework/test_suite.py
@@ -20,9 +20,12 @@ 
 from scapy.layers.l2 import Ether  # type: ignore[import-untyped]
 from scapy.packet import Packet, Padding  # type: ignore[import-untyped]
 
+from framework.testbed_model.port import Port, PortLink
+from framework.testbed_model.sut_node import SutNode
+from framework.testbed_model.tg_node import TGNode
+
 from .exception import TestCaseVerifyError
 from .logger import DTSLogger, get_dts_logger
-from .testbed_model import Port, PortLink, SutNode, TGNode
 from .testbed_model.traffic_generator import PacketFilteringConfig
 from .utils import get_packet_summaries
 
diff --git a/dts/framework/testbed_model/__init__.py b/dts/framework/testbed_model/__init__.py
index 6086512ca2..e3edd4d811 100644
--- a/dts/framework/testbed_model/__init__.py
+++ b/dts/framework/testbed_model/__init__.py
@@ -17,12 +17,3 @@ 
 DTS needs to be able to connect to nodes and understand some of the hardware present on these nodes
 to properly build and test DPDK.
 """
-
-# pylama:ignore=W0611
-
-from .cpu import LogicalCoreCount, LogicalCoreCountFilter, LogicalCoreList
-from .node import Node
-from .port import Port, PortLink
-from .sut_node import SutNode
-from .tg_node import TGNode
-from .virtual_device import VirtualDevice
diff --git a/dts/framework/testbed_model/os_session.py b/dts/framework/testbed_model/os_session.py
index 1a77aee532..e5f5fcbe0e 100644
--- a/dts/framework/testbed_model/os_session.py
+++ b/dts/framework/testbed_model/os_session.py
@@ -32,13 +32,13 @@ 
 from framework.logger import DTSLogger
 from framework.params import Params
 from framework.remote_session import (
-    CommandResult,
     InteractiveRemoteSession,
-    InteractiveShell,
     RemoteSession,
     create_interactive_session,
     create_remote_session,
 )
+from framework.remote_session.interactive_shell import InteractiveShell
+from framework.remote_session.remote_session import CommandResult
 from framework.settings import SETTINGS
 from framework.utils import MesonArgs
 
diff --git a/dts/framework/testbed_model/sut_node.py b/dts/framework/testbed_model/sut_node.py
index e1163106a3..83ad06ae2d 100644
--- a/dts/framework/testbed_model/sut_node.py
+++ b/dts/framework/testbed_model/sut_node.py
@@ -26,7 +26,7 @@ 
 )
 from framework.params import Params, Switch
 from framework.params.eal import EalParams
-from framework.remote_session import CommandResult
+from framework.remote_session.remote_session import CommandResult
 from framework.settings import SETTINGS
 from framework.utils import MesonArgs
 
diff --git a/dts/framework/testbed_model/traffic_generator/scapy.py b/dts/framework/testbed_model/traffic_generator/scapy.py
index ed5467d825..7bc1c2cc08 100644
--- a/dts/framework/testbed_model/traffic_generator/scapy.py
+++ b/dts/framework/testbed_model/traffic_generator/scapy.py
@@ -25,7 +25,7 @@ 
 from scapy.packet import Packet  # type: ignore[import-untyped]
 
 from framework.config import OS, ScapyTrafficGeneratorConfig
-from framework.remote_session import PythonShell
+from framework.remote_session.python_shell import PythonShell
 from framework.settings import SETTINGS
 from framework.testbed_model.node import Node
 from framework.testbed_model.port import Port
diff --git a/dts/tests/TestSuite_hello_world.py b/dts/tests/TestSuite_hello_world.py
index fd7ff1534d..0d6995f260 100644
--- a/dts/tests/TestSuite_hello_world.py
+++ b/dts/tests/TestSuite_hello_world.py
@@ -8,7 +8,7 @@ 
 """
 
 from framework.test_suite import TestSuite
-from framework.testbed_model import (
+from framework.testbed_model.cpu import (
     LogicalCoreCount,
     LogicalCoreCountFilter,
     LogicalCoreList,
diff --git a/dts/tests/TestSuite_smoke_tests.py b/dts/tests/TestSuite_smoke_tests.py
index a553e89662..ca678f662d 100644
--- a/dts/tests/TestSuite_smoke_tests.py
+++ b/dts/tests/TestSuite_smoke_tests.py
@@ -15,7 +15,7 @@ 
 import re
 
 from framework.config import PortConfig
-from framework.remote_session import TestPmdShell
+from framework.remote_session.testpmd_shell import TestPmdShell
 from framework.settings import SETTINGS
 from framework.test_suite import TestSuite
 from framework.utils import REGEX_FOR_PCI_ADDRESS