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
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