meilisearch-python-sdk 7.2.0__tar.gz → 7.2.1__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.
Files changed (110) hide show
  1. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/PKG-INFO +1 -1
  2. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/_client/_common.py +3 -0
  3. meilisearch_python_sdk-7.2.1/meilisearch_python_sdk/_version.py +1 -0
  4. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/search.py +5 -0
  5. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_async_search.py +25 -0
  6. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_search.py +25 -0
  7. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/uv.lock +6 -6
  8. meilisearch_python_sdk-7.2.0/meilisearch_python_sdk/_version.py +0 -1
  9. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.github/FUNDING.yml +0 -0
  10. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.github/release-draft-template.yaml +0 -0
  11. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.github/renovate.json5 +0 -0
  12. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.github/workflows/docs_publish.yml +0 -0
  13. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.github/workflows/nightly_testing.yml +0 -0
  14. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.github/workflows/pypi_publish.yml +0 -0
  15. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.github/workflows/release-drafter.yml +0 -0
  16. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.github/workflows/testing.yml +0 -0
  17. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.gitignore +0 -0
  18. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/.pre-commit-config.yaml +0 -0
  19. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/CONTRIBUTING.md +0 -0
  20. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/LICENSE +0 -0
  21. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/README.md +0 -0
  22. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/assets/add_in_batches.png +0 -0
  23. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/assets/searches.png +0 -0
  24. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/codecov.yml +0 -0
  25. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/datasets/small_movies.json +0 -0
  26. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docker-compose.https.yml +0 -0
  27. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docker-compose.yml +0 -0
  28. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/.nojekyll +0 -0
  29. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/CNAME +0 -0
  30. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/async_client_api.md +0 -0
  31. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/async_index_api.md +0 -0
  32. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/client_api.md +0 -0
  33. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/css/custom.css +0 -0
  34. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/decorators_api.md +0 -0
  35. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/index.md +0 -0
  36. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/index_api.md +0 -0
  37. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/js/umami.js +0 -0
  38. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/json_handler.md +0 -0
  39. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/overrides/partials/footer.html +0 -0
  40. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/plugins.md +0 -0
  41. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/docs/pydantic.md +0 -0
  42. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/.gitignore +0 -0
  43. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/README.md +0 -0
  44. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/__init__.py +0 -0
  45. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/add_documents_decorator.py +0 -0
  46. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/add_documents_in_batches.py +0 -0
  47. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/async_add_documents_decorator.py +0 -0
  48. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/async_add_documents_in_batches.py +0 -0
  49. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/async_documents_and_search_results.py +0 -0
  50. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/async_search_tracker.py +0 -0
  51. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/async_update_settings.py +0 -0
  52. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/documents_and_search_results.py +0 -0
  53. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/fastapi_example.py +0 -0
  54. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/orjson_example.py +0 -0
  55. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/pyproject.toml +0 -0
  56. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/requirements.txt +0 -0
  57. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/search_tracker.py +0 -0
  58. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/tests/__init__.py +0 -0
  59. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/tests/conftest.py +0 -0
  60. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/tests/test_async_examples.py +0 -0
  61. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/tests/test_examples.py +0 -0
  62. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/examples/update_settings.py +0 -0
  63. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/justfile +0 -0
  64. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/__init__.py +0 -0
  65. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/_batch.py +0 -0
  66. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/_client/__init__.py +0 -0
  67. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/_client/_async_client.py +0 -0
  68. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/_client/_base_client.py +0 -0
  69. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/_client/_client.py +0 -0
  70. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/_http_requests.py +0 -0
  71. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/_task.py +0 -0
  72. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/_utils.py +0 -0
  73. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/decorators.py +0 -0
  74. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/errors.py +0 -0
  75. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/index/__init__.py +0 -0
  76. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/index/_common.py +0 -0
  77. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/index/async_index.py +0 -0
  78. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/index/index.py +0 -0
  79. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/json_handler.py +0 -0
  80. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/__init__.py +0 -0
  81. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/batch.py +0 -0
  82. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/client.py +0 -0
  83. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/documents.py +0 -0
  84. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/health.py +0 -0
  85. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/index.py +0 -0
  86. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/settings.py +0 -0
  87. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/task.py +0 -0
  88. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/version.py +0 -0
  89. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/models/webhook.py +0 -0
  90. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/plugins.py +0 -0
  91. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/py.typed +0 -0
  92. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/meilisearch_python_sdk/types.py +0 -0
  93. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/mkdocs.yaml +0 -0
  94. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/pyproject.toml +0 -0
  95. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/__init__.py +0 -0
  96. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/conftest.py +0 -0
  97. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_async_client.py +0 -0
  98. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_async_documents.py +0 -0
  99. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_async_index.py +0 -0
  100. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_async_index_plugins.py +0 -0
  101. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_client.py +0 -0
  102. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_decorators.py +0 -0
  103. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_documents.py +0 -0
  104. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_errors.py +0 -0
  105. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_http_requests.py +0 -0
  106. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_index.py +0 -0
  107. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_index_plugins.py +0 -0
  108. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_settings_models.py +0 -0
  109. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_utils.py +0 -0
  110. {meilisearch_python_sdk-7.2.0 → meilisearch_python_sdk-7.2.1}/tests/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meilisearch-python-sdk
3
- Version: 7.2.0
3
+ Version: 7.2.1
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
@@ -25,6 +25,9 @@ def build_multi_search_payload(
25
25
  for query in queries:
26
26
  q = query.model_dump(by_alias=True)
27
27
 
28
+ if query.federation_options is None:
29
+ del q["federationOptions"]
30
+
28
31
  if query.retrieve_vectors is None:
29
32
  del q["retrieveVectors"]
30
33
 
@@ -0,0 +1 @@
1
+ VERSION = "7.2.1"
@@ -42,9 +42,14 @@ class FederationMerged(Federation):
42
42
  merge_facets: MergeFacets | None
43
43
 
44
44
 
45
+ class FederationOptions(CamelBase):
46
+ weight: float
47
+
48
+
45
49
  class SearchParams(CamelBase):
46
50
  index_uid: str
47
51
  query: str | None = Field(None, alias="q")
52
+ federation_options: FederationOptions | None = None
48
53
  offset: int = 0
49
54
  limit: int = 20
50
55
  filter: Filter | None = None
@@ -12,6 +12,7 @@ from meilisearch_python_sdk.errors import MeilisearchApiError, MeilisearchError
12
12
  from meilisearch_python_sdk.models.search import (
13
13
  Federation,
14
14
  FederationMerged,
15
+ FederationOptions,
15
16
  Hybrid,
16
17
  MergeFacets,
17
18
  SearchParams,
@@ -436,6 +437,30 @@ async def test_multi_search_federated_with_distinct(
436
437
  assert "_federation" in response.hits[0]
437
438
 
438
439
 
440
+ async def test_multi_search_with_federation_options(
441
+ async_client, async_index_with_documents, async_empty_index
442
+ ):
443
+ index1 = await async_index_with_documents()
444
+ index2 = await async_empty_index()
445
+ response = await async_client.multi_search(
446
+ [
447
+ SearchParams(
448
+ index_uid=index1.uid,
449
+ query="How to Train Your Dragon",
450
+ federation_options=FederationOptions(weight=0.9),
451
+ ),
452
+ SearchParams(
453
+ index_uid=index2.uid, query="", federation_options=FederationOptions(weight=0.1)
454
+ ),
455
+ ],
456
+ federation=Federation(),
457
+ )
458
+
459
+ assert response.hits[0]["id"] == "166428"
460
+ assert "_formatted" not in response.hits[0]
461
+ assert "_federation" in response.hits[0]
462
+
463
+
439
464
  async def test_multi_search_federated_facets_by_index(
440
465
  async_client, async_index_with_documents, async_empty_index
441
466
  ):
@@ -12,6 +12,7 @@ from meilisearch_python_sdk.errors import MeilisearchApiError, MeilisearchError
12
12
  from meilisearch_python_sdk.models.search import (
13
13
  Federation,
14
14
  FederationMerged,
15
+ FederationOptions,
15
16
  Hybrid,
16
17
  MergeFacets,
17
18
  SearchParams,
@@ -432,6 +433,30 @@ async def test_multi_search_federated_with_distinct(client, index_with_documents
432
433
  assert "_federation" in response.hits[0]
433
434
 
434
435
 
436
+ def test_multi_search_with_federation_options(client, index_with_documents, empty_index):
437
+ index1 = index_with_documents()
438
+ index2 = empty_index()
439
+ response = client.multi_search(
440
+ [
441
+ SearchParams(
442
+ index_uid=index1.uid,
443
+ query="How to Train Your Dragon",
444
+ federation_options=FederationOptions(weight=0.9),
445
+ ),
446
+ SearchParams(
447
+ index_uid=index2.uid,
448
+ query="",
449
+ federation_options=FederationOptions(weight=0.1),
450
+ ),
451
+ ],
452
+ federation=Federation(),
453
+ )
454
+
455
+ assert response.hits[0]["id"] == "166428"
456
+ assert "_formatted" not in response.hits[0]
457
+ assert "_federation" in response.hits[0]
458
+
459
+
435
460
  def test_multi_search_federated_merge_facets(
436
461
  client,
437
462
  index_with_documents,
@@ -375,11 +375,11 @@ wheels = [
375
375
 
376
376
  [[package]]
377
377
  name = "idna"
378
- version = "3.16"
378
+ version = "3.17"
379
379
  source = { registry = "https://pypi.org/simple" }
380
- sdist = { url = "https://files.pythonhosted.org/packages/1a/88/bcf9709822fe69d02c2a6a77956c98ce6ea8ca8767a9aadcedc7eb6a2390/idna-3.16.tar.gz", hash = "sha256:d7a6da03db833450fca25d2358ac9ff06cd624577a4aea3a596d5c0f77b8e03d", size = 203770, upload-time = "2026-05-22T00:16:18.781Z" }
380
+ sdist = { url = "https://files.pythonhosted.org/packages/b9/28/99c51f664567218d824af024c0251650fb27e4ca066df188dab0769c5b91/idna-3.17.tar.gz", hash = "sha256:5eb0cb53bc467c12eadcf6de83163ad8527cec9416f44b9b61b19caedad2b87f", size = 196048, upload-time = "2026-05-28T14:32:38.55Z" }
381
381
  wheels = [
382
- { url = "https://files.pythonhosted.org/packages/94/16/70255075a9859a0e3adb789b68ceb0e210dec03934245fd98d248226572f/idna-3.16-py3-none-any.whl", hash = "sha256:cc246e3a3f89580c3a951b5ad298ca4638078b2cdd4f115654332b5c26daded5", size = 74165, upload-time = "2026-05-22T00:16:16.698Z" },
382
+ { url = "https://files.pythonhosted.org/packages/de/a7/f76514cc40ad6234098ecdebda08732d75964776c51a42845b7da10649e2/idna-3.17-py3-none-any.whl", hash = "sha256:466e48829084efe2548012b855df21540b96f2e20e51bd124c851536556a592c", size = 65316, upload-time = "2026-05-28T14:32:37.035Z" },
383
383
  ]
384
384
 
385
385
  [[package]]
@@ -913,11 +913,11 @@ wheels = [
913
913
 
914
914
  [[package]]
915
915
  name = "platformdirs"
916
- version = "4.9.6"
916
+ version = "4.10.0"
917
917
  source = { registry = "https://pypi.org/simple" }
918
- sdist = { url = "https://files.pythonhosted.org/packages/9f/4a/0883b8e3802965322523f0b200ecf33d31f10991d0401162f4b23c698b42/platformdirs-4.9.6.tar.gz", hash = "sha256:3bfa75b0ad0db84096ae777218481852c0ebc6c727b3168c1b9e0118e458cf0a", size = 29400, upload-time = "2026-04-09T00:04:10.812Z" }
918
+ sdist = { url = "https://files.pythonhosted.org/packages/d7/47/e4501f49c178ae1d9f4a75073fda4204f52647993f075a9db4d14930e0c5/platformdirs-4.10.0.tar.gz", hash = "sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7", size = 31224, upload-time = "2026-05-28T03:32:53.587Z" }
919
919
  wheels = [
920
- { url = "https://files.pythonhosted.org/packages/75/a6/a0a304dc33b49145b21f4808d763822111e67d1c3a32b524a1baf947b6e1/platformdirs-4.9.6-py3-none-any.whl", hash = "sha256:e61adb1d5e5cb3441b4b7710bea7e4c12250ca49439228cc1021c00dcfac0917", size = 21348, upload-time = "2026-04-09T00:04:09.463Z" },
920
+ { url = "https://files.pythonhosted.org/packages/81/e6/cd9575ac904136b3cbf7aa7ee819ef86eedb7274e46f230e94ea4342e729/platformdirs-4.10.0-py3-none-any.whl", hash = "sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a", size = 22743, upload-time = "2026-05-28T03:32:52.175Z" },
921
921
  ]
922
922
 
923
923
  [[package]]
@@ -1 +0,0 @@
1
- VERSION = "7.2.0"