From a91be93d659b58c943aeaa7b8768c963d565eeaa Mon Sep 17 00:00:00 2001 From: Alexandr Mansurov Date: Sat, 11 Feb 2023 12:50:53 +0100 Subject: [PATCH 1/4] Headers provided in the loader will expand the default headers --- lib/pyld/documentloader/requests.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/pyld/documentloader/requests.py b/lib/pyld/documentloader/requests.py index 77f42e1d..1f113dcd 100644 --- a/lib/pyld/documentloader/requests.py +++ b/lib/pyld/documentloader/requests.py @@ -55,11 +55,10 @@ def loader(url, options={}): 'the URL\'s scheme is not "https".', 'jsonld.InvalidUrl', {'url': url}, code='loading document failed') - headers = options.get('headers') - if headers is None: - headers = { - 'Accept': 'application/ld+json, application/json' - } + headers = { + 'Accept': 'application/ld+json, application/json' + } + headers.update(options.get('headers', {})) response = requests.get(url, headers=headers, **kwargs) content_type = response.headers.get('content-type') From 4ef4980690021a738b007fe4f5202dbcbdc42d13 Mon Sep 17 00:00:00 2001 From: Alexandr Mansurov Date: Sat, 11 Feb 2023 12:56:19 +0100 Subject: [PATCH 2/4] Allow for custom session to be passed in options --- lib/pyld/documentloader/requests.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/pyld/documentloader/requests.py b/lib/pyld/documentloader/requests.py index 77f42e1d..5a4a5e28 100644 --- a/lib/pyld/documentloader/requests.py +++ b/lib/pyld/documentloader/requests.py @@ -60,7 +60,8 @@ def loader(url, options={}): headers = { 'Accept': 'application/ld+json, application/json' } - response = requests.get(url, headers=headers, **kwargs) + session = options.get('session', requests) + response = session.get(url, headers=headers, **kwargs) content_type = response.headers.get('content-type') if not content_type: From 3abaca4dd973494bacd171324433dfea6a866b77 Mon Sep 17 00:00:00 2001 From: Alexandr Mansurov Date: Sat, 11 Feb 2023 15:12:23 +0100 Subject: [PATCH 3/4] Handle headers in kwargs --- lib/pyld/documentloader/requests.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/pyld/documentloader/requests.py b/lib/pyld/documentloader/requests.py index 2592670b..4f032526 100644 --- a/lib/pyld/documentloader/requests.py +++ b/lib/pyld/documentloader/requests.py @@ -60,6 +60,9 @@ def loader(url, options={}): 'Accept': 'application/ld+json, application/json' } headers.update(options.get('headers', {})) + if 'headers' in kwargs: + headers.update(kwargs['headers']) + del kwargs['headers'] session = options.get('session', requests) response = session.get(url, headers=headers, **kwargs) From 7dddbbeaff0b5daf7f2271abc149ba1a34dd676e Mon Sep 17 00:00:00 2001 From: Alexandr Mansurov Date: Sat, 11 Feb 2023 15:50:10 +0100 Subject: [PATCH 4/4] Handle session in kwargs --- lib/pyld/documentloader/requests.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/pyld/documentloader/requests.py b/lib/pyld/documentloader/requests.py index 4f032526..7d8e78aa 100644 --- a/lib/pyld/documentloader/requests.py +++ b/lib/pyld/documentloader/requests.py @@ -64,6 +64,9 @@ def loader(url, options={}): headers.update(kwargs['headers']) del kwargs['headers'] session = options.get('session', requests) + if 'session' in kwargs: + session = kwargs['session'] + del kwargs['session'] response = session.get(url, headers=headers, **kwargs) content_type = response.headers.get('content-type')