def depends(**dependencies):
 def decorator(func):
  @wraps(func)
  def wrapper(*a, **explicit):
   deps = dict([(k, get_dependency_for(k, v)) for (k, v) in dependencies.iteritems() if (k not in explicit)])
   return func(*a, **union(deps, explicit))
  return wrapper
 return decorator

def depends ( ** dependencies ) : def decorator ( func ) : @ wraps ( func ) def wrapper ( * a , ** explicit ) : deps = dict ( [ ( k , get_dependency_for ( k , v ) ) for ( k , v ) in dependencies . iteritems ( ) if ( k not in explicit ) ] ) return func ( * a , ** union ( deps , explicit ) ) return wrapper return decorator
return a decorator that specifies the field dependencies of a "compute" method .