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