meilisearch-python-sdk 4.5.0__tar.gz → 4.6.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.5.0 → meilisearch_python_sdk-4.6.0}/.github/workflows/docs_publish.yml +1 -1
  2. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/.github/workflows/nightly_testing.yml +1 -1
  3. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/.github/workflows/pypi_publish.yml +1 -1
  4. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/.github/workflows/testing.yml +10 -10
  5. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/.pre-commit-config.yaml +1 -1
  6. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/PKG-INFO +1 -1
  7. meilisearch_python_sdk-4.6.0/meilisearch_python_sdk/_version.py +1 -0
  8. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/index.py +23 -3
  9. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/settings.py +18 -2
  10. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/pyproject.toml +2 -2
  11. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/conftest.py +2 -2
  12. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/uv.lock +758 -754
  13. meilisearch_python_sdk-4.5.0/meilisearch_python_sdk/_version.py +0 -1
  14. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/.github/FUNDING.yml +0 -0
  15. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/.github/release-draft-template.yaml +0 -0
  16. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/.github/renovate.json5 +0 -0
  17. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/.github/workflows/release-drafter.yml +0 -0
  18. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/.gitignore +0 -0
  19. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/CONTRIBUTING.md +0 -0
  20. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/LICENSE +0 -0
  21. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/README.md +0 -0
  22. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/assets/add_in_batches.png +0 -0
  23. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/assets/searches.png +0 -0
  24. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/benchmark/run_benchmark.py +0 -0
  25. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/codecov.yml +0 -0
  26. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/datasets/small_movies.json +0 -0
  27. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docker-compose.https.yml +0 -0
  28. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docker-compose.yml +0 -0
  29. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/.nojekyll +0 -0
  30. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/CNAME +0 -0
  31. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/async_client_api.md +0 -0
  32. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/async_index_api.md +0 -0
  33. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/client_api.md +0 -0
  34. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/css/custom.css +0 -0
  35. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/decorators_api.md +0 -0
  36. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/index.md +0 -0
  37. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/index_api.md +0 -0
  38. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/js/umami.js +0 -0
  39. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/json_handler.md +0 -0
  40. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/plugins.md +0 -0
  41. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/docs/pydantic.md +0 -0
  42. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/.gitignore +0 -0
  43. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/README.md +0 -0
  44. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/__init__.py +0 -0
  45. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/add_documents_decorator.py +0 -0
  46. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/add_documents_in_batches.py +0 -0
  47. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/async_add_documents_decorator.py +0 -0
  48. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/async_add_documents_in_batches.py +0 -0
  49. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/async_documents_and_search_results.py +0 -0
  50. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/async_search_tracker.py +0 -0
  51. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/async_update_settings.py +0 -0
  52. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/documents_and_search_results.py +0 -0
  53. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/fastapi_example.py +0 -0
  54. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/orjson_example.py +0 -0
  55. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/pyproject.toml +0 -0
  56. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/requirements.txt +0 -0
  57. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/search_tracker.py +0 -0
  58. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/tests/__init__.py +0 -0
  59. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/tests/conftest.py +0 -0
  60. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/tests/test_async_examples.py +0 -0
  61. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/tests/test_examples.py +0 -0
  62. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/ujson_example.py +0 -0
  63. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/examples/update_settings.py +0 -0
  64. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/justfile +0 -0
  65. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/__init__.py +0 -0
  66. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/_batch.py +0 -0
  67. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/_client.py +0 -0
  68. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/_http_requests.py +0 -0
  69. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/_task.py +0 -0
  70. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/_utils.py +0 -0
  71. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/decorators.py +0 -0
  72. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/errors.py +0 -0
  73. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/json_handler.py +0 -0
  74. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/__init__.py +0 -0
  75. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/batch.py +0 -0
  76. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/client.py +0 -0
  77. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/documents.py +0 -0
  78. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/health.py +0 -0
  79. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/index.py +0 -0
  80. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/search.py +0 -0
  81. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/task.py +0 -0
  82. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/models/version.py +0 -0
  83. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/plugins.py +0 -0
  84. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/py.typed +0 -0
  85. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/meilisearch_python_sdk/types.py +0 -0
  86. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/mkdocs.yaml +0 -0
  87. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/__init__.py +0 -0
  88. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_async_client.py +0 -0
  89. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_async_documents.py +0 -0
  90. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_async_index.py +0 -0
  91. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_async_index_plugins.py +0 -0
  92. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_async_search.py +0 -0
  93. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_client.py +0 -0
  94. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_decorators.py +0 -0
  95. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_documents.py +0 -0
  96. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_errors.py +0 -0
  97. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_index.py +0 -0
  98. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_index_plugins.py +0 -0
  99. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_search.py +0 -0
  100. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_utils.py +0 -0
  101. {meilisearch_python_sdk-4.5.0 → meilisearch_python_sdk-4.6.0}/tests/test_version.py +0 -0
@@ -12,7 +12,7 @@ jobs:
12
12
  steps:
13
13
  - uses: actions/checkout@v4
14
14
  - name: Install uv
15
- uses: astral-sh/setup-uv@v5
15
+ uses: astral-sh/setup-uv@v6
16
16
  with:
17
17
  enable-cache: true
18
18
  - name: Set up Python
@@ -14,7 +14,7 @@ jobs:
14
14
  steps:
15
15
  - uses: actions/checkout@v4
16
16
  - name: Install uv
17
- uses: astral-sh/setup-uv@v5
17
+ uses: astral-sh/setup-uv@v6
18
18
  with:
19
19
  enable-cache: true
20
20
  - name: install Just
@@ -14,7 +14,7 @@ jobs:
14
14
  steps:
15
15
  - uses: actions/checkout@v4
16
16
  - name: Install uv
17
- uses: astral-sh/setup-uv@v5
17
+ uses: astral-sh/setup-uv@v6
18
18
  with:
19
19
  enable-cache: true
20
20
  - name: Set up Python
@@ -15,7 +15,7 @@ jobs:
15
15
  - name: install Just
16
16
  uses: taiki-e/install-action@just
17
17
  - name: Install uv
18
- uses: astral-sh/setup-uv@v5
18
+ uses: astral-sh/setup-uv@v6
19
19
  with:
20
20
  enable-cache: true
21
21
  - name: Set up Python
@@ -38,7 +38,7 @@ jobs:
38
38
  - name: install Just
39
39
  uses: taiki-e/install-action@just
40
40
  - name: Install uv
41
- uses: astral-sh/setup-uv@v5
41
+ uses: astral-sh/setup-uv@v6
42
42
  with:
43
43
  enable-cache: true
44
44
  - name: Set up Python ${{ matrix.python-version }}
@@ -50,7 +50,7 @@ jobs:
50
50
  - name: Test with pytest
51
51
  run: just test-parallel-ci
52
52
  - name: Upload coverage
53
- uses: codecov/codecov-action@v5.4.0
53
+ uses: codecov/codecov-action@v5.4.2
54
54
  with:
55
55
  token: ${{ secrets.CODECOV_TOKEN }}
56
56
  fail_ci_if_error: true
@@ -66,7 +66,7 @@ jobs:
66
66
  - name: install Just
67
67
  uses: taiki-e/install-action@just
68
68
  - name: Install uv
69
- uses: astral-sh/setup-uv@v5
69
+ uses: astral-sh/setup-uv@v6
70
70
  with:
71
71
  enable-cache: true
72
72
  - name: Set up Python ${{ matrix.python-version }}
@@ -90,7 +90,7 @@ jobs:
90
90
  - name: Test with pytest
91
91
  run: just test-parallel-ci-http2
92
92
  - name: Upload coverage
93
- uses: codecov/codecov-action@v5.4.0
93
+ uses: codecov/codecov-action@v5.4.2
94
94
  with:
95
95
  token: ${{ secrets.CODECOV_TOKEN }}
96
96
  fail_ci_if_error: true
@@ -106,7 +106,7 @@ jobs:
106
106
  - name: install Just
107
107
  uses: taiki-e/install-action@just
108
108
  - name: Install uv
109
- uses: astral-sh/setup-uv@v5
109
+ uses: astral-sh/setup-uv@v6
110
110
  with:
111
111
  enable-cache: true
112
112
  - name: Set up Python ${{ matrix.python-version }}
@@ -118,7 +118,7 @@ jobs:
118
118
  - name: Test with pytest
119
119
  run: just test-no-parallel-ci
120
120
  - name: Upload coverage
121
- uses: codecov/codecov-action@v5.4.0
121
+ uses: codecov/codecov-action@v5.4.2
122
122
  with:
123
123
  token: ${{ secrets.CODECOV_TOKEN }}
124
124
  fail_ci_if_error: true
@@ -134,7 +134,7 @@ jobs:
134
134
  - name: install Just
135
135
  uses: taiki-e/install-action@just
136
136
  - name: Install uv
137
- uses: astral-sh/setup-uv@v5
137
+ uses: astral-sh/setup-uv@v6
138
138
  with:
139
139
  enable-cache: true
140
140
  - name: Set up Python ${{ matrix.python-version }}
@@ -158,7 +158,7 @@ jobs:
158
158
  - name: Test with pytest
159
159
  run: just test-no-parallel-ci-http2
160
160
  - name: Upload coverage
161
- uses: codecov/codecov-action@v5.4.0
161
+ uses: codecov/codecov-action@v5.4.2
162
162
  with:
163
163
  token: ${{ secrets.CODECOV_TOKEN }}
164
164
  fail_ci_if_error: true
@@ -187,7 +187,7 @@ jobs:
187
187
  - name: install Just
188
188
  uses: taiki-e/install-action@just
189
189
  - name: Install uv
190
- uses: astral-sh/setup-uv@v5
190
+ uses: astral-sh/setup-uv@v6
191
191
  with:
192
192
  enable-cache: true
193
193
  - name: Set up Python
@@ -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.11.5
17
+ rev: v0.11.7
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.5.0
3
+ Version: 4.6.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.6.0"
@@ -27,6 +27,7 @@ from meilisearch_python_sdk.models.search import (
27
27
  SimilarSearchResults,
28
28
  )
29
29
  from meilisearch_python_sdk.models.settings import (
30
+ CompositeEmbedder,
30
31
  Embedders,
31
32
  Faceting,
32
33
  FilterableAttributeFeatures,
@@ -8459,7 +8460,12 @@ def _embedder_json_to_embedders_model( # pragma: no cover
8459
8460
 
8460
8461
  embedders: dict[
8461
8462
  str,
8462
- OpenAiEmbedder | HuggingFaceEmbedder | OllamaEmbedder | RestEmbedder | UserProvidedEmbedder,
8463
+ OpenAiEmbedder
8464
+ | HuggingFaceEmbedder
8465
+ | OllamaEmbedder
8466
+ | RestEmbedder
8467
+ | UserProvidedEmbedder
8468
+ | CompositeEmbedder,
8463
8469
  ] = {}
8464
8470
  for k, v in embedder_json.items():
8465
8471
  if v.get("source") == "openAi":
@@ -8470,6 +8476,8 @@ def _embedder_json_to_embedders_model( # pragma: no cover
8470
8476
  embedders[k] = OllamaEmbedder(**v)
8471
8477
  elif v.get("source") == "rest":
8472
8478
  embedders[k] = RestEmbedder(**v)
8479
+ elif v.get("source") == "composit":
8480
+ embedders[k] = CompositeEmbedder(**v)
8473
8481
  else:
8474
8482
  embedders[k] = UserProvidedEmbedder(**v)
8475
8483
 
@@ -8482,7 +8490,12 @@ def _embedder_json_to_settings_model( # pragma: no cover
8482
8490
  ) -> (
8483
8491
  dict[
8484
8492
  str,
8485
- OpenAiEmbedder | HuggingFaceEmbedder | OllamaEmbedder | RestEmbedder | UserProvidedEmbedder,
8493
+ OpenAiEmbedder
8494
+ | HuggingFaceEmbedder
8495
+ | OllamaEmbedder
8496
+ | RestEmbedder
8497
+ | UserProvidedEmbedder
8498
+ | CompositeEmbedder,
8486
8499
  ]
8487
8500
  | None
8488
8501
  ):
@@ -8491,7 +8504,12 @@ def _embedder_json_to_settings_model( # pragma: no cover
8491
8504
 
8492
8505
  embedders: dict[
8493
8506
  str,
8494
- OpenAiEmbedder | HuggingFaceEmbedder | OllamaEmbedder | RestEmbedder | UserProvidedEmbedder,
8507
+ OpenAiEmbedder
8508
+ | HuggingFaceEmbedder
8509
+ | OllamaEmbedder
8510
+ | RestEmbedder
8511
+ | UserProvidedEmbedder
8512
+ | CompositeEmbedder,
8495
8513
  ] = {}
8496
8514
  for k, v in embedder_json.items():
8497
8515
  if v.get("source") == "openAi":
@@ -8502,6 +8520,8 @@ def _embedder_json_to_settings_model( # pragma: no cover
8502
8520
  embedders[k] = OllamaEmbedder(**v)
8503
8521
  elif v.get("source") == "rest":
8504
8522
  embedders[k] = RestEmbedder(**v)
8523
+ elif v.get("source") == "composit":
8524
+ embedders[k] = CompositeEmbedder(**v)
8505
8525
  else:
8506
8526
  embedders[k] = UserProvidedEmbedder(**v)
8507
8527
 
@@ -106,10 +106,25 @@ class UserProvidedEmbedder(CamelBase):
106
106
  binary_quantized: bool | None = None
107
107
 
108
108
 
109
+ class CompositeEmbedder(CamelBase):
110
+ source: str = "composite"
111
+ search_embedder: (
112
+ OpenAiEmbedder | HuggingFaceEmbedder | OllamaEmbedder | RestEmbedder | UserProvidedEmbedder
113
+ )
114
+ indexing_embedder: (
115
+ OpenAiEmbedder | HuggingFaceEmbedder | OllamaEmbedder | RestEmbedder | UserProvidedEmbedder
116
+ )
117
+
118
+
109
119
  class Embedders(CamelBase):
110
120
  embedders: dict[
111
121
  str,
112
- OpenAiEmbedder | HuggingFaceEmbedder | OllamaEmbedder | RestEmbedder | UserProvidedEmbedder,
122
+ OpenAiEmbedder
123
+ | HuggingFaceEmbedder
124
+ | OllamaEmbedder
125
+ | RestEmbedder
126
+ | UserProvidedEmbedder
127
+ | CompositeEmbedder,
113
128
  ]
114
129
 
115
130
 
@@ -162,7 +177,8 @@ class MeilisearchSettings(CamelBase):
162
177
  | HuggingFaceEmbedder
163
178
  | OllamaEmbedder
164
179
  | RestEmbedder
165
- | UserProvidedEmbedder,
180
+ | UserProvidedEmbedder
181
+ | CompositeEmbedder,
166
182
  ]
167
183
  | None
168
184
  ) = None # Optional[Embedders] = None
@@ -41,7 +41,7 @@ all = ["orjson", "ujson"]
41
41
  [dependency-groups]
42
42
  dev = [
43
43
  "mkdocs==1.6.1",
44
- "mkdocs-material==9.6.11",
44
+ "mkdocs-material==9.6.12",
45
45
  "mkdocstrings[python]==0.29.1",
46
46
  "mypy[faster-cache]==1.15.0",
47
47
  "pre-commit==4.2.0",
@@ -49,7 +49,7 @@ dev = [
49
49
  "pytest-cov==6.1.1",
50
50
  "pytest-asyncio==0.26.0",
51
51
  "pytest-xdist==3.6.1",
52
- "ruff==0.11.5",
52
+ "ruff==0.11.8",
53
53
  "types-aiofiles==24.1.0.20250326",
54
54
  "typing-extensions==4.13.2",
55
55
  "types-ujson==5.10.0.20250326",
@@ -301,7 +301,7 @@ async def enable_edit_by_function(base_url, ssl_verify):
301
301
  base_url=base_url, headers={"Authorization": f"Bearer {MASTER_KEY}"}, verify=ssl_verify
302
302
  ) as client:
303
303
  await client.patch("/experimental-features", json={"editDocumentsByFunction": True})
304
- yield
304
+ yield
305
305
 
306
306
 
307
307
  @pytest.fixture(scope="session", autouse=True)
@@ -310,7 +310,7 @@ async def enable_network(base_url, ssl_verify):
310
310
  base_url=base_url, headers={"Authorization": f"Bearer {MASTER_KEY}"}, verify=ssl_verify
311
311
  ) as client:
312
312
  await client.patch("/experimental-features", json={"network": True})
313
- yield
313
+ yield
314
314
 
315
315
 
316
316
  @pytest.fixture