summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@archive.org>2020-05-16 19:51:15 -0700
committerBryan Newbold <bnewbold@archive.org>2020-05-16 19:51:17 -0700
commit0d9c230bd74a94006a6ff9e9e32be7ea8a6b51ac (patch)
tree05b635a504fa0fdf40da3805f3ac9f3f9437b3e1
parentf1f7842dd2ed110e9958f56d79ec504ae5d2bcd6 (diff)
downloadfatcat-scholar-0d9c230bd74a94006a6ff9e9e32be7ea8a6b51ac.tar.gz
fatcat-scholar-0d9c230bd74a94006a6ff9e9e32be7ea8a6b51ac.zip
hack-y global serde ApiClient
Motivation is to speed up serialization/deserialization for entity encoding.
-rw-r--r--fatcat_scholar/api_entities.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/fatcat_scholar/api_entities.py b/fatcat_scholar/api_entities.py
index 53455e8..738c5c8 100644
--- a/fatcat_scholar/api_entities.py
+++ b/fatcat_scholar/api_entities.py
@@ -3,6 +3,8 @@ import json
import collections
from fatcat_openapi_client import ApiClient
+_global_serde_api_client = ApiClient()
+
def entity_to_dict(entity, api_client=None):
"""
Hack to take advantage of the code-generated serialization code.
@@ -14,7 +16,7 @@ def entity_to_dict(entity, api_client=None):
that this argument may become mandatory.
"""
if not api_client:
- api_client = ApiClient()
+ api_client = _global_serde_api_client
return api_client.sanitize_for_serialization(entity)
def entity_from_json(json_str, entity_type, api_client=None):
@@ -24,7 +26,7 @@ def entity_from_json(json_str, entity_type, api_client=None):
See note on `entity_to_dict()` about api_client argument.
"""
if not api_client:
- api_client = ApiClient()
+ api_client = _global_serde_api_client
thing = collections.namedtuple('Thing', ['data'])
thing.data = json_str
return api_client.deserialize(thing, entity_type)