docs: def get_implicit_depends_on(input_hash, depends_on):
      '''
      Add DNAnexus links to non-closed data objects in input_hash to depends_on
      '''
      q = []
  
      for field in input_hash:
          possible_dep = get_nonclosed_data_obj_link(input_hash[field])
          if possible_dep is not None:
              depends_on.append(possible_dep)
          elif isinstance(input_hash[field], list) or isinstance(input_hash[field], dict):
              q.append(input_hash[field])
  
      while len(q) > 0:
          thing = q.pop()
          if isinstance(thing, list):
              for i in range(len(thing)):
                  possible_dep = get_nonclosed_data_obj_link(thing[i])
                  if possible_dep is not None:
                      depends_on.append(possible_dep)
                  elif isinstance(thing[i], list) or isinstance(thing[i], dict):
                      q.append(thing[i])
          else:
              for field in thing:
                  possible_dep = get_nonclosed_data_obj_link(thing[field])
                  if possible_dep is not None:
                      depends_on.append(possible_dep)
                  elif isinstance(thing[field], list) or isinstance(thing[field], dict):
                      q.append(thing[field])