##// END OF EJS Templates
dependency cleanup
MinRK -
Show More
@@ -1,66 +1,55 b''
1 """Dependency utilities"""
1 """Dependency utilities"""
2
2
3 from IPython.external.decorator import decorator
3 from IPython.external.decorator import decorator
4
4
5 # flags
5 # flags
6 ALL = 1 << 0
6 ALL = 1 << 0
7 ANY = 1 << 1
7 ANY = 1 << 1
8 HERE = 1 << 2
8 HERE = 1 << 2
9 ANYWHERE = 1 << 3
9 ANYWHERE = 1 << 3
10
10
11 class UnmetDependency(Exception):
11 class UnmetDependency(Exception):
12 pass
12 pass
13
13
14 class depend2(object):
14 class depend2(object):
15 """dependency decorator"""
15 """dependency decorator"""
16 def __init__(self, f, *args, **kwargs):
16 def __init__(self, f, *args, **kwargs):
17 print "Inside __init__()"
17 print "Inside __init__()"
18 self.dependency = (f,args,kwargs)
18 self.dependency = (f,args,kwargs)
19
19
20 def __call__(self, f, *args, **kwargs):
20 def __call__(self, f, *args, **kwargs):
21 f._dependency = self.dependency
21 f._dependency = self.dependency
22 return decorator(_depend_wrapper, f)
22 return decorator(_depend_wrapper, f)
23
23
24 class depend(object):
24 class depend(object):
25 """Dependency decorator, for use with tasks."""
25 """Dependency decorator, for use with tasks."""
26 def __init__(self, f, *args, **kwargs):
26 def __init__(self, f, *args, **kwargs):
27 print "Inside __init__()"
27 print "Inside __init__()"
28 self.f = f
28 self.f = f
29 self.args = args
29 self.args = args
30 self.kwargs = kwargs
30 self.kwargs = kwargs
31
31
32 def __call__(self, f):
32 def __call__(self, f):
33 return dependent(f, self.f, *self.args, **self.kwargs)
33 return dependent(f, self.f, *self.args, **self.kwargs)
34
34
35 class dependent(object):
35 class dependent(object):
36 """A function that depends on another function.
36 """A function that depends on another function.
37 This is an object to prevent the closure used
37 This is an object to prevent the closure used
38 in traditional decorators, which are not picklable.
38 in traditional decorators, which are not picklable.
39 """
39 """
40
40
41 def __init__(self, f, df, *dargs, **dkwargs):
41 def __init__(self, f, df, *dargs, **dkwargs):
42 self.f = f
42 self.f = f
43 self.func_name = self.f.func_name
43 self.func_name = self.f.func_name
44 self.df = df
44 self.df = df
45 self.dargs = dargs
45 self.dargs = dargs
46 self.dkwargs = dkwargs
46 self.dkwargs = dkwargs
47
47
48 def __call__(self, *args, **kwargs):
48 def __call__(self, *args, **kwargs):
49 if self.df(*self.dargs, **self.dkwargs) is False:
49 if self.df(*self.dargs, **self.dkwargs) is False:
50 raise UnmetDependency()
50 raise UnmetDependency()
51 return self.f(*args, **kwargs)
51 return self.f(*args, **kwargs)
52
52
53 def evaluate_dependency(deps):
54 """Evaluate wheter dependencies are met.
55
56 Parameters
57 ----------
58 deps : dict
59 """
60 pass
61
62 def _check_dependency(flag):
63 pass
64
53
54 __all__ = ['UnmetDependency', 'depend', 'evaluate_dependencies']
65
55
66 __all__ = ['UnmetDependency', 'depend', 'evaluate_dependencies'] No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now