def test_tuple(self): self.assertEqual(JsonSanitizer.sanitize((1, )), { '__tuple__': True, 'data': [1] }) self.assertEqual(JsonSanitizer.load({ '__tuple__': True, 'data': [1] }), (1, ))
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})
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)
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]
def _write_file(cls, filepath, data): JsonWrapper.dump_bz2(JsonSanitizer.sanitize(data), filepath)