Skip to content
Snippets Groups Projects
Commit 158cfdaf authored by lukas leufen's avatar lukas leufen
Browse files

communicate super requirements of models properly

parent 2a9a5d84
No related branches found
No related tags found
6 merge requests!430update recent developments,!413update release branch,!412Resolve "release v2.0.0",!396communicate super requirements of models properly,!395Lukas issue362 feat branched rnn,!388Resolve "branched rnn model class"
Pipeline #93257 passed
...@@ -253,5 +253,17 @@ class AbstractModelClass(ABC): ...@@ -253,5 +253,17 @@ class AbstractModelClass(ABC):
def own_args(cls, *args): def own_args(cls, *args):
"""Return all arguments (including kwonlyargs).""" """Return all arguments (including kwonlyargs)."""
arg_spec = inspect.getfullargspec(cls) arg_spec = inspect.getfullargspec(cls)
list_of_args = arg_spec.args + arg_spec.kwonlyargs list_of_args = arg_spec.args + arg_spec.kwonlyargs + cls.super_args()
return remove_items(list_of_args, ["self"] + list(args)) return list(set(remove_items(list_of_args, ["self"] + list(args))))
@classmethod
def super_args(cls):
args = []
for super_cls in cls.__mro__:
if super_cls == cls:
continue
if hasattr(super_cls, "own_args"):
# args.extend(super_cls.own_args())
args.extend(getattr(super_cls, "own_args")())
return list(set(args))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment