From: Aleš Mrázek Date: Sat, 10 Jan 2026 21:41:39 +0000 (+0100) Subject: python: improved try/exception code X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d7c28c1d523102d6b80d7cfec9e8a4bd063466b;p=thirdparty%2Fknot-resolver.git python: improved try/exception code --- diff --git a/python/knot_resolver/client/command.py b/python/knot_resolver/client/command.py index 62e5e0c8c..378e86b7f 100644 --- a/python/knot_resolver/client/command.py +++ b/python/knot_resolver/client/command.py @@ -173,12 +173,13 @@ def get_socket_from_config(config: Path, optional_file: bool) -> Optional[Socket f"http://{ip.addr}:{ip.port}", f'Key "/management/interface" in "{config}" file', ) - return None except ValueError as e: raise DataValidationError(*e.args) from e # pylint: disable=no-value-for-parameter - except OSError as e: + except OSError: if not optional_file: - raise e + raise + return None + else: return None diff --git a/python/knot_resolver/controller/interface.py b/python/knot_resolver/controller/interface.py index 2685a771c..848e5749a 100644 --- a/python/knot_resolver/controller/interface.py +++ b/python/knot_resolver/controller/interface.py @@ -136,9 +136,9 @@ class Subprocess(ABC): if self.type is SubprocessType.KRESD: register_worker(self) self._registered_worker = True - except KresSubprocessControllerError as e: + except KresSubprocessControllerError: self._unlink_config() - raise e + raise async def apply_new_config(self, new_config: KresConfig) -> None: self._config = new_config diff --git a/python/knot_resolver/controller/supervisord/__init__.py b/python/knot_resolver/controller/supervisord/__init__.py index 6fecc1889..c330d5fba 100644 --- a/python/knot_resolver/controller/supervisord/__init__.py +++ b/python/knot_resolver/controller/supervisord/__init__.py @@ -103,9 +103,10 @@ def _is_process_runinng(pid: int) -> bool: try: # kill with signal 0 is a safe way to test that a process exists kill(pid, 0) - return True except ProcessLookupError: return False + else: + return True async def _is_supervisord_running(config: KresConfig) -> bool: diff --git a/python/knot_resolver/utils/__init__.py b/python/knot_resolver/utils/__init__.py index 6d8757473..bdf2b464d 100644 --- a/python/knot_resolver/utils/__init__.py +++ b/python/knot_resolver/utils/__init__.py @@ -23,7 +23,7 @@ def ignore_exceptions_optional( except BaseException as e: if isinstance(e, exceptions): return default - raise e + raise return f diff --git a/python/knot_resolver/utils/modeling/base_schema.py b/python/knot_resolver/utils/modeling/base_schema.py index 29080999a..a7a9e9a05 100644 --- a/python/knot_resolver/utils/modeling/base_schema.py +++ b/python/knot_resolver/utils/modeling/base_schema.py @@ -278,11 +278,12 @@ class ObjectMapper: raise errs[0] if len(errs) > 1: raise AggregateDataValidationError(object_path, child_exceptions=errs) - return res except AttributeError as e: raise DataValidationError( f"Expected dict-like object, but failed to access its .items() method. Value was {obj}", object_path ) from e + else: + return res def _create_list(self, tp: Type[Any], obj: List[Any], object_path: str) -> List[Any]: if isinstance(obj, str): @@ -502,9 +503,10 @@ class ObjectMapper: """Runtime type checking. Validate, that a given object is of a given type.""" try: self.map_object(tp, obj) - return True except (DataValidationError, ValueError): return False + else: + return True def _assign_default(self, obj: Any, name: str, python_type: Any, object_path: str) -> None: cls = obj.__class__