Ignore:
Timestamp:
08/21/07 16:25:34 (7 years ago)
Author:
xi
Message:

Make compose() and load() ensure that the input stream contains a single document. Fixes #54.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pyyaml/trunk/ext/_yaml.pyx

    r257 r258  
    663663        if self.parsed_event.type != YAML_STREAM_END_EVENT: 
    664664            return self._compose_document() 
     665 
     666    def get_single_node(self): 
     667        self._parse_next_event() 
     668        yaml_event_delete(&self.parsed_event) 
     669        self._parse_next_event() 
     670        document = None 
     671        if self.parsed_event.type != YAML_STREAM_END_EVENT: 
     672            document = self._compose_document() 
     673        self._parse_next_event() 
     674        if self.parsed_event.type != YAML_STREAM_END_EVENT: 
     675            mark = Mark(self.stream_name, 
     676                    self.parsed_event.start_mark.index, 
     677                    self.parsed_event.start_mark.line, 
     678                    self.parsed_event.start_mark.column, 
     679                    None, None) 
     680            raise ComposerError("expected a single document in the stream", 
     681                    document.start_mark, "but found another document", mark) 
     682        return document 
    665683 
    666684    cdef object _compose_document(self): 
Note: See TracChangeset for help on using the changeset viewer.