aboutsummaryrefslogtreecommitdiff
path: root/src/utils/decorators.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/decorators.py')
-rw-r--r--src/utils/decorators.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/utils/decorators.py b/src/utils/decorators.py
index dc4adf3a..ca47ea6e 100644
--- a/src/utils/decorators.py
+++ b/src/utils/decorators.py
@@ -1,4 +1,5 @@
import typing
+from .parse import argument_spec
BITBOT_MAGIC = "__bitbot"
@@ -42,10 +43,18 @@ def export(setting: str, value: typing.Any):
magic.add_export(setting, value)
return module
return _export_func
+
+def _kwarg(key: str, value: typing.Any, func: typing.Any):
+ magic = get_magic(func)
+ magic.add_kwarg(key, value)
+ return func
+
def kwarg(key: str, value: typing.Any):
def _kwarg_func(func):
- magic = get_magic(func)
- magic.add_kwarg(key, value)
- return func
+ return _kwarg(key, value, func)
return _kwarg_func
+def spec(spec: str):
+ def _spec_func(func):
+ return _kwarg("spec", argument_spec(spec), func)
+ return _spec_func