docs: def OpenChildren(self,
                     children=None,
                     mode="r",
                     limit=None,
                     chunk_limit=100000,
                     age=NEWEST_TIME):
      """Yields AFF4 Objects of all our direct children.
  
      This method efficiently returns all attributes for our children directly, in
      a few data store round trips. We use the directory indexes to query the data
      store.
  
      Args:
        children: A list of children RDFURNs to open. If None open all our
          children.
        mode: The mode the files should be opened with.
        limit: Total number of items we will attempt to retrieve.
        chunk_limit: Maximum number of items to retrieve at a time.
        age: The age of the items to retrieve. Should be one of ALL_TIMES,
          NEWEST_TIME or a range.
  
      Yields:
        Instances for each direct child.
      """
      if children is None:
        # No age passed here to avoid ignoring indexes that were updated
        # to a timestamp greater than the object's age.
        subjects = list(self.ListChildren())
      else:
        subjects = list(children)
      subjects.sort()
      result_count = 0
      # Read at most limit children at a time.
      while subjects:
        to_read = subjects[:chunk_limit]
        subjects = subjects[chunk_limit:]
        for child in FACTORY.MultiOpen(
            to_read, mode=mode, token=self.token, age=age):
          yield child
          result_count += 1
          if limit and result_count >= limit:
            return