code: def targets_by_file(self, targets):
      
      targets_by_file = defaultdict(OrderedSet)
  
      for target in targets:
        for f in self.files_for_target(target):
          targets_by_file[f].add(target)
  
      return targets_by_file
docs: Returns a map from abs path of source, class or jar file to an OrderedSet of targets.
  
      The value is usually a singleton, because a source or class file belongs to a single target.
      However a single jar may be provided (transitively or intransitively) by multiple JarLibrary
      targets. But if there is a JarLibrary target that depends on a jar directly, then that
      "canonical" target will be the first one in the list of targets.