<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def dependents(self, on_predicate=None, from_predicate=None):
 """Returns a map from targets that satisfy the from_predicate to targets they depend on that satisfy the on_predicate. :API: public """

    core = set(self.targets(on_predicate))
    dependees = defaultdict(set)
    for target in self.targets(from_predicate):
      for dependency in target.dependencies:
        if dependency in core:
          dependees[target].add(dependency)
    return dependees