You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
19 lines
449 B
19 lines
449 B
2 years ago
|
|
||
|
try:
|
||
|
from django_scopes import scope
|
||
|
except ImportError:
|
||
|
from xenua.decorators import no_op as scope
|
||
|
|
||
|
|
||
|
def add_scopes(get_scopes=None, **scopes):
|
||
|
def decorate(fn):
|
||
|
def wrapper(*args, **kwargs):
|
||
|
nonlocal scopes
|
||
|
if get_scopes is not None:
|
||
|
scopes = get_scopes(**scopes)
|
||
|
with scope(**scopes):
|
||
|
return fn(*args, **kwargs)
|
||
|
return wrapper
|
||
|
return decorate
|
||
|
|