<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_compositor_prereqs(self, parent, prereq_names, skip=False, **dfilter):
 """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. """

        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