in airavata_django_portal_sdk/queue_settings_calculators.py [0:0]
def queue_settings_calculator(_func=None, *, id=None, name=None, **kwargs):
"""Decorator for registering queue settings calculator functions."""
def decorator(func):
# Register decorator
name_ = name
if name_ is None:
name_ = func.__name__
id_ = id
if id_ is None:
id_ = func.__module__ + ":" + func.__name__
if exists(id_):
raise Exception(f"Duplicate queue settings calculator id: {id_}")
QUEUE_SETTINGS_CALCULATORS.append(QueueSettingsCalculator(id_, name_, func))
return func
if _func is None:
return decorator
else:
return decorator(_func)