Changeset 138:366b334a7018 for nagslang
- Timestamp:
- Sep 2, 2013, 4:12:42 PM (7 years ago)
- Branch:
- default
- rebase_source:
- fed7e5a2d4f0c3a61f92e0d51daecd54fbeba081
- Location:
- nagslang
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
nagslang/tests/test_yamlish.py
r137 r138 35 35 36 36 class TestRoundTrip(TestCase): 37 from_pyyaml = False 38 37 39 def roundtrip(self, data): 38 40 text = self.dump_s(data) … … 107 109 }) 108 110 111 def test_tuples(self): 112 if self.from_pyyaml: 113 raise SkipTest("Can't parse PyYAML tuples") 114 orig = { 115 'polygons': { 116 1: [ 117 (0, 1), 118 (2, 3), 119 ], 120 }, 121 } 122 text = self.dump_s(orig) 123 result = self.load_s(text) 124 self.assertEqual(orig['polygons'][1][0], 125 tuple(result['polygons'][1][0])) 126 self.assertEqual(orig['polygons'][1][1], 127 tuple(result['polygons'][1][1])) 128 109 129 def test_quoted(self): 110 130 # a literal true is True, but 'true' is a string … … 122 142 123 143 class TestFromPyYAML(TestRoundTrip): 144 from_pyyaml = True 145 124 146 def dump_s(self, data): 125 147 if yaml is None: … … 129 151 130 152 class TestFromPyYAMLInlineLists(TestRoundTrip): 153 from_pyyaml = True 154 131 155 def dump_s(self, data): 132 156 if yaml is None: -
nagslang/yamlish.py
r137 r138 35 35 36 36 def _dump_block(self, data, indent=0): 37 for type_ in (list, dict):37 for type_ in (list, tuple, dict): 38 38 if isinstance(data, type_): 39 39 f = getattr(self, '_dump_%s_block' % type_.__name__) … … 42 42 43 43 def _dump_inline(self, data): 44 if data i n (True, False, None):44 if data is True or data is False or data is None: 45 45 return self._dump_literal(data) 46 for type_ in (list, dict, basestring, int, float):46 for type_ in (list, tuple, dict, basestring, int, float): 47 47 if isinstance(data, type_): 48 48 f = getattr(self, '_dump_%s' % type_.__name__) … … 61 61 output += dumped 62 62 return output 63 64 _dump_tuple_block = _dump_list_block 63 65 64 66 def _dump_dict_block(self, data, indent): … … 77 79 78 80 def _inlineable(self, data): 79 if isinstance(data, list): 80 return all(not isinstance(item, (list, dict)) for item in data) 81 if isinstance(data, (list, tuple)): 82 return all(not isinstance(item, (list, dict, tuple)) 83 for item in data) 81 84 elif isinstance(data, dict): 82 return all(not isinstance(item, (list, dict ))85 return all(not isinstance(item, (list, dict, tuple)) 83 86 for item in data.itervalues()) 84 87 else: … … 88 91 return '[%s]' % ', '.join(self._dump_inline(item) for item in data) 89 92 93 _dump_tuple = _dump_list 94 90 95 def _dump_dict(self, data): 91 96 return '{%s}' % ', '.join( 92 93 97 '%s: %s' % (self._dump_inline(key), self._dump_inline(value)) 98 for key, value in data.iteritems()) 94 99 95 100 def _dump_basestring(self, data):
Note: See TracChangeset
for help on using the changeset viewer.