Spaces:
Running
Running
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() |