changeset 136:0280ee006d95

Support integer dict keys
author Stefano Rivera <stefano@rivera.za.net>
date Mon, 02 Sep 2013 17:58:35 +0200
parents c9b6685ebebf
children c5ff16c66100
files nagslang/tests/test_yamlish.py nagslang/yamlish.py
diffstat 2 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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'})
--- 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