# HG changeset patch # User Stefano Rivera # Date 1378137515 -7200 # Node ID 0280ee006d95bd75813536907b0635f673a89106 # Parent c9b6685ebebf0a64b292f85d79dfaa0a76ccfba3 Support integer dict keys diff -r c9b6685ebebf -r 0280ee006d95 nagslang/tests/test_yamlish.py --- a/nagslang/tests/test_yamlish.py Mon Sep 02 18:19:57 2013 +0200 +++ b/nagslang/tests/test_yamlish.py Mon Sep 02 17:58:35 2013 +0200 @@ -91,6 +91,13 @@ ], }) + def test_int_dict(self): + self.roundtrip({ + 1: 'foo', + 2: 'bar', + 3: ['baz', 'qux'], + }) + def test_quoted(self): # a literal true is True, but 'true' is a string self.roundtrip({'foo': 'true'}) diff -r c9b6685ebebf -r 0280ee006d95 nagslang/yamlish.py --- a/nagslang/yamlish.py Mon Sep 02 18:19:57 2013 +0200 +++ b/nagslang/yamlish.py Mon Sep 02 17:58:35 2013 +0200 @@ -6,7 +6,7 @@ * single line strings, * ints, floats, * True, False, and None -dict keys can only be strings. +dict keys can only be scalar. ''' import re @@ -211,9 +211,11 @@ if dm: key, value = dm.groups() + key = self._parse_value(key) assert self._in_dict if value: - self._container[key] = self._parse_value(value) + value = self._parse_value(value) + self._container[key] = value else: self._parent_key = key