Custom Query (121 matches)
Results (34 - 36 of 121)
| Ticket | Resolution | Summary | Owner | Reporter |
|---|---|---|---|---|
| #17 | fixed | Single quote character can break emitter output | xi | apopheniac.reply.pyyaml@… |
| Description |
If a string contains a space followed by a single quote character, PyYaml?'s emitter fails to duplicate the single quote. The resulting YAML output yields a parse error: >>> map = {'key': " 'single quoted text'"} >>> yaml.dump(map) "{key: ' 'single quoted text'''}\n" >>> yaml.load(yaml.dump(map)) Traceback (most recent call last): File "<stdin>", line 1, in ? File "/home/apopheniac/lib/python/yaml/__init__.py", line 61, in load return loader.get_data() File "/home/apopheniac/lib/python/yaml/constructor.py", line 41, in get_data return self.construct_document(self.get_node()) File "/home/apopheniac/lib/python/yaml/composer.py", line 23, in get_node return self.compose_document() File "/home/apopheniac/lib/python/yaml/composer.py", line 40, in compose_document node = self.compose_node(None, None) File "/home/apopheniac/lib/python/yaml/composer.py", line 69, in compose_node node = self.compose_mapping_node(anchor) File "/home/apopheniac/lib/python/yaml/composer.py", line 112, in compose_mapping_node while not self.check_event(MappingEndEvent): File "/home/apopheniac/lib/python/yaml/parser.py", line 78, in check_event self.current_event = self.event_generator.next() File "/home/apopheniac/lib/python/yaml/parser.py", line 129, in parse_stream for event in self.parse_block_node(): File "/home/apopheniac/lib/python/yaml/parser.py", line 323, in parse_node for event in collection_events: File "/home/apopheniac/lib/python/yaml/parser.py", line 472, in parse_flow_mapping "expected ',' or '}', but got %r" % token.id, token.start_mark) yaml.parser.ParserError: while scanning a flow mapping in "<string>", line 1, column 1: {key: ' 'single quoted text'''} ^ expected ',' or '}', but got '<scalar>' in "<string>", line 1, column 10: {key: ' 'single quoted text'''} ^ If each single quote is preceded by a non-space character, then the error disappears: >>> map = {"key": " foo'single quoted text'"} >>> yaml.dump(map) "{key: ' foo''single quoted text'''}\n" >>> yaml.load(yaml.dump(map)) {'key': " foo'single quoted text'"} The error seems to lie in the write_single_quoted function of module emitter.py. I've only encountered this problem with scalars represented in single quoted style. |
|||
| #55 | invalid | Why can't I do "Abilities: Skills: Meele: Sword Staff"? | xi | arne_bab@… |
| Description |
Why can't I use an input document containing a line like the following?
Doesn't yaml permit that? |
|||
| #48 | wontfix | yaml.load does not call __init__ of objects | xi | aymanbahrain@… |
| Description |
I noticed that my init code is not called when an object is created via yaml.load. Try this one: In this example, fy.secret will raise an error about secret not an attribute of fy object. import yaml
class Field:
def __init__(self):
print 'init called'
self.secret = 'password'
f = Field()
print f.secret
fy = yaml.load(file('fld.yaml', 'r'))
print fy.hide_value
print fy.secret
have fld.yaml contain:
!!python/object:__main__.Field
hide_value: true
|
|||
