Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.69 KB | None | 0 0
  1. import functools
  2.  
  3. d = dict()
  4. s = set()
  5.  
  6.  
  7. def register(function):
  8.     global d
  9.  
  10.     d[function.__name__] = function
  11.  
  12.     return function
  13.  
  14.  
  15. def depends_on(lst, function=None):
  16.     global d
  17.  
  18.     if not function:
  19.         return functools.partial(depends_on, lst)
  20.  
  21.     @functools.wraps(function)
  22.     def inner(*args, **kwargs):
  23.         global s
  24.         if inner in s:
  25.             raise Exception("Detected cycle dependencies")
  26.         s.add(inner)
  27.  
  28.         for function_name in lst:
  29.             # globals()[function_name]()
  30.             d[function_name]()
  31.  
  32.         s.remove(inner)
  33.  
  34.         return function(*args, **kwargs)
  35.  
  36.     d[function.__name__] = inner
  37.     return inner
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement