From becc1392bb8ceb7b7789cb17ee4121a949ebc63f Mon Sep 17 00:00:00 2001 From: S1ro1 Date: Wed, 10 Sep 2025 17:25:32 +0000 Subject: [PATCH 1/2] Feat: custom serialization --- BackendBench/suite/base.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/BackendBench/suite/base.py b/BackendBench/suite/base.py index 1f5fe635..893175af 100644 --- a/BackendBench/suite/base.py +++ b/BackendBench/suite/base.py @@ -5,6 +5,9 @@ # LICENSE file in the root directory of this source tree. +import importlib + + class Test: def __init__(self, *args, **kwargs): self._args = args @@ -24,6 +27,23 @@ def __init__(self, op, correctness_tests, performance_tests): self.op = op self.correctness_tests = correctness_tests self.performance_tests = performance_tests + + def __getstate__(self): + # Custom serialization to handle callable op + state = self.__dict__.copy() + if callable(state.get("op")): + op = state.pop("op") + state["op_name"] = op.__name__ + state["op_module"] = op.__module__ + return state + + def __setstate__(self, state): + if "op_name" in state and "op_module" in state: + op_name = state.pop("op_name") + op_module = state.pop("op_module") + module = importlib.import_module(op_module) + state["op"] = getattr(module, op_name) + self.__dict__.update(state) class TestSuite: From 728d48116e4e17989f3e9ffcc3b1ca6616b54a69 Mon Sep 17 00:00:00 2001 From: S1ro1 Date: Wed, 10 Sep 2025 17:33:54 +0000 Subject: [PATCH 2/2] Fix: style --- BackendBench/suite/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BackendBench/suite/base.py b/BackendBench/suite/base.py index 893175af..eaeec0df 100644 --- a/BackendBench/suite/base.py +++ b/BackendBench/suite/base.py @@ -27,7 +27,7 @@ def __init__(self, op, correctness_tests, performance_tests): self.op = op self.correctness_tests = correctness_tests self.performance_tests = performance_tests - + def __getstate__(self): # Custom serialization to handle callable op state = self.__dict__.copy()