From 771f3fa0b9d29c8dc30c9e53d308eec1d89e626d Mon Sep 17 00:00:00 2001 From: Samuel Gaist <samuel.gaist@idiap.ch> Date: Fri, 14 Jun 2019 09:57:57 +0200 Subject: [PATCH] [library] Use error_on_duplicate_key_hook when loading data --- beat/backend/python/library.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/beat/backend/python/library.py b/beat/backend/python/library.py index a59ce3c..8d91adc 100644 --- a/beat/backend/python/library.py +++ b/beat/backend/python/library.py @@ -43,7 +43,7 @@ Validation for libraries """ import os -import simplejson +import simplejson as json from . import loader from . import utils @@ -164,7 +164,14 @@ class Library(object): return with open(json_path, "rb") as f: - self.data = simplejson.loads(f.read().decode("utf-8")) + try: + self.data = json.loads( + f.read().decode("utf-8"), + object_pairs_hook=utils.error_on_duplicate_key_hook, + ) + except RuntimeError as error: + self.errors.append("Library declaration file invalid: %s" % error) + return self.code_path = self.storage.code.path @@ -318,7 +325,7 @@ class Library(object): """ - return simplejson.dumps(self.data, indent=indent, cls=utils.NumpyJSONEncoder) + return json.dumps(self.data, indent=indent, cls=utils.NumpyJSONEncoder) def __str__(self): return self.json_dumps() -- GitLab