Skip to content

Commit 1038e4d

Browse files
Merge #1045
1045: Support boolean parameters in `Index.get_documents` r=sanders41 a=martinnj # Pull Request ## Related issue Fixes #1044 ## What does this PR do? - Remove deprecated `GET` in `Index.get_documents`. This solves the urlparse encoding problem described in the issues. - Fix a syntax (Meili API syntax) error in `tests/index/test_index_document_meilisearch.py` ## Request for comments I introduced the `serialize_body` variable because it made my life easier when figuring things out. I'm very much open for suggestions on how to handle that case. Co-authored-by: Martin J <[email protected]>
2 parents 607bbc7 + d1d617f commit 1038e4d

File tree

4 files changed

+10
-14
lines changed

4 files changed

+10
-14
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ index.search(
230230

231231
## 🤖 Compatibility with Meilisearch
232232

233-
This package guarantees compatibility with [version v1.x of Meilisearch](https://github.com/meilisearch/meilisearch/releases/latest), but some features may not be present. Please check the [issues](https://github.com/meilisearch/meilisearch-python/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22+label%3Aenhancement) for more info.
233+
This package guarantees compatibility with [version v1.2 and above of Meilisearch](https://github.com/meilisearch/meilisearch/releases/latest), but some features may not be present. Please check the [issues](https://github.com/meilisearch/meilisearch-python/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22+label%3Aenhancement) for more info.
234234

235235
## 💡 Learn more
236236

meilisearch/_httprequests.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,12 @@ def send_request(
6060
data=body,
6161
)
6262
else:
63-
data = json.dumps(body, cls=serializer) if body else "" if body == "" else "null"
63+
serialize_body = isinstance(body, dict) or body
64+
data = (
65+
json.dumps(body, cls=serializer)
66+
if serialize_body
67+
else "" if body == "" else "null"
68+
)
6469

6570
request = http_method(
6671
request_path, timeout=self.config.timeout, headers=self.headers, data=data

meilisearch/index.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -397,17 +397,8 @@ def get_documents(
397397
MeilisearchApiError
398398
An error containing details about why Meilisearch can't process your request. Meilisearch error codes are described here: https://www.meilisearch.com/docs/reference/errors/error_codes#meilisearch-errors
399399
"""
400-
if parameters is None or parameters.get("filter") is None:
401-
if parameters is None:
402-
parameters = {}
403-
elif "fields" in parameters and isinstance(parameters["fields"], list):
404-
parameters["fields"] = ",".join(parameters["fields"])
405-
406-
response = self.http.get(
407-
f"{self.config.paths.index}/{self.uid}/{self.config.paths.document}?{parse.urlencode(parameters)}"
408-
)
409-
return DocumentsResults(response)
410-
400+
if parameters is None:
401+
parameters = {}
411402
response = self.http.post(
412403
f"{self.config.paths.index}/{self.uid}/{self.config.paths.document}/fetch",
413404
body=parameters,

tests/index/test_index_document_meilisearch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ def test_get_documents_offset_optional_params(index_with_documents):
224224
response = index.get_documents()
225225
assert isinstance(response.results, list)
226226
assert len(response.results) == 20
227-
response_offset_limit = index.get_documents({"limit": 3, "offset": 1, "fields": "title"})
227+
response_offset_limit = index.get_documents({"limit": 3, "offset": 1, "fields": ["title"]})
228228
assert len(response_offset_limit.results) == 3
229229
assert hasattr(response_offset_limit.results[0], "title")
230230
assert response_offset_limit.results[0].title == response.results[1].title

0 commit comments

Comments
 (0)