minor tweak to

This commit is contained in:
Brandon Hancock
2024-09-18 15:56:54 -04:00
parent 00f355bf88
commit abaf8c4d24

View File

@@ -94,10 +94,10 @@ def or_(*conditions):
for condition in conditions: for condition in conditions:
if isinstance(condition, dict) and "methods" in condition: if isinstance(condition, dict) and "methods" in condition:
methods.extend(condition["methods"]) methods.extend(condition["methods"])
elif callable(condition) and hasattr(condition, "__name__"):
methods.append(condition.__name__)
elif isinstance(condition, str): elif isinstance(condition, str):
methods.append(condition) methods.append(condition)
elif callable(condition):
methods.append(getattr(condition, "__name__", repr(condition)))
else: else:
raise ValueError("Invalid condition in or_()") raise ValueError("Invalid condition in or_()")
return {"type": "OR", "methods": methods} return {"type": "OR", "methods": methods}
@@ -108,10 +108,11 @@ def and_(*conditions):
for condition in conditions: for condition in conditions:
if isinstance(condition, dict) and "methods" in condition: if isinstance(condition, dict) and "methods" in condition:
methods.extend(condition["methods"]) methods.extend(condition["methods"])
elif callable(condition) and hasattr(condition, "__name__"):
methods.append(condition.__name__)
elif isinstance(condition, str): elif isinstance(condition, str):
methods.append(condition) methods.append(condition)
elif callable(condition):
# Extract the __name__ even if the function is wrapped by a decorator
methods.append(getattr(condition, "__name__", repr(condition)))
else: else:
raise ValueError("Invalid condition in and_()") raise ValueError("Invalid condition in and_()")
return {"type": "AND", "methods": methods} return {"type": "AND", "methods": methods}
@@ -281,6 +282,7 @@ class Flow(Generic[T], metaclass=FlowMeta):
) )
await self._execute_listeners(listener, listener_result) await self._execute_listeners(listener, listener_result)
except Exception as e: except Exception as e:
print( print(f"[Flow._execute_single_listener] Error in method {listener}: {e}")
f"[Flow._execute_single_listener] Error in method {listener}: {str(e)}" import traceback
)
traceback.print_exc()