Skip to content

Commit 6f75b0a

Browse files
Merge pull request #334 from OpenFreeEnergy/result-client-custom-encoder
Use JSON_HANDLER classes in ResultClient storage
2 parents fccc82b + 21ec6d1 commit 6f75b0a

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

openfe/storage/resultclient.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from .metadatastore import JSONMetadataStore
1010

1111
from gufe.tokenization import (
12-
get_all_gufe_objs, key_decode_dependencies, from_dict
12+
get_all_gufe_objs, key_decode_dependencies, from_dict, JSON_HANDLER,
1313
)
1414

1515

@@ -138,6 +138,7 @@ def _store_gufe_tokenizable(self, prefix, obj):
138138
# we only store on keys that we don't already know
139139
if key not in self.result_server:
140140
data = json.dumps(o.to_keyed_dict(),
141+
cls=JSON_HANDLER.encoder,
141142
sort_keys=True).encode('utf-8')
142143
self.result_server.store_bytes(key, data)
143144

@@ -175,7 +176,7 @@ def recursive_build_object_cache(gufe_key):
175176
with self.load_stream(storage_key) as f:
176177
keyencoded_json = f.read().decode('utf-8')
177178

178-
dct = json.loads(keyencoded_json)
179+
dct = json.loads(keyencoded_json, cls=JSON_HANDLER.decoder)
179180
# this implementation may seem strange, but it will be a
180181
# faster than traversing the dict
181182
key_encoded = set(GUFEKEY_JSON_REGEX.findall(keyencoded_json))

0 commit comments

Comments
 (0)