Exemple #1
0
def pretty(obj):
    """return an object in a pretty form

    >>> obj = dict(name='Joe', age=25)
    >>> pretty(obj)
    '{\\n  "age": 25,\\n  "name": "Joe"\\n}'
    """
    try:
        return json.dumps(obj, indent=2, sort_keys=True)
    except TypeError:
        if isinstance(obj, dict):
            return '{\n%s\n}' % '\n'.join([
                '  {!r} {}: {!r}'.format(key, '.' * (15 - len(key)), value)
                for key, value in sorted(obj.items())
            ])
        elif isinstance(obj, set):
            return '{\n%s\n}' % ',\n'.join([
                '  {!r}'.format(key)
                for key in sorted(obj)
            ])
        elif hasattr(obj, '__dict__'):
            return '<%s \n%s\n>' % (obj.__class__.__name__, '\n'.join([
                '  {} {}: {!r}'.format(key, '.' * (15 - len(key)), value)
                for key, value in sorted(obj.__dict__.items())
            ]))
        else:
            return repr(obj)
Exemple #2
0
def dictify(item):
    """prepare an object for transmission by marshalling it's members

    Marshals only members that json can handle.
    """
    # pylint: disable=W0703

    result = {}
    for k, v in item.__dict__.items():
        try:
            json.dumps(v)
        except Exception:
            pass
        else:
            result[k] = v
    return result
Exemple #3
0
 def __str__(self):
     code = join(system.lib_path, '..', 'setup', 'www', 'static', 'dz', 'd3',
             'assets', 'force.js')
     links = [dict(source=source, target=target) for source, target in self.edges]
     system.js |= ['\nvar links = %s;\n' % dumps(links) + load(code)]
     system.libs |= d3_libs
     system.styles |= self.styles
     return '<div id="visual" class="iefallback"></div>'
Exemple #4
0
 def put(self, message):
     """put a message in the topic"""
     return self.messages.put(
         Message(
             topic=self.name,
             timestamp=now(),
             node=platform.node(),
             body=json.dumps(message),
         ))
Exemple #5
0
 def test_obj_with_datetime_without_milliseconds(self):
     """test date encoding decoding when part of a list like object"""
     d = [
         datetime.datetime(2020, 1, 1, 2, 2, 2),
         dict(status='this is a test')
     ]
     dj = dumps(d)
     d2 = loads(dj)
     self.assertListEqual(d, d2)
Exemple #6
0
 def __str__(self):
     code = join(system.lib_path, '..', 'setup', 'www', 'static', 'dz',
                 'd3', 'assets', 'force.js')
     links = [
         dict(source=source, target=target) for source, target in self.edges
     ]
     system.js |= ['\nvar links = %s;\n' % dumps(links) + load(code)]
     system.libs |= d3_libs
     system.styles |= self.styles
     return '<div id="visual" class="iefallback"></div>'
Exemple #7
0
 def __init__(
         self,
         content,
         indent=4,
         sort_keys=True,
         ensure_ascii=False,
         **kwargs
 ):
     content = dumps(content, indent, sort_keys, ensure_ascii, **kwargs)
     TextResponse.__init__(self, content)
     self.headers['Content-type'] = 'application/json;charset=utf-8'
Exemple #8
0
def dictify(item):
    """prepare an object for transmission by marshalling it's members

    Marshals only members that json can handle.

    >>> class Thing(object): pass
    >>> pp(dictify(Bunch(name='Terry', age=21, funky_type=Thing())))
    {
      "age": 21,
      "name": "Terry"
    }

    """
    # pylint: disable=W0703

    result = {}
    for k, v in item.__dict__.items():
        try:
            json.dumps(v)
        except Exception:
            pass
        else:
            result[k] = v
    return result
Exemple #9
0
 def test_decimal(self):
     d = [Decimal('22.32'), Decimal(22.32)]
     dj = dumps(d)
     d2 = loads(dj)
     self.assertEqual(d, d2)
Exemple #10
0
 def test_float(self):
     d = [22.32, u"22.32"]
     dj = dumps(d)
     d2 = loads(dj)
     self.assertEqual(d, d2)
Exemple #11
0
 def test_date(self):
     d = datetime.date.today()
     dj = dumps(d)
     d2 = loads(dj)
     self.assertEqual(d,d2)
Exemple #12
0
 def test_string(self):
     t = 'This is a test'
     tj = dumps(t)
     t2 = loads(tj)
     self.assertEqual(t,t2)
Exemple #13
0
 def test_bytes(self):
     d = [b'123', Decimal(22.32)]
     dj = dumps(d)
     d2 = loads(dj)
     self.assertEqual(d, d2)
Exemple #14
0
 def test_decimal(self):
     d = [Decimal('22.32'), Decimal(22.32)]
     dj = dumps(d)
     d2 = loads(dj)
     self.assertEqual(d, d2)
Exemple #15
0
 def test_float(self):
     d = [22.32, '22.32']
     dj = dumps(d)
     d2 = loads(dj)
     self.assertEqual(d, d2)
Exemple #16
0
 def test_date(self):
     d = datetime.date.today()
     dj = dumps(d)
     d2 = loads(dj)
     self.assertEqual(d, d2)
Exemple #17
0
 def test_string(self):
     t = 'This is a test'
     tj = dumps(t)
     t2 = loads(tj)
     self.assertEqual(t, t2)
Exemple #18
0
 def test_obj(self):
     """test object literal decode - pass/fallthrough of object_hook of loads"""
     d = [Decimal('22.32'), dict(status='this is a test')]
     dj = dumps(d)
     d2 = loads(dj)
     self.assertListEqual(d, d2)