Photo-Filter-2.0 / registry.py
eienmojiki's picture
Create registry.py
4bb69b3 verified
raw
history blame
784 Bytes
from functools import wraps
import inspect
class FilterRegistry:
def __init__(self):
self.filters = {}
self.params_map = {}
def register(self, name, **defaults):
def decorator(func):
self.filters[name] = func
sig = inspect.signature(func)
params = {}
for param in sig.parameters.values():
if param.name == 'image':
continue
params[param.name] = {
'type': param.annotation,
'default': param.default if param.default != inspect.Parameter.empty else defaults.get(param.name)
}
self.params_map[name] = params
return func
return decorator
registry = FilterRegistry()