From 06311eac398b28c6f5756637437ee81b67908a5b Mon Sep 17 00:00:00 2001 From: Jun Aishima Date: Tue, 1 Oct 2024 18:26:32 -0400 Subject: [PATCH 1/2] use a session instead of requests directly * enable persistent sessions to be used instead of an always-new session for each request --- amostra/client/amutils.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/amostra/client/amutils.py b/amostra/client/amutils.py index 6bf9c3c..24360ec 100644 --- a/amostra/client/amutils.py +++ b/amostra/client/amutils.py @@ -2,6 +2,9 @@ import ujson +session = requests.Session() + + def doc_or_uid_to_uid(doc_or_uid): """Given Document or uid return the uid @@ -38,7 +41,7 @@ def _get(url, params): Results of the query """ - r = requests.get(url, ujson.dumps(params)) + r = session.get(url, ujson.dumps(params)) r.raise_for_status() return ujson.loads(r.text) @@ -54,7 +57,7 @@ def _post(url, data): Entries to be inserted to database """ - r = requests.post(url, + r = session.post(url, data=ujson.dumps(data)) r.raise_for_status() return r.json() @@ -83,6 +86,6 @@ def _put(url, query, update): """ update_cont = {'query': query, 'update': update} - r = requests.put(url, + r = session.put(url, data=ujson.dumps(update_cont)) r.raise_for_status() From 9affb5bd1b4d6d44df180189cd3f8d7d41120516 Mon Sep 17 00:00:00 2001 From: Jun Aishima Date: Thu, 3 Oct 2024 17:23:01 -0400 Subject: [PATCH 2/2] use kwarg (required for Session) * requests.api.put has data as a kwarg with default value None so this was why requests.get(url, data) worked --- amostra/client/amutils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/amostra/client/amutils.py b/amostra/client/amutils.py index 24360ec..dd77db1 100644 --- a/amostra/client/amutils.py +++ b/amostra/client/amutils.py @@ -41,7 +41,7 @@ def _get(url, params): Results of the query """ - r = session.get(url, ujson.dumps(params)) + r = session.get(url, params=ujson.dumps(params)) r.raise_for_status() return ujson.loads(r.text)