Skip to content

Commit

Permalink
DpdkTestpmd Installer: mypy annotations
Browse files Browse the repository at this point in the history
  • Loading branch information
mcgov committed Sep 19, 2024
1 parent 88a0074 commit 0eecb81
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 9 deletions.
17 changes: 11 additions & 6 deletions microsoft/testsuites/dpdk/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from datetime import datetime
from pathlib import PurePath
from typing import Any, Callable, Dict, List, Optional, Sequence
from typing import Any, Callable, Dict, List, Optional, Sequence, Type, Union

from assertpy import assert_that
from semver import VersionInfo
Expand Down Expand Up @@ -36,7 +36,7 @@ class OsPackageDependencies:
def __init__(
self,
os_matcher: Callable[[Posix], bool],
packages: Sequence[str | Tool | type[Tool]],
packages: Sequence[Union[str, Tool, Type[Tool]]],
) -> None:
self.check_node_os = os_matcher
self.packages = packages
Expand All @@ -49,7 +49,7 @@ def __init__(self, requirements: List[OsPackageDependencies]) -> None:

# evaluate the list of package dependencies,
def install_required_packages(
self, node: Node, extra_args: List[str] | None
self, node: Node, extra_args: Union[List[str], None]
) -> None:
os = node.os
if not isinstance(os, Posix):
Expand All @@ -73,7 +73,7 @@ class Installer:

# setup the node before starting
# ex: updating the kernel, enabling features, checking drivers, etc.
def _setup_node(self):
def _setup_node(self) -> None:
raise NotImplementedError(f"_setup_node {self._err_msg}")

# check if the package is already installed:
Expand Down Expand Up @@ -131,7 +131,7 @@ def __init__(
self._node.os, "Installer parent class requires Posix OS."
)
self._os: Posix = self._node.os
self._package_manager_extra_args = []
self._package_manager_extra_args: List[str] = []
self._os_dependencies = os_dependencies


Expand Down Expand Up @@ -383,4 +383,9 @@ def is_url_for_git_repo(url: str) -> bool:
path = parsed_url.path
if not (scheme and path):
return False
return scheme in ["http", "https"] and PurePath(path).suffixes == [".git"]
# investigate the rest of the URL as a path
path_check = PurePath(path)
check_for_git_https = scheme in ["http", "https"] and (
path_check.suffixes == [".git"] or path_check.root == "git"
)
return scheme == "git" or check_for_git_https
7 changes: 4 additions & 3 deletions microsoft/testsuites/dpdk/dpdktestpmd.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
from microsoft.testsuites.dpdk.common import (
GitInstall,
InstallDependencies,
Installer,
OsPackageDependencies,
PackageManagerInstall,
SourceInstall,
Expand Down Expand Up @@ -142,7 +143,7 @@ def get_debian_backport_repo_args(os: Debian) -> List[str]:


class DpdkPackageManagerInstall(PackageManagerInstall):
def _setup_node(self):
def _setup_node(self) -> None:
if isinstance(self._os, Debian):
self._package_manager_extra_args = get_debian_backport_repo_args(self._os)
if self._os.information.version < "22.4.0":
Expand Down Expand Up @@ -181,7 +182,7 @@ def _check_if_installed(self) -> bool:
# so PkgConfig info was not found
return False

def _setup_node(self):
def _setup_node(self) -> None:
self._source_path = self._node.get_working_path().joinpath("dpdk")

if isinstance(self._os, Debian):
Expand Down Expand Up @@ -746,7 +747,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
self._expected_install_path = ""
self._determine_network_hardware()
if self.use_package_manager_install():
self.installer = DpdkPackageManagerInstall(
self.installer: Installer = DpdkPackageManagerInstall(
self.node, DPDK_PACKAGE_MANAGER_PACKAGES
)
# if not package manager, choose source installation
Expand Down

0 comments on commit 0eecb81

Please sign in to comment.