From c5c82dae21c1c98550db7ec226f02ff500f88f3e Mon Sep 17 00:00:00 2001 From: Fabian Joswig Date: Thu, 10 Feb 2022 14:57:37 +0000 Subject: [PATCH 1/2] fix: erroneous replica separator in json format caught and corrected --- pyerrors/input/json.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pyerrors/input/json.py b/pyerrors/input/json.py index c6d0e3cc..88be9e55 100644 --- a/pyerrors/input/json.py +++ b/pyerrors/input/json.py @@ -307,10 +307,15 @@ def import_json_string(json_string, verbose=True, full_output=False): retd['is_merged'] = {} for ens in d: for rep in ens['replica']: - retd['names'].append(rep['name']) + rep_name = rep['name'] + if len(rep_name) > len(ens["id"]): + tmp_list = list(rep_name) + tmp_list[len(ens["id"])] = "|" + rep_name = ''.join(tmp_list) + retd['names'].append(rep_name) retd['idl'].append([di[0] for di in rep['deltas']]) retd['deltas'].append(np.array([di[1:] for di in rep['deltas']])) - retd['is_merged'][rep['name']] = rep.get('is_merged', False) + retd['is_merged'][rep_name] = rep.get('is_merged', False) return retd def _gen_covobsd_from_cdatad(d): From d772e09d50a533e1307a2c5041173a174f86af21 Mon Sep 17 00:00:00 2001 From: Fabian Joswig Date: Thu, 10 Feb 2022 15:29:00 +0000 Subject: [PATCH 2/2] fix: Special case were no replica separator is specified accounted for --- pyerrors/input/json.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pyerrors/input/json.py b/pyerrors/input/json.py index 88be9e55..b53d4e3d 100644 --- a/pyerrors/input/json.py +++ b/pyerrors/input/json.py @@ -309,9 +309,10 @@ def import_json_string(json_string, verbose=True, full_output=False): for rep in ens['replica']: rep_name = rep['name'] if len(rep_name) > len(ens["id"]): - tmp_list = list(rep_name) - tmp_list[len(ens["id"])] = "|" - rep_name = ''.join(tmp_list) + if rep_name[len(ens["id"])] != "|": + tmp_list = list(rep_name) + tmp_list = tmp_list[:len(ens["id"])] + ["|"] + tmp_list[len(ens["id"]):] + rep_name = ''.join(tmp_list) retd['names'].append(rep_name) retd['idl'].append([di[0] for di in rep['deltas']]) retd['deltas'].append(np.array([di[1:] for di in rep['deltas']]))