def test_tuple(self):
     self.assertEqual(JsonSanitizer.sanitize((1, )), {
         '__tuple__': True,
         'data': [1]
     })
     self.assertEqual(JsonSanitizer.load({
         '__tuple__': True,
         'data': [1]
     }), (1, ))
示例#2
0
 def test_tuple(self):
     self.assertEqual(JsonSanitizer.sanitize((1, )), {
         "__tuple__": True,
         "data": [1]
     })
     self.assertEqual(JsonSanitizer.load({
         "__tuple__": True,
         "data": [1]
     }), (1, ))
 def test_dict(self):
     self.assertEqual(JsonSanitizer.sanitize({1: 2}), {
         '__dict__': True,
         'keys': [1],
         'values': [2]
     })
     self.assertEqual(
         JsonSanitizer.load({
             '__dict__': True,
             'keys': [1],
             'values': [2]
         }), {1: 2})
示例#4
0
 def test_dict(self):
     self.assertEqual(
         JsonSanitizer.sanitize({1: 2}),
         {
             "__dict__": True,
             "keys": [1],
             "values": [2]
         },
     )
     self.assertEqual(
         JsonSanitizer.load({
             "__dict__": True,
             "keys": [1],
             "values": [2]
         }), {1: 2})
 def test_nested(self):
     input_data = [{
         (1, 2): "foo"
     }, ["bar", (5, 6)], {},
                   tuple([]), ((7, ), )]
     expected = [
         {
             '__dict__': True,
             'keys': [{
                 '__tuple__': True,
                 'data': [1, 2]
             }],
             'values': ["foo"]
         },
         ["bar", {
             '__tuple__': True,
             'data': [5, 6]
         }],
         {
             '__dict__': True,
             'keys': [],
             'values': []
         },
         {
             '__tuple__': True,
             'data': []
         },
         {
             '__tuple__': True,
             'data': [{
                 '__tuple__': True,
                 'data': [7]
             }]
         },
     ]
     self.assertEqual(JsonSanitizer.sanitize(input_data), expected)
     self.assertEqual(JsonSanitizer.load(expected), input_data)
示例#6
0
    def load_file(cls, filepath, whitelist=True):
        """Load a bw2package file with one or more objects. Does not create new objects.

        Args:
            * *filepath* (str): Path of file to import
            * *whitelist* (bool): Apply whitelist of approved classes to allowed types. Default is ``True``.

        Returns the loaded data in the bw2package dict data format, with the following changes:
            * ``"class"`` is an actual Python class object (but not instantiated).

        """
        raw_data = JsonSanitizer.load(JsonWrapper.load_bz2(filepath))
        if isinstance(raw_data, dict):
            return cls._load_obj(raw_data, whitelist)
        else:
            return [cls._load_obj(o, whitelist) for o in raw_data]
示例#7
0
 def _write_file(cls, filepath, data):
     JsonWrapper.dump_bz2(JsonSanitizer.sanitize(data), filepath)