id	summary	reporter	owner	description	type	status	priority	component	severity	resolution	keywords	cc
215	Exception in yaml.dump() with Dumper and default_style=True, but not with CDumper	sylvain	xi	"Hello,

I meet a reproducible Exception when dumping a python dictionary with default_style=True. This occurs when Dumper=yaml.Dumper, but not with the CDumper.

My setup:
  python-yaml, version: 3.09-5
  python2.6.6, 
  libyaml-0-2

A simple script to reproduce this exception:
-------------------------------------
#!/usr/bin/python

import yaml

str_in = """"""
test:
  a: b
""""""

d = yaml.load(str_in, Loader=yaml.Loader)

print yaml.dump(d, Dumper=yaml.CDumper)
print yaml.dump(d, Dumper=yaml.CDumper, default_style=True)
print yaml.dump(d, Dumper=yaml.Dumper)
# This line causes an exception
print yaml.dump(d, Dumper=yaml.Dumper, default_style=True)
--------------------------------
The exception is as follows:

Traceback (most recent call last):
  File ""./yamlerr.py"", line 15, in <module>
    print yaml.dump(d, Dumper=yaml.Dumper, default_style=True)
  File ""/usr/lib/python2.6/dist-packages/yaml/__init__.py"", line 175, in dump
    return dump_all([data], stream, Dumper=Dumper, **kwds)
  File ""/usr/lib/python2.6/dist-packages/yaml/__init__.py"", line 165, in dump_all
    dumper.represent(data)
  File ""/usr/lib/python2.6/dist-packages/yaml/representer.py"", line 34, in represent
    self.serialize(node)
  File ""/usr/lib/python2.6/dist-packages/yaml/serializer.py"", line 54, in serialize
    self.serialize_node(node, None, None)
  File ""/usr/lib/python2.6/dist-packages/yaml/serializer.py"", line 108, in serialize_node
    self.serialize_node(value, node, key)
  File ""/usr/lib/python2.6/dist-packages/yaml/serializer.py"", line 107, in serialize_node
    self.serialize_node(key, node, None)
  File ""/usr/lib/python2.6/dist-packages/yaml/serializer.py"", line 90, in serialize_node
    style=node.style))
  File ""/usr/lib/python2.6/dist-packages/yaml/emitter.py"", line 110, in emit
    self.state()
  File ""/usr/lib/python2.6/dist-packages/yaml/emitter.py"", line 389, in expect_first_block_mapping_key
    return self.expect_block_mapping_key(first=True)
  File ""/usr/lib/python2.6/dist-packages/yaml/emitter.py"", line 399, in expect_block_mapping_key
    self.expect_node(mapping=True, simple_key=True)
  File ""/usr/lib/python2.6/dist-packages/yaml/emitter.py"", line 238, in expect_node
    self.process_tag()
  File ""/usr/lib/python2.6/dist-packages/yaml/emitter.py"", line 469, in process_tag
    self.style = self.choose_scalar_style()
  File ""/usr/lib/python2.6/dist-packages/yaml/emitter.py"", line 501, in choose_scalar_style
    if self.event.style and self.event.style in '|>':
TypeError: 'in <string>' requires string as left operand, not bool
----------------------------------------------

Thanks in advance for your feedback."	defect	new	normal	pyyaml	normal			
