meilisearch-python-sdk 5.0.2__tar.gz → 5.1.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 (104) hide show
  1. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/PKG-INFO +1 -1
  2. meilisearch_python_sdk-5.1.0/codecov.yml +6 -0
  3. meilisearch_python_sdk-5.1.0/meilisearch_python_sdk/_version.py +1 -0
  4. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/index.py +38 -0
  5. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/pyproject.toml +1 -2
  6. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_async_index.py +9 -0
  7. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_index.py +9 -0
  8. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/uv.lock +167 -189
  9. meilisearch_python_sdk-5.0.2/codecov.yml +0 -6
  10. meilisearch_python_sdk-5.0.2/meilisearch_python_sdk/_version.py +0 -1
  11. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.github/FUNDING.yml +0 -0
  12. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.github/release-draft-template.yaml +0 -0
  13. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.github/renovate.json5 +0 -0
  14. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.github/workflows/docs_publish.yml +0 -0
  15. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.github/workflows/nightly_testing.yml +0 -0
  16. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.github/workflows/pypi_publish.yml +0 -0
  17. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.github/workflows/release-drafter.yml +0 -0
  18. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.github/workflows/testing.yml +0 -0
  19. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.gitignore +0 -0
  20. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/.pre-commit-config.yaml +0 -0
  21. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/CONTRIBUTING.md +0 -0
  22. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/LICENSE +0 -0
  23. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/README.md +0 -0
  24. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/assets/add_in_batches.png +0 -0
  25. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/assets/searches.png +0 -0
  26. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/datasets/small_movies.json +0 -0
  27. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docker-compose.https.yml +0 -0
  28. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docker-compose.yml +0 -0
  29. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/.nojekyll +0 -0
  30. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/CNAME +0 -0
  31. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/async_client_api.md +0 -0
  32. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/async_index_api.md +0 -0
  33. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/client_api.md +0 -0
  34. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/css/custom.css +0 -0
  35. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/decorators_api.md +0 -0
  36. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/index.md +0 -0
  37. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/index_api.md +0 -0
  38. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/js/umami.js +0 -0
  39. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/json_handler.md +0 -0
  40. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/overrides/partials/footer.html +0 -0
  41. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/plugins.md +0 -0
  42. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/docs/pydantic.md +0 -0
  43. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/.gitignore +0 -0
  44. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/README.md +0 -0
  45. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/__init__.py +0 -0
  46. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/add_documents_decorator.py +0 -0
  47. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/add_documents_in_batches.py +0 -0
  48. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/async_add_documents_decorator.py +0 -0
  49. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/async_add_documents_in_batches.py +0 -0
  50. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/async_documents_and_search_results.py +0 -0
  51. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/async_search_tracker.py +0 -0
  52. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/async_update_settings.py +0 -0
  53. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/documents_and_search_results.py +0 -0
  54. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/fastapi_example.py +0 -0
  55. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/orjson_example.py +0 -0
  56. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/pyproject.toml +0 -0
  57. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/requirements.txt +0 -0
  58. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/search_tracker.py +0 -0
  59. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/tests/__init__.py +0 -0
  60. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/tests/conftest.py +0 -0
  61. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/tests/test_async_examples.py +0 -0
  62. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/tests/test_examples.py +0 -0
  63. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/ujson_example.py +0 -0
  64. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/examples/update_settings.py +0 -0
  65. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/justfile +0 -0
  66. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/__init__.py +0 -0
  67. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/_batch.py +0 -0
  68. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/_client.py +0 -0
  69. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/_http_requests.py +0 -0
  70. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/_task.py +0 -0
  71. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/_utils.py +0 -0
  72. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/decorators.py +0 -0
  73. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/errors.py +0 -0
  74. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/json_handler.py +0 -0
  75. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/__init__.py +0 -0
  76. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/batch.py +0 -0
  77. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/client.py +0 -0
  78. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/documents.py +0 -0
  79. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/health.py +0 -0
  80. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/index.py +0 -0
  81. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/search.py +0 -0
  82. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/settings.py +0 -0
  83. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/task.py +0 -0
  84. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/version.py +0 -0
  85. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/models/webhook.py +0 -0
  86. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/plugins.py +0 -0
  87. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/py.typed +0 -0
  88. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/meilisearch_python_sdk/types.py +0 -0
  89. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/mkdocs.yaml +0 -0
  90. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/__init__.py +0 -0
  91. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/conftest.py +0 -0
  92. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_async_client.py +0 -0
  93. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_async_documents.py +0 -0
  94. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_async_index_plugins.py +0 -0
  95. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_async_search.py +0 -0
  96. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_client.py +0 -0
  97. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_decorators.py +0 -0
  98. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_documents.py +0 -0
  99. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_errors.py +0 -0
  100. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_index_plugins.py +0 -0
  101. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_search.py +0 -0
  102. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_settings_models.py +0 -0
  103. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_utils.py +0 -0
  104. {meilisearch_python_sdk-5.0.2 → meilisearch_python_sdk-5.1.0}/tests/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meilisearch-python-sdk
3
- Version: 5.0.2
3
+ Version: 5.1.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,6 @@
1
+ codecov:
2
+ notify:
3
+ after_n_builds: 15
4
+
5
+ comment:
6
+ after_n_builds: 15
@@ -0,0 +1 @@
1
+ VERSION = "5.1.0"
@@ -470,6 +470,25 @@ class AsyncIndex(_BaseIndex):
470
470
 
471
471
  return plugins
472
472
 
473
+ async def compact(self) -> TaskInfo:
474
+ """Appends a new task to the queue to compact the database.
475
+
476
+ This defragments the LMDB database potentially speeds up indexing and searching.
477
+ NOTE: This is only available in Meilisearch v1.23.0+
478
+
479
+ Raises:
480
+ MeilisearchCommunicationError: If there was an error communicating with the server.
481
+ MeilisearchApiError: If the Meilisearch API returned an error.
482
+
483
+ Examples
484
+ >>> from meilisearch_python_sdk import AsyncClient
485
+ >>> async with AsyncClient("http://localhost.com", "masterKey") as client:
486
+ >>> index = client.index("movies")
487
+ >>> index.compact()
488
+ """
489
+ response = await self._http_requests.post(f"{self._base_url_with_uid}/compact")
490
+ return TaskInfo(**response.json())
491
+
473
492
  async def delete(self) -> TaskInfo:
474
493
  """Deletes the index.
475
494
 
@@ -4921,6 +4940,25 @@ class Index(_BaseIndex):
4921
4940
 
4922
4941
  return plugins
4923
4942
 
4943
+ def compact(self) -> TaskInfo:
4944
+ """Appends a new task to the queue to compact the database.
4945
+
4946
+ This defragments the LMDB database potentially speeds up indexing and searching.
4947
+ NOTE: This is only available in Meilisearch v1.23.0+
4948
+
4949
+ Raises:
4950
+ MeilisearchCommunicationError: If there was an error communicating with the server.
4951
+ MeilisearchApiError: If the Meilisearch API returned an error.
4952
+
4953
+ Examples
4954
+ >>> from meilisearch_python_sdk import Client
4955
+ >>> client = Client("http://localhost.com", "masterKey")
4956
+ >>> index = client.index("movies")
4957
+ >>> index.compact()
4958
+ """
4959
+ response = self._http_requests.post(f"{self._base_url_with_uid}/compact")
4960
+ return TaskInfo(**response.json())
4961
+
4924
4962
  def delete(self) -> TaskInfo:
4925
4963
  """Deletes the index.
4926
4964
 
@@ -48,10 +48,9 @@ dev = [
48
48
  "pytest-asyncio==1.2.0",
49
49
  "pytest-xdist==3.8.0",
50
50
  "ruff==0.14.0",
51
- "types-aiofiles==24.1.0.20250822",
51
+ "types-aiofiles==25.1.0.20251011",
52
52
  "typing-extensions==4.15.0",
53
53
  "types-ujson==5.10.0.20250822",
54
- "rich==14.1.0",
55
54
  ]
56
55
 
57
56
  [tool.hatch.version]
@@ -1022,3 +1022,12 @@ async def test_reset_prefix_search_opt_out(async_empty_index):
1022
1022
  result = await index.get_settings()
1023
1023
 
1024
1024
  assert result.prefix_search == "indexingTime"
1025
+
1026
+
1027
+ async def test_compact(async_client, async_index_with_documents):
1028
+ index = await async_index_with_documents()
1029
+ task = await index.compact()
1030
+ await async_client.wait_for_task(task.task_uid)
1031
+ result = await async_client.get_task(task_id=task.task_uid)
1032
+
1033
+ assert result.status == "succeeded"
@@ -1023,3 +1023,12 @@ def test_process_search_parameters_no_media():
1023
1023
  result = _process_search_parameters()
1024
1024
 
1025
1025
  assert "media" not in result.keys()
1026
+
1027
+
1028
+ def test_compact(client, index_with_documents):
1029
+ index = index_with_documents()
1030
+ task = index.compact()
1031
+ client.wait_for_task(task.task_uid)
1032
+ result = client.get_task(task_id=task.task_uid)
1033
+
1034
+ assert result.status == "succeeded"