Skip to content

Commit a94046c

Browse files
committed
docstring + utest update
1 parent aa52542 commit a94046c

File tree

11 files changed

+108
-21
lines changed

11 files changed

+108
-21
lines changed

nodescraper/cli/helper.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
from nodescraper.configbuilder import ConfigBuilder
3535
from nodescraper.configregistry import ConfigRegistry
3636
from nodescraper.enums import SystemInteractionLevel, SystemLocation
37-
from nodescraper.models import PluginConfig, SystemInfo
37+
from nodescraper.models import PluginConfig, PluginResult, SystemInfo
3838
from nodescraper.pluginexecutor import PluginExecutor
3939
from nodescraper.pluginregistry import PluginRegistry
4040
from nodescraper.resultcollators.tablesummary import TableSummary
@@ -283,7 +283,19 @@ def log_system_info(log_path: str | None, system_info: SystemInfo, logger: loggi
283283
logger.error(exp)
284284

285285

286-
def generate_reference_config(results, plugin_reg, logger):
286+
def generate_reference_config(
287+
results: list[PluginResult], plugin_reg: PluginRegistry, logger: logging.Logger
288+
) -> PluginConfig:
289+
"""Generate reference config from plugin results
290+
291+
Args:
292+
results (list[PluginResult]): list of plugin results
293+
plugin_reg (PluginRegistry): registry containing all registered plugins
294+
logger (logging.Logger): logger
295+
296+
Returns:
297+
PluginConfig: holds model that defines final reference config
298+
"""
287299
plugin_config = PluginConfig()
288300
plugins = {}
289301
for obj in results:

nodescraper/plugins/inband/bios/analyzer_args.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from pydantic import Field, field_validator
2727

2828
from nodescraper.interfaces import AnalyzerArgs
29+
from nodescraper.plugins.inband.os.osdata import OsDataModel
2930

3031

3132
class BiosAnalyzerArgs(AnalyzerArgs):
@@ -49,5 +50,13 @@ def validate_exp_bios_version(cls, exp_bios_version: str | list) -> list:
4950
return exp_bios_version
5051

5152
@classmethod
52-
def build_from_model(cls, datamodel) -> "BiosAnalyzerArgs":
53+
def build_from_model(cls, datamodel: OsDataModel) -> "BiosAnalyzerArgs":
54+
"""build analyzer args from data model
55+
56+
Args:
57+
datamodel (BiosDataModel): data model for plugin
58+
59+
Returns:
60+
BiosAnalyzerArgs: instance of analyzer args class
61+
"""
5362
return cls(exp_bios_version=datamodel.bios_version)

nodescraper/plugins/inband/cmdline/analyzer_args.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from pydantic import Field, field_validator
2727

2828
from nodescraper.interfaces import AnalyzerArgs
29+
from nodescraper.plugins.inband.cmdline.cmdlinedata import CmdlineDataModel
2930

3031

3132
class CmdlineAnalyzerArgs(AnalyzerArgs):
@@ -65,5 +66,13 @@ def validate_banned_cmdline(cls, banned_cmdline: str | list) -> list:
6566
return banned_cmdline
6667

6768
@classmethod
68-
def build_from_model(cls, datamodel) -> "CmdlineAnalyzerArgs":
69+
def build_from_model(cls, datamodel: CmdlineDataModel) -> "CmdlineAnalyzerArgs":
70+
"""build analyzer args from data model
71+
72+
Args:
73+
datamodel (CmdlineDataModel): data model for plugin
74+
75+
Returns:
76+
CmdlineAnalyzerArgs: instance of analyzer args class
77+
"""
6978
return cls(required_cmdline=datamodel.cmdline, banned_cmdline=datamodel.cmdline)

nodescraper/plugins/inband/dkms/analyzer_args.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from pydantic import Field, field_validator
2929

3030
from nodescraper.interfaces import AnalyzerArgs
31+
from nodescraper.plugins.inband.dkms.dkmsdata import DkmsDataModel
3132

3233

3334
class DkmsAnalyzerArgs(AnalyzerArgs):
@@ -72,5 +73,13 @@ def validate_dkms_version(cls, dkms_version: str | list) -> list:
7273
return dkms_version
7374

7475
@classmethod
75-
def build_from_model(cls, datamodel) -> "DkmsAnalyzerArgs":
76+
def build_from_model(cls, datamodel: DkmsDataModel) -> "DkmsAnalyzerArgs":
77+
"""build analyzer args from data model
78+
79+
Args:
80+
datamodel (DkmsDataModel): data model for plugin
81+
82+
Returns:
83+
DkmsAnalyzerArgs: instance of analyzer args class
84+
"""
7685
return cls(dkms_status=datamodel.status, dkms_version=datamodel.version)

nodescraper/plugins/inband/dmesg/analyzer_args.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,24 @@
2626
from typing import Optional
2727

2828
from nodescraper.models import TimeRangeAnalysisArgs
29+
from nodescraper.plugins.inband.dmesg.dmesgdata import DmesgData
2930

3031

3132
class DmesgAnalyzerArgs(TimeRangeAnalysisArgs):
3233
check_unknown_dmesg_errors: Optional[bool] = True
3334
exclude_category: Optional[set[str]] = None
3435

3536
@classmethod
36-
def build_from_model(cls, datamodel) -> "TimeRangeAnalysisArgs":
37+
def build_from_model(cls, datamodel: DmesgData) -> "TimeRangeAnalysisArgs":
38+
"""build analyzer args from data model
39+
40+
Args:
41+
datamodel (DmesgDataModel): data model for plugin
42+
43+
Raises:
44+
NotImplementedError: does not implement abstract function
45+
46+
Returns:
47+
TimeRangeAnalysisArgs: instance of analyzer args class
48+
"""
3749
raise NotImplementedError("Dmesg does not support reference config creation")

nodescraper/plugins/inband/kernel/analyzer_args.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from pydantic import Field, field_validator
2727

2828
from nodescraper.interfaces import AnalyzerArgs
29+
from nodescraper.plugins.inband.kernel.kerneldata import KernelDataModel
2930

3031

3132
class KernelAnalyzerArgs(AnalyzerArgs):
@@ -49,5 +50,13 @@ def validate_exp_kernel(cls, exp_kernel: str | list) -> list:
4950
return exp_kernel
5051

5152
@classmethod
52-
def build_from_model(cls, datamodel) -> "KernelAnalyzerArgs":
53+
def build_from_model(cls, datamodel: KernelDataModel) -> "KernelAnalyzerArgs":
54+
"""build analyzer args from data model
55+
56+
Args:
57+
datamodel (KernelDataModel): data model for plugin
58+
59+
Returns:
60+
KernelAnalyzerArgs: instance of analyzer args class
61+
"""
5362
return cls(exp_kernel=datamodel.kernel_version)

nodescraper/plugins/inband/os/analyzer_args.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
from pydantic import Field, field_validator
2727

2828
from nodescraper.interfaces import AnalyzerArgs
29+
from nodescraper.plugins.inband.os.osdata import OsDataModel
2930

3031

3132
class OsAnalyzerArgs(AnalyzerArgs):
@@ -49,5 +50,13 @@ def validate_exp_os(cls, exp_os: str | list) -> list:
4950
return exp_os
5051

5152
@classmethod
52-
def build_from_model(cls, datamodel) -> "OsAnalyzerArgs":
53+
def build_from_model(cls, datamodel: OsDataModel) -> "OsAnalyzerArgs":
54+
"""build analyzer args from data model
55+
56+
Args:
57+
datamodel (OsDataModel): data model for plugin
58+
59+
Returns:
60+
OsAnalyzerArgs: instance of analyzer args class
61+
"""
5362
return cls(exp_os=datamodel.os_version)

nodescraper/plugins/inband/package/analyzer_args.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,13 @@
2626
from pydantic import Field
2727

2828
from nodescraper.interfaces import AnalyzerArgs
29+
from nodescraper.plugins.inband.package.packagedata import PackageDataModel
2930

3031

3132
class PackageAnalyzerArgs(AnalyzerArgs):
3233
exp_package_ver: dict[str, str | None] = Field(default_factory=dict)
3334
regex_match: bool = True
3435

3536
@classmethod
36-
def build_from_model(cls, datamodel) -> "PackageAnalyzerArgs":
37+
def build_from_model(cls, datamodel: PackageDataModel) -> "PackageAnalyzerArgs":
3738
return cls(exp_package_ver=datamodel.version_info)

nodescraper/plugins/inband/process/analyzer_args.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,21 @@
2525
###############################################################################
2626

2727
from nodescraper.interfaces import AnalyzerArgs
28+
from nodescraper.plugins.inband.process.processdata import ProcessDataModel
2829

2930

3031
class ProcessAnalyzerArgs(AnalyzerArgs):
3132
max_kfd_processes: int = 0
3233
max_cpu_usage: float = 20.0
3334

3435
@classmethod
35-
def build_from_model(cls, datamodel) -> "ProcessAnalyzerArgs":
36+
def build_from_model(cls, datamodel: ProcessDataModel) -> "ProcessAnalyzerArgs":
37+
"""build analyzer args from data model
38+
39+
Args:
40+
datamodel (ProcessDataModel): data model for plugin
41+
42+
Returns:
43+
ProcessAnalyzerArgs: instance of analyzer args class
44+
"""
3645
return cls(max_kfd_processes=datamodel.kfd_process, max_cpu_usage=datamodel.cpu_usage)

nodescraper/plugins/inband/rocm/analyzer_args.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
###############################################################################
2626
from pydantic import BaseModel, Field, field_validator
2727

28+
from nodescraper.plugins.inband.rocm.rocmdata import RocmDataModel
29+
2830

2931
class RocmAnalyzerArgs(BaseModel):
3032
exp_rocm: str | list = Field(default_factory=list)
@@ -46,5 +48,13 @@ def validate_exp_rocm(cls, exp_rocm: str | list) -> list:
4648
return exp_rocm
4749

4850
@classmethod
49-
def build_from_model(cls, datamodel) -> "RocmAnalyzerArgs":
51+
def build_from_model(cls, datamodel: RocmDataModel) -> "RocmAnalyzerArgs":
52+
"""build analyzer args from data model
53+
54+
Args:
55+
datamodel (RocmDataModel): data model for plugin
56+
57+
Returns:
58+
RocmAnalyzerArgs: instance of analyzer args class
59+
"""
5060
return cls(exp_rocm=datamodel.rocm_version)

0 commit comments

Comments
 (0)