From 07b289e2df793e368704541b0b001e8970bf74b4 Mon Sep 17 00:00:00 2001 From: Christoph Schmidt <christoph.,schmidt@tugraz.at> Date: Fri, 22 Dec 2023 12:20:43 +0100 Subject: [PATCH] Updated to v0.1.0. Child Process functions can be connected without triggering a signal when finished. Emit function bug removed --- src/cmp/CProcessControl.py | 4 +--- src/cmp/CResultRecord.py | 12 +++++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/cmp/CProcessControl.py b/src/cmp/CProcessControl.py index 541714b..ca6df80 100644 --- a/src/cmp/CProcessControl.py +++ b/src/cmp/CProcessControl.py @@ -104,9 +104,7 @@ class CProcessControl(CBase, QObject): self.logger.warning(f"Error cannot handle log record: {e}") elif isinstance(res, cmp.CResultRecord): try: - if isinstance(res, Signal): - res.emit_signal(self._signal_class) - self._internal_logger.debug(f"Emitted {res} in {self._signal_class.__class__.__name__}.") + res.emit_signal(self._signal_class) except Exception as e: self._internal_logger.error(f"Error while emitting {res} in {self.__class__.__name__}: {e}") else: diff --git a/src/cmp/CResultRecord.py b/src/cmp/CResultRecord.py index 54c5c84..af26e01 100644 --- a/src/cmp/CResultRecord.py +++ b/src/cmp/CResultRecord.py @@ -1,3 +1,4 @@ +import logging from inspect import Signature, Parameter from cmp import CProcessControl as CProcessControl @@ -12,7 +13,16 @@ class CResultRecord: def emit_signal(self, class_object: CProcessControl): if hasattr(class_object, '_internal_logger'): - class_object._internal_logger.info(f"Function {self.function_name} returned {self.result}. " + logger: logging.Logger = class_object._internal_logger + else: + logger = logging.getLogger(f"{__name__} - fallback") + + if self.signal_name is None: + logger.info(f"Function {self.function_name} returned {self.result}. " + f"No signal to emit.") + return + if hasattr(class_object, '_internal_logger'): + logger.info(f"Function {self.function_name} returned {self.result}. " f"Emitting {self} in {class_object.__class__.__name__}.") emitter = getattr(class_object, self.signal_name).emit if isinstance(self.result, tuple): -- GitLab