diff options
| author | 2020-01-25 13:58:13 +0000 | |
|---|---|---|
| committer | 2020-01-25 14:01:11 +0000 | |
| commit | 341b3141048a72b59593d17713bf492d5e115ac2 (patch) | |
| tree | dea044f17f41c3d1714242238625057b8fea39bd /src/utils/decorators.py | |
| parent | update echo.py to use command spec language (diff) | |
change command specs to be compiled at runtime by a decorator
Diffstat (limited to 'src/utils/decorators.py')
| -rw-r--r-- | src/utils/decorators.py | 15 |
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 |
