From b2f828ff6f8e1f0e483b723940fcb52d1076681e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Tue, 27 Feb 2024 15:30:47 +0100 Subject: [PATCH] adds function_has_arguments helper function --- src/pydase/utils/helpers.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/pydase/utils/helpers.py b/src/pydase/utils/helpers.py index 92fb6ae..cad84a0 100644 --- a/src/pydase/utils/helpers.py +++ b/src/pydase/utils/helpers.py @@ -1,5 +1,6 @@ import inspect import logging +from collections.abc import Callable from itertools import chain from typing import Any @@ -196,3 +197,15 @@ def get_data_service_class_reference() -> Any: def is_property_attribute(target_obj: Any, attr_name: str) -> bool: return isinstance(getattr(type(target_obj), attr_name, None), property) + + +def function_has_arguments(func: Callable[..., Any]) -> bool: + sig = inspect.signature(func) + parameters = dict(sig.parameters) + # Remove 'self' parameter for instance methods. + parameters.pop("self", None) + + # Check if there are any parameters left which would indicate additional arguments. + if len(parameters) > 0: + return True + return False