示例#1
0
 def _create_record_key(self):
     """Creates `TextValue` of record key."""
     # check if key is scalar
     if not isinstance(self._event, pyyaml.ScalarEvent):
         start_pos = Position.from_mark(self._event.start_mark)
         self._create_fatal_error_node(start_pos)
         notification = Notification.from_name('ComplexRecordKey')
         notification.span = self._fatal_error_node.span
         self.notification_handler.report(notification)
         self._event = None
         self._iterate_events = False
         return None
     key = TextValue()
     key.value = self._event.value
     key.span = Span.from_event(self._event)
     return key
示例#2
0
 def _create_scalar_node(self):
     """Creates a ScalarDataNode."""
     node = ScalarDataNode()
     tag = self._event.tag
     if tag is None or not tag.startswith('tag:yaml.org,2002:'):
         tag = resolve_scalar_tag(self._event.value)
     node.span = Span.from_event(self._event)
     try:
         node.value = construct_scalar(self._event.value, tag)
     except Exception as error:
         notification = Notification.from_name('ConstructScalarError', error.args[0])
         notification.span = node.span
         self.notification_handler.report(notification)
         return node
     if node.value is None:
         # alter position of empty node (so it can be selected)
         node.span.end.column += 1
     return node