code: def _safe_dump(data):
      '''
      this presenter magic makes yaml.safe_dump
      work with the objects returned from
      boto.describe_alarms()
      '''
      custom_dumper = __utils__['yaml.get_dumper']('SafeOrderedDumper')
  
      def boto_listelement_presenter(dumper, data):
          return dumper.represent_list(list(data))
  
      yaml.add_representer(boto.ec2.cloudwatch.listelement.ListElement,
                           boto_listelement_presenter,
                           Dumper=custom_dumper)
  
      def dimension_presenter(dumper, data):
          return dumper.represent_dict(dict(data))
  
      yaml.add_representer(boto.ec2.cloudwatch.dimension.Dimension,
                           dimension_presenter, Dumper=custom_dumper)
  
      return __utils__['yaml.dump'](data, Dumper=custom_dumperf _safe_dump(data):
      '''
      this presenter magic makes yaml.safe_dump
      work with the objects returned from
      boto.describe_alarms()
      '''
      custom_dumper = __utils__['yaml.get_dumper']('SafeOrderedDumper')
  
      def boto_listelement_presenter(dumper, data):
          return dumper.represent_list(list(data))
  
      yaml.add_representer(boto.ec2.cloudwatch.listelement.ListElement,
                           boto_listelement_presenter,
                           Dumper=custom_dumper)
  
      def dimension_presenter(dumper, data):
          return dumper.represent_dict(dict(data))
  
      yaml.add_representer(boto.ec2.cloudwatch.dimension.Dimension,
                           dimension_presenter, Dumper=custom_dumper)
  
      return __utils__['yaml.dump'](data, Dumper=custom_dumper)
docs: this presenter magic makes yaml.safe_dump
      work with the objects returned from
      boto.describe_alarms()