From d7685d34127c0e0a7bc6de2376bd080435686b77 Mon Sep 17 00:00:00 2001 From: coleramos425 Date: Fri, 1 Mar 2024 17:49:22 -0600 Subject: [PATCH] Add custom decorator to avoid using kw_only Signed-off-by: coleramos425 [ROCm/rocprofiler-compute commit: cdeb2c7e85c1077939c08ac9a3e448099af0ccea] --- projects/rocprofiler-compute/src/utils/specs.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/projects/rocprofiler-compute/src/utils/specs.py b/projects/rocprofiler-compute/src/utils/specs.py index 5f0eaad193..197b0ceb17 100644 --- a/projects/rocprofiler-compute/src/utils/specs.py +++ b/projects/rocprofiler-compute/src/utils/specs.py @@ -69,6 +69,14 @@ def detect_arch(_rocminfo): else: return (gpu_arch, idx1) +# Custom decorator to mimic the behavior of kw_only found in Python 3.10 +def kw_only(cls): + def __init__(self, *args, **kwargs): + for name, value in kwargs.items(): + setattr(self, name, value) + cls.__init__ = __init__ + return cls + def generate_machine_specs(args, sysinfo: dict = None): if not sysinfo is None: @@ -172,7 +180,8 @@ def generate_machine_specs(args, sysinfo: dict = None): return specs -@dataclass(kw_only=True) +@kw_only +@dataclass class MachineSpecs: ########################################## ## A. Workload / Spec info