code: def do(stream, action, key, default=None, dump=yaml_dump,
         loader=ShyamlSafeLoader):
      
      at_least_one_content = False
      for content in yaml.load_all(stream, Loader=loader):
          at_least_one_content = True
          value = traverse(content, key, default=default)
          yield act(action, value, dump=dump)
  
      ## In case of empty stream, we consider that it is equivalent
      ## to one document having the ``null`` value.
      if at_least_one_content is False:
          value = traverse(None, key, default=default)
          yield act(action, value, dump=dump)
docs: Return string representations of target value in stream YAML
  
      The key is used for traversal of the YAML structure to target
      the value that will be dumped.
  
      :param stream:  file like input yaml content
      :param action:  string identifying one of the possible supported actions
      :param key:     string dotted expression to traverse yaml input
      :param default: optional default value in case of missing end value when
                      traversing input yaml.  (default is ``None``)
      :param dump:    callable that will be given python objet to dump in yaml
                      (default is ``yaml_dump``)
      :param loader:  PyYAML's *Loader subclass to parse YAML
                      (default is ShyamlSafeLoader)
      :return:        generator of string representation of target value per
                      YAML docs in the given stream.
  
      :raises ActionTypeError: when there's a type mismatch between the
          action selected and the type of the targetted value.
          (ie: action 'key-values' on non-struct)
      :raises InvalidAction: when selected action is not a recognised valid
          action identifier.
      :raises InvalidPath: upon inexistent content when traversing YAML
          input following the key specification.