meilisearch-python-sdk 4.3.0__tar.gz → 4.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of meilisearch-python-sdk might be problematic. Click here for more details.

Files changed (101) hide show
  1. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.github/workflows/testing.yml +1 -1
  2. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.pre-commit-config.yaml +1 -1
  3. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/PKG-INFO +1 -1
  4. meilisearch_python_sdk-4.4.0/meilisearch_python_sdk/_version.py +1 -0
  5. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/index.py +57 -6
  6. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/pyproject.toml +12 -12
  7. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_async_documents.py +22 -0
  8. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_documents.py +22 -0
  9. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/uv.lock +365 -411
  10. meilisearch_python_sdk-4.3.0/meilisearch_python_sdk/_version.py +0 -1
  11. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.github/FUNDING.yml +0 -0
  12. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.github/release-draft-template.yaml +0 -0
  13. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.github/renovate.json5 +0 -0
  14. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.github/workflows/docs_publish.yml +0 -0
  15. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.github/workflows/nightly_testing.yml +0 -0
  16. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.github/workflows/pypi_publish.yml +0 -0
  17. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.github/workflows/release-drafter.yml +0 -0
  18. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/.gitignore +0 -0
  19. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/CONTRIBUTING.md +0 -0
  20. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/LICENSE +0 -0
  21. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/README.md +0 -0
  22. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/assets/add_in_batches.png +0 -0
  23. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/assets/searches.png +0 -0
  24. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/benchmark/run_benchmark.py +0 -0
  25. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/codecov.yml +0 -0
  26. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/datasets/small_movies.json +0 -0
  27. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docker-compose.https.yml +0 -0
  28. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docker-compose.yml +0 -0
  29. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/.nojekyll +0 -0
  30. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/CNAME +0 -0
  31. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/async_client_api.md +0 -0
  32. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/async_index_api.md +0 -0
  33. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/client_api.md +0 -0
  34. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/css/custom.css +0 -0
  35. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/decorators_api.md +0 -0
  36. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/index.md +0 -0
  37. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/index_api.md +0 -0
  38. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/js/umami.js +0 -0
  39. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/json_handler.md +0 -0
  40. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/plugins.md +0 -0
  41. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/docs/pydantic.md +0 -0
  42. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/.gitignore +0 -0
  43. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/README.md +0 -0
  44. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/__init__.py +0 -0
  45. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/add_documents_decorator.py +0 -0
  46. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/add_documents_in_batches.py +0 -0
  47. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/async_add_documents_decorator.py +0 -0
  48. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/async_add_documents_in_batches.py +0 -0
  49. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/async_documents_and_search_results.py +0 -0
  50. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/async_search_tracker.py +0 -0
  51. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/async_update_settings.py +0 -0
  52. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/documents_and_search_results.py +0 -0
  53. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/fastapi_example.py +0 -0
  54. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/orjson_example.py +0 -0
  55. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/pyproject.toml +0 -0
  56. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/requirements.txt +0 -0
  57. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/search_tracker.py +0 -0
  58. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/tests/__init__.py +0 -0
  59. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/tests/conftest.py +0 -0
  60. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/tests/test_async_examples.py +0 -0
  61. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/tests/test_examples.py +0 -0
  62. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/ujson_example.py +0 -0
  63. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/examples/update_settings.py +0 -0
  64. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/justfile +0 -0
  65. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/__init__.py +0 -0
  66. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/_batch.py +0 -0
  67. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/_client.py +0 -0
  68. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/_http_requests.py +0 -0
  69. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/_task.py +0 -0
  70. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/_utils.py +0 -0
  71. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/decorators.py +0 -0
  72. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/errors.py +0 -0
  73. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/json_handler.py +0 -0
  74. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/__init__.py +0 -0
  75. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/batch.py +0 -0
  76. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/client.py +0 -0
  77. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/documents.py +0 -0
  78. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/health.py +0 -0
  79. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/index.py +0 -0
  80. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/search.py +0 -0
  81. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/settings.py +0 -0
  82. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/task.py +0 -0
  83. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/models/version.py +0 -0
  84. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/plugins.py +0 -0
  85. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/py.typed +0 -0
  86. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/meilisearch_python_sdk/types.py +0 -0
  87. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/mkdocs.yaml +0 -0
  88. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/__init__.py +0 -0
  89. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/conftest.py +0 -0
  90. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_async_client.py +0 -0
  91. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_async_index.py +0 -0
  92. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_async_index_plugins.py +0 -0
  93. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_async_search.py +0 -0
  94. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_client.py +0 -0
  95. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_decorators.py +0 -0
  96. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_errors.py +0 -0
  97. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_index.py +0 -0
  98. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_index_plugins.py +0 -0
  99. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_search.py +0 -0
  100. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_utils.py +0 -0
  101. {meilisearch_python_sdk-4.3.0 → meilisearch_python_sdk-4.4.0}/tests/test_version.py +0 -0
@@ -193,7 +193,7 @@ jobs:
193
193
  - name: Set up Python
194
194
  uses: actions/setup-python@v5
195
195
  with:
196
- python-version: "3.11"
196
+ python-version: "3.13"
197
197
  - name: Install Dependencies
198
198
  run: just install
199
199
  - name: Test Docs Build
@@ -14,7 +14,7 @@ repos:
14
14
  - id: mypy
15
15
  additional_dependencies: [pydantic, orjson, types-aiofiles, types-ujson]
16
16
  - repo: https://github.com/astral-sh/ruff-pre-commit
17
- rev: v0.9.6
17
+ rev: v0.11.4
18
18
  hooks:
19
19
  - id: ruff
20
20
  args: [--fix, --exit-non-zero-on-fix]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meilisearch-python-sdk
3
- Version: 4.3.0
3
+ Version: 4.4.0
4
4
  Summary: A Python client providing both async and sync support for the Meilisearch API
5
5
  Project-URL: repository, https://github.com/sanders41/meilisearch-python-sdk
6
6
  Project-URL: homepage, https://github.com/sanders41/meilisearch-python-sdk
@@ -0,0 +1 @@
1
+ VERSION = "4.4.0"
@@ -1288,12 +1288,22 @@ class AsyncIndex(_BaseIndex):
1288
1288
 
1289
1289
  return SimilarSearchResults[self.hits_type](**response.json()) # type: ignore[name-defined]
1290
1290
 
1291
- async def get_document(self, document_id: str) -> JsonDict:
1291
+ async def get_document(
1292
+ self,
1293
+ document_id: str,
1294
+ *,
1295
+ fields: list[str] | None = None,
1296
+ retrieve_vectors: bool = False,
1297
+ ) -> JsonDict:
1292
1298
  """Get one document with given document identifier.
1293
1299
 
1294
1300
  Args:
1295
1301
  document_id: Unique identifier of the document.
1296
-
1302
+ fields: Document attributes to show. If this value is None then all
1303
+ attributes are retrieved. Defaults to None.
1304
+ retrieve_vectors: If set to True the embedding vectors will be returned with the document.
1305
+ Defaults to False. Note: This parameter can only be
1306
+ used with Meilisearch >= v1.13.0
1297
1307
  Returns:
1298
1308
  The document information
1299
1309
 
@@ -1307,7 +1317,16 @@ class AsyncIndex(_BaseIndex):
1307
1317
  >>> index = client.index("movies")
1308
1318
  >>> document = await index.get_document("1234")
1309
1319
  """
1310
- response = await self._http_requests.get(f"{self._documents_url}/{document_id}")
1320
+ parameters: JsonDict = {}
1321
+
1322
+ if fields:
1323
+ parameters["fields"] = ",".join(fields)
1324
+ if retrieve_vectors:
1325
+ parameters["retrieveVectors"] = "true"
1326
+
1327
+ url = _build_encoded_url(f"{self._documents_url}/{document_id}", parameters)
1328
+
1329
+ response = await self._http_requests.get(url)
1311
1330
 
1312
1331
  return response.json()
1313
1332
 
@@ -1318,6 +1337,7 @@ class AsyncIndex(_BaseIndex):
1318
1337
  limit: int = 20,
1319
1338
  fields: list[str] | None = None,
1320
1339
  filter: Filter | None = None,
1340
+ retrieve_vectors: bool = False,
1321
1341
  ) -> DocumentsInfo:
1322
1342
  """Get a batch documents from the index.
1323
1343
 
@@ -1328,6 +1348,9 @@ class AsyncIndex(_BaseIndex):
1328
1348
  attributes are retrieved. Defaults to None.
1329
1349
  filter: Filter value information. Defaults to None. Note: This parameter can only be
1330
1350
  used with Meilisearch >= v1.2.0
1351
+ retrieve_vectors: If set to True the vectors will be returned with each document.
1352
+ Defaults to False. Note: This parameter can only be
1353
+ used with Meilisearch >= v1.13.0
1331
1354
 
1332
1355
  Returns:
1333
1356
  Documents info.
@@ -1348,6 +1371,9 @@ class AsyncIndex(_BaseIndex):
1348
1371
  "limit": limit,
1349
1372
  }
1350
1373
 
1374
+ if retrieve_vectors:
1375
+ parameters["retrieveVectors"] = "true"
1376
+
1351
1377
  if not filter:
1352
1378
  if fields:
1353
1379
  parameters["fields"] = ",".join(fields)
@@ -5470,12 +5496,22 @@ class Index(_BaseIndex):
5470
5496
 
5471
5497
  return SimilarSearchResults[self.hits_type](**response.json()) # type: ignore[name-defined]
5472
5498
 
5473
- def get_document(self, document_id: str) -> JsonDict:
5499
+ def get_document(
5500
+ self,
5501
+ document_id: str,
5502
+ *,
5503
+ fields: list[str] | None = None,
5504
+ retrieve_vectors: bool = False,
5505
+ ) -> JsonDict:
5474
5506
  """Get one document with given document identifier.
5475
5507
 
5476
5508
  Args:
5477
5509
  document_id: Unique identifier of the document.
5478
-
5510
+ fields: Document attributes to show. If this value is None then all
5511
+ attributes are retrieved. Defaults to None.
5512
+ retrieve_vectors: If set to True the embedding vectors will be returned with the document.
5513
+ Defaults to False. Note: This parameter can only be
5514
+ used with Meilisearch >= v1.13.0
5479
5515
  Returns:
5480
5516
  The document information
5481
5517
 
@@ -5489,8 +5525,16 @@ class Index(_BaseIndex):
5489
5525
  >>> index = client.index("movies")
5490
5526
  >>> document = index.get_document("1234")
5491
5527
  """
5492
- response = self._http_requests.get(f"{self._documents_url}/{document_id}")
5528
+ parameters: JsonDict = {}
5529
+
5530
+ if fields:
5531
+ parameters["fields"] = ",".join(fields)
5532
+ if retrieve_vectors:
5533
+ parameters["retrieveVectors"] = "true"
5493
5534
 
5535
+ url = _build_encoded_url(f"{self._documents_url}/{document_id}", parameters)
5536
+
5537
+ response = self._http_requests.get(url)
5494
5538
  return response.json()
5495
5539
 
5496
5540
  def get_documents(
@@ -5500,6 +5544,7 @@ class Index(_BaseIndex):
5500
5544
  limit: int = 20,
5501
5545
  fields: list[str] | None = None,
5502
5546
  filter: Filter | None = None,
5547
+ retrieve_vectors: bool = False,
5503
5548
  ) -> DocumentsInfo:
5504
5549
  """Get a batch documents from the index.
5505
5550
 
@@ -5510,6 +5555,9 @@ class Index(_BaseIndex):
5510
5555
  attributes are retrieved. Defaults to None.
5511
5556
  filter: Filter value information. Defaults to None. Note: This parameter can only be
5512
5557
  used with Meilisearch >= v1.2.0
5558
+ retrieve_vectors: If set to True the vectors will be returned with each document.
5559
+ Defaults to False. Note: This parameter can only be
5560
+ used with Meilisearch >= v1.13.0
5513
5561
 
5514
5562
  Returns:
5515
5563
  Documents info.
@@ -5530,6 +5578,9 @@ class Index(_BaseIndex):
5530
5578
  "limit": limit,
5531
5579
  }
5532
5580
 
5581
+ if retrieve_vectors:
5582
+ parameters["retrieveVectors"] = "true"
5583
+
5533
5584
  if not filter:
5534
5585
  if fields:
5535
5586
  parameters["fields"] = ",".join(fields)
@@ -41,20 +41,20 @@ all = ["orjson", "ujson"]
41
41
  [dependency-groups]
42
42
  dev = [
43
43
  "mkdocs==1.6.1",
44
- "mkdocs-material==9.6.5",
45
- "mkdocstrings[python]==0.28.1",
44
+ "mkdocs-material==9.6.11",
45
+ "mkdocstrings[python]==0.29.1",
46
46
  "mypy[faster-cache]==1.15.0",
47
- "pre-commit==4.1.0",
48
- "pytest==8.3.4",
49
- "pytest-cov==6.0.0",
50
- "pytest-asyncio==0.25.3",
47
+ "pre-commit==4.2.0",
48
+ "pytest==8.3.5",
49
+ "pytest-cov==6.1.1",
50
+ "pytest-asyncio==0.26.0",
51
51
  "pytest-xdist==3.6.1",
52
- "ruff==0.9.7",
53
- "types-aiofiles==24.1.0.20241221",
54
- "typing-extensions==4.12.2",
55
- "types-ujson==5.10.0.20240515",
56
- "meilisearch==0.34.0",
57
- "rich==13.9.4",
52
+ "ruff==0.11.4",
53
+ "types-aiofiles==24.1.0.20250326",
54
+ "typing-extensions==4.13.1",
55
+ "types-ujson==5.10.0.20250326",
56
+ "meilisearch==0.34.1",
57
+ "rich==14.0.0",
58
58
  ]
59
59
 
60
60
  [tool.hatch.version]
@@ -706,6 +706,20 @@ async def test_get_document_inexistent(async_empty_index):
706
706
  await index.get_document("123")
707
707
 
708
708
 
709
+ async def test_get_document_with_fields(async_index_with_documents):
710
+ index = await async_index_with_documents()
711
+ response = await index.get_document("500682", fields=["title", "overview"])
712
+ assert len(response.keys()) == 2
713
+ assert "title" in response.keys()
714
+ assert "overview" in response.keys()
715
+
716
+
717
+ async def test_get_document_with_vectors(async_index_with_documents):
718
+ index = await async_index_with_documents()
719
+ response = await index.get_document("500682", retrieve_vectors=True)
720
+ assert "_vectors" in response.keys()
721
+
722
+
709
723
  async def test_get_documents_populated(async_index_with_documents):
710
724
  index = await async_index_with_documents()
711
725
  response = await index.get_documents()
@@ -744,6 +758,14 @@ async def test_get_documents_filter_with_fields(async_index_with_documents):
744
758
  assert next(iter(genres)) == "action"
745
759
 
746
760
 
761
+ async def test_get_documents_with_vectors(async_index_with_documents):
762
+ index = await async_index_with_documents()
763
+ response = await index.update_filterable_attributes(["genre"])
764
+ await async_wait_for_task(index.http_client, response.task_uid)
765
+ response = await index.get_documents(retrieve_vectors=True)
766
+ assert all("_vectors" in x.keys() for x in response.results)
767
+
768
+
747
769
  @pytest.mark.parametrize("compress", (True, False))
748
770
  async def test_update_documents(compress, async_index_with_documents, small_movies):
749
771
  index = await async_index_with_documents()
@@ -626,6 +626,20 @@ def test_get_document_inexistent(empty_index):
626
626
  index.get_document("123")
627
627
 
628
628
 
629
+ def test_get_document_with_fields(index_with_documents):
630
+ index = index_with_documents()
631
+ response = index.get_document("500682", fields=["title", "overview"])
632
+ assert len(response.keys()) == 2
633
+ assert "title" in response.keys()
634
+ assert "overview" in response.keys()
635
+
636
+
637
+ def test_get_document_with_vectors(index_with_documents):
638
+ index = index_with_documents()
639
+ response = index.get_document("500682", retrieve_vectors=True)
640
+ assert "_vectors" in response.keys()
641
+
642
+
629
643
  def test_get_documents_populated(index_with_documents):
630
644
  index = index_with_documents()
631
645
  response = index.get_documents()
@@ -652,6 +666,14 @@ def test_get_documents_filter(index_with_documents):
652
666
  assert next(iter(genres)) == "action"
653
667
 
654
668
 
669
+ def test_get_documents_with_vectors(index_with_documents):
670
+ index = index_with_documents()
671
+ response = index.update_filterable_attributes(["genre"])
672
+ wait_for_task(index.http_client, response.task_uid)
673
+ response = index.get_documents(retrieve_vectors=True)
674
+ assert all("_vectors" in x.keys() for x in response.results)
675
+
676
+
655
677
  def test_get_documents_filter_with_fields(index_with_documents):
656
678
  index = index_with_documents()
657
679
  response = index.update_filterable_attributes(["genre"])