class_docstr: Writes Core training data into a file in a YAML format.
docstr: Converts a sequence of story steps into yaml format.
  
  Args:
      story_steps: Original story steps to be converted to the YAML.
      is_test_story: `True` if the story is an end-to-end conversation test story.
docstr_tok: ["Converts","a","sequence","of","story","steps","into","yaml","format",".","Args",":","story_steps",":","Original","story","steps","to","be","converted","to","the","YAML",".","is_test_story",":","`","True","`","if","the","story","is","an","end-to-end","conversation","test","story","."]
code: def stories_to_yaml(
      self, story_steps: List[StoryStep], is_test_story: bool = False
  ) -> Dict[Text, Any]:
      """Converts a sequence of story steps into yaml format.
  
      Args:
          story_steps: Original story steps to be converted to the YAML.
          is_test_story: `True` if the story is an end-to-end conversation test story.
      """
      from rasa.shared.utils.validation import (
          KEY_TRAINING_DATA_FORMAT_VERSION,
      )
  
      self._is_test_story = is_test_story
  
      stories = []
      rules = []
      for story_step in story_steps:
          if isinstance(story_step, RuleStep):
              rules.append(self.process_rule_step(story_step))
          else:
              stories.append(self.process_story_step(story_step))
  
      result: OrderedDict[Text, Any] = OrderedDict()
      result[
          KEY_TRAINING_DATA_FORMAT_VERSION
      ] = DoubleQuotedScalarString(LATEST_TRAINING_DATA_FORMAT_VERSION)
  
      if stories:
          result[KEY_STORIES] = stories
      if rules:
          result[KEY_RULES] = rules
  
      return result
  
imports: from collections import OrderedDict
  from pathlib import Path
  from typing import Any, Dict, List, Text, Union, Optional
  from ruamel import yaml
  from ruamel.yaml.comments import CommentedMap
  from ruamel.yaml.scalarstring import DoubleQuotedScalarString, LiteralScalarString
  import rasa.shared.utils.io
  import rasa.shared.core.constants
  from rasa.shared.constants import LATEST_TRAINING_DATA_FORMAT_VERSION
  import rasa.shared.core.events
  from rasa.shared.core.events import UserUttered, ActionExecuted, SlotSet, ActiveLoop, Event
  from rasa.shared.core.training_data.story_reader.yaml_story_reader import KEY_STORIES, KEY_STORY_NAME, KEY_USER_INTENT, KEY_ENTITIES, KEY_ACTION, KEY_STEPS, KEY_CHECKPOINT, KEY_SLOT_NAME, KEY_CHECKPOINT_SLOTS, KEY_OR, KEY_USER_MESSAGE, KEY_ACTIVE_LOOP, KEY_BOT_END_TO_END_MESSAGE, KEY_RULES, KEY_RULE_FOR_CONVERSATION_START, KEY_WAIT_FOR_USER_INPUT_AFTER_RULE, KEY_RULE_CONDITION, KEY_RULE_NAME
  from rasa.shared.core.training_data.story_writer.story_writer import StoryWriter
  from rasa.shared.core.training_data.structures import StoryStep, Checkpoint, STORY_START, RuleStep
label_desc: Use image node_id 3 for calling the YAMLStoryWriter obj's underlying member method code with example usage: obj.stories_to_yaml(story_steps, is_test_story) and returns: result