Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import functools
- d = dict()
- s = set()
- def register(function):
- global d
- d[function.__name__] = function
- return function
- def depends_on(lst, function=None):
- global d
- if not function:
- return functools.partial(depends_on, lst)
- @functools.wraps(function)
- def inner(*args, **kwargs):
- global s
- if inner in s:
- raise Exception("Detected cycle dependencies")
- s.add(inner)
- for function_name in lst:
- # globals()[function_name]()
- d[function_name]()
- s.remove(inner)
- return function(*args, **kwargs)
- d[function.__name__] = inner
- return inner
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement