eienmojiki commited on
Commit
4bb69b3
·
verified ·
1 Parent(s): 81f8961

Create registry.py

Browse files
Files changed (1) hide show
  1. registry.py +25 -0
registry.py ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from functools import wraps
2
+ import inspect
3
+
4
+ class FilterRegistry:
5
+ def __init__(self):
6
+ self.filters = {}
7
+ self.params_map = {}
8
+
9
+ def register(self, name, **defaults):
10
+ def decorator(func):
11
+ self.filters[name] = func
12
+ sig = inspect.signature(func)
13
+ params = {}
14
+ for param in sig.parameters.values():
15
+ if param.name == 'image':
16
+ continue
17
+ params[param.name] = {
18
+ 'type': param.annotation,
19
+ 'default': param.default if param.default != inspect.Parameter.empty else defaults.get(param.name)
20
+ }
21
+ self.params_map[name] = params
22
+ return func
23
+ return decorator
24
+
25
+ registry = FilterRegistry()