def items(header, value): from mobilize.util import isscalar if isscalar(value): yield (header, str(value)) else: for oneval in value: yield (header, str(oneval))
def expand(items): for k, v in items: if isscalar(v): yield k, v else: for _v in v: yield k, _v
def test_isscalar(self): testdata = [ {'obj' : 'x', 'isscalar' : True, }, {'obj' : 'hello', 'isscalar' : True, }, {'obj' : b'hello', 'isscalar' : True, }, {'obj' : 42, 'isscalar' : True, }, {'obj' : ['a', 'b', 'c'], 'isscalar' : False, }, {'obj' : ('a', 'b', 'c'), 'isscalar' : False, }, {'obj' : {2: 3, 'a': 'g'}, 'isscalar' : False, }, {'obj' : iter([2, 3, 4]), 'isscalar' : False, }, ] for ii, td in enumerate(testdata): expected = td['isscalar'] actual = util.isscalar(td['obj']) self.assertEqual(expected, actual, td['obj'])