From cead1109151393e0cc9f4be4f74a30b22f1393ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <alan.munoz@ed.ac.uk> Date: Fri, 30 Sep 2022 15:45:17 +0100 Subject: [PATCH] feat(agora): add decorators file --- src/agora/io/decorators.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/agora/io/decorators.py diff --git a/src/agora/io/decorators.py b/src/agora/io/decorators.py new file mode 100644 index 00000000..f0eea7e0 --- /dev/null +++ b/src/agora/io/decorators.py @@ -0,0 +1,22 @@ +#!/usr/bin/env jupyter +""" +Convenience decorators that extend commonly-used methods or functions. +""" +import typing as t +from functools import wraps + + +def _first_arg_str_to_df( + fn: t.Callable, +): + """Ensures Signal-like classes convert strings to datasets when calling them""" + + @wraps(fn) + def format_input(*args, **kwargs): + cls = args[0] + data = args[1] + if isinstance(data, str): + data = cls.get_raw(data) + return fn(cls, data, *args[2:], **kwargs) + + return format_input -- GitLab