diff --git a/src/agora/io/decorators.py b/src/agora/io/decorators.py new file mode 100644 index 0000000000000000000000000000000000000000..f0eea7e0e363e8a9d7075b6b3a6e236e08fccf31 --- /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