From a62d6dd4256ff0d05e5eaf3fc0a3f37642b2448f Mon Sep 17 00:00:00 2001 From: "INSTITUT2B\\meyer" Date: Tue, 15 May 2018 10:24:17 +0200 Subject: [PATCH] Temporary fix for using the same pulse several times --- qctoolkit/serialization.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/qctoolkit/serialization.py b/qctoolkit/serialization.py index 57dda619a..2ac2460db 100644 --- a/qctoolkit/serialization.py +++ b/qctoolkit/serialization.py @@ -471,6 +471,10 @@ def deserialize(self, representation: Union[str, Dict[str, Any]]) -> Serializabl See also: Serializable.deserialize """ + if isinstance(representation, str): + if representation in self.__subpulses: + return self.__subpulses[representation].serializable + if isinstance(representation, str): repr_ = json.loads(self.__storage_backend.get(representation)) repr_['identifier'] = representation @@ -480,9 +484,16 @@ def deserialize(self, representation: Union[str, Dict[str, Any]]) -> Serializabl module_name, class_name = repr_['type'].rsplit('.', 1) module = __import__(module_name, fromlist=[class_name]) class_ = getattr(module, class_name) - + + repr_to_store = repr_.copy() repr_.pop('type') - return class_.deserialize(self, **repr_) + + serializable = class_.deserialize(self, **repr_) + + if 'identifier' in repr_: + identifier = repr_['identifier'] + self.__subpulses[identifier] = self.__FileEntry(repr_, serializable) + return serializable class ExtendedJSONEncoder(json.JSONEncoder):