So, it seems that with YAML, it sometimes matters whether you use 4 spaces
of indentation rather that 2 space of indentation.  Is there some reason we
are choosing to use YAML, other than sheer love of Satan?

$ cat load.py

import yaml

import sys

f = open(sys.argv[1], 'r')

y = yaml.load(f)

print(y)

$

$ cat y1.yaml

a:

  - b: |

      one

      two

  - c: |

      three

      four

$

$ cat y2.yaml

a:

  - b: |

    one

    two

  - c: |

    three

    four

$

$ python load.py y1.yaml

{'a': [{'b': 'one\ntwo\n'}, {'c': 'three\nfour\n'}]}

$

$ python load.py y2.yaml

Traceback (most recent call last):

  File "load.py", line 4, in <module>

    y = yaml.load(f)

  File "/usr/local/lib/python2.7/site-packages/yaml/__init__.py", line 71,
in load

    return loader.get_single_data()

  File "/usr/local/lib/python2.7/site-packages/yaml/constructor.py", line
37, in get_single_data

    node = self.get_single_node()

  File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 36,
in get_single_node

    document = self.compose_document()

  File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 55,
in compose_document

    node = self.compose_node(None, None)

  File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 84,
in compose_node

    node = self.compose_mapping_node(anchor)

  File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 133,
in compose_mapping_node

    item_value = self.compose_node(node, item_key)

  File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 82,
in compose_node

    node = self.compose_sequence_node(anchor)

  File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 111,
in compose_sequence_node

    node.value.append(self.compose_node(node, index))

  File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 84,
in compose_node

    node = self.compose_mapping_node(anchor)

  File "/usr/local/lib/python2.7/site-packages/yaml/composer.py", line 127,
in compose_mapping_node

    while not self.check_event(MappingEndEvent):

  File "/usr/local/lib/python2.7/site-packages/yaml/parser.py", line 98, in
check_event

    self.current_event = self.state()

  File "/usr/local/lib/python2.7/site-packages/yaml/parser.py", line 428,
in parse_block_mapping_key

    if self.check_token(KeyToken):

  File "/usr/local/lib/python2.7/site-packages/yaml/scanner.py", line 115,
in check_token

    while self.need_more_tokens():

  File "/usr/local/lib/python2.7/site-packages/yaml/scanner.py", line 149,
in need_more_tokens

    self.stale_possible_simple_keys()

  File "/usr/local/lib/python2.7/site-packages/yaml/scanner.py", line 289,
in stale_possible_simple_keys

    "could not find expected ':'", self.get_mark())

yaml.scanner.ScannerError: while scanning a simple key

  in "y2.yaml", line 3, column 5

could not find expected ':'

  in "y2.yaml", line 4, column 5

Reply via email to