fix: ignore class types when filtering workflow steps (#1085)

* fix: ignore class types when filtering workflow steps

* chore: add TODO for record method in RDLoop

* lint
This commit is contained in:
you-n-g
2025-07-17 15:50:41 +08:00
committed by GitHub
parent e3679d6c0d
commit 79d21589c1
2 changed files with 5 additions and 1 deletions
+3
View File
@@ -87,3 +87,6 @@ class RDLoop(LoopBase, metaclass=LoopMeta):
feedback = self.summarizer.generate_feedback(prev_out["running"], self.trace)
logger.log_object(feedback, tag="feedback")
self.trace.hist.append((prev_out["running"], feedback))
# TODO: `def record(self, prev_out: dict[str, Any]):` has already been hard coded into LoopBase
# So we should add it into RDLoop class to make sure every RDLoop Sub Class be aware of it.
+2 -1
View File
@@ -60,7 +60,8 @@ class LoopMeta(type):
"""
steps = LoopMeta._get_steps(bases) # all the base classes of parents
for name, attr in attrs.items():
if not name.startswith("_") and callable(attr):
if not name.startswith("_") and callable(attr) and not isinstance(attr, type):
# NOTE: `not isinstance(attr, type)` is trying to exclude class type attribute
if name not in steps and name not in ["load", "dump"]: # incase user override the load/dump method
# NOTE: if we override the step in the subclass
# Then it is not the new step. So we skip it.