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