Skip to content

Commit 0737a59

Browse files
committed
Make the order of the parameters determanistic
The URL parameters should be deterministic as the full URL is used as the key for caching. If the non-ordered dictionary is used the caching will miss even when a value has been stored.
1 parent ef4f2d0 commit 0737a59

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

prismic/connection.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ def get_json(url, params=None, access_token=None, cache=None, ttl=None, request_
4242
request_handler = get_using_requests
4343
if access_token is not None:
4444
full_params["access_token"] = access_token
45-
full_url = url if len(full_params) == 0 else (url + "?" + urlparse.urlencode(full_params, doseq=1))
45+
sorted_params = OrderedDict(sorted(full_params.items(), key=lambda t: t[0]))
46+
full_url = url if len(full_params) == 0 else (url + "?" + urlparse.urlencode(sorted_params, doseq=1))
4647
cached = cache.get(full_url)
4748
if cached is not None:
4849
return cached

0 commit comments

Comments
 (0)