code: def next(self):
          
          in_doc, lines, doc_tag = None, [], None
  
          for i, line in enumerate(self.stream):
              self.linepos += 1
              #print(i, line)
  
              if line.startswith("---"):
                  # Include only lines in the form:
                  #  "--- !tag"
                  #  "---"
                  # Other lines are spurious.
                  in_doc = False
                  l = line[3:].strip().lstrip()
  
                  if l.startswith("!"):
                      # "--- !tag"
                      doc_tag = l
                      in_doc = True
                  elif not l:
                      #  "---"
                      in_doc = True
                      doc_tag = None
  
                  if in_doc:
                      lineno = self.linepos
  
              if in_doc:
                  lines.append(line)
  
              if in_doc and line.startswith("..."):
                  return YamlDoc(text="".join(lines), lineno=lineno, tag=doc_tag)
  
          raise StopIteration("Cannot find next YAML document in %s" % self.filename)
docs: Returns the first YAML document in stream.
  
          .. warning::
  
              Assume that the YAML document are closed explicitely with the sentinel '...'