code: def no_parentds_in_futures(futures, path, skip=tuple()):
      """Return True if no path in futures keys is parentds for provided path
  
      Assumes that the future's key is the path.
  
      Parameters
      ----------
      skip: iterable
        Do not consider futures with paths in skip.  E.g. it could be top level
        dataset which we know it exists already, and it is ok to start with child
        process before it
      """
      # TODO: OPT.  Could benefit from smarter than linear time if not one at a time?
      #   or may be we should only go through active futures (still linear!)?
      return all(
          not path_is_subpath(path, p) or p in skip for p in futures
      )
  
imports: import concurrent.futures
  import inspect
  import sys
  import time
  import uuid
  from collections import defaultdict
  from queue import Queue, Empty
  from threading import Thread
  from .None import ansi_colors
  from ..log import log_progress
  from ..utils import path_is_subpath
  from datalad.support.exceptions import CapturedException
  import logging
label_desc: Use image node_id 2 for calling a global function with example usage: no_parentds_in_futures(futures, path, skip) and returns: all