code: def _get_compositor_prereqs(self, parent, prereq_names, skip=False,
                                  **dfilter):
          
          prereq_ids = []
          unknowns = set()
          for prereq in prereq_names:
              n, u = self._find_dependencies(prereq, **dfilter)
              if u:
                  unknowns.update(u)
                  if skip:
                      u_str = ", ".join([str(x) for x in u])
                      LOG.debug('Skipping optional %s: Unknown dataset %s',
                                str(prereq), u_str)
              else:
                  prereq_ids.append(n)
                  self.add_child(parent, n)
          return prereq_ids, unknowns
docs: Determine prerequisite Nodes for a composite.
  
          Args:
              parent (Node): Compositor node to add these prerequisites under
              prereq_names (sequence): Strings (names), floats (wavelengths), or
                                       DatasetIDs to analyze.
              skip (bool, optional): If True, prerequisites are considered
                                     optional if they can't be found and a
                                     debug message is logged. If False (default),
                                     the missing prerequisites are not logged
                                     and are expected to be handled by the
                                     caller.