meilisearch-python-sdk 8.0.1__tar.gz → 8.1.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.
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/workflows/docs_publish.yml +1 -1
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/workflows/nightly_testing.yml +1 -1
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/workflows/prek_update.yml +2 -2
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/workflows/pypi_publish.yml +1 -1
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/workflows/testing.yml +8 -8
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/PKG-INFO +1 -1
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docker-compose.https.yml +1 -1
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docker-compose.yml +1 -1
- meilisearch_python_sdk-8.1.1/meilisearch_python_sdk/_version.py +1 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/decorators.py +15 -12
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/index/_common.py +3 -3
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/json_handler.py +7 -13
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/settings.py +2 -2
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/prek.toml +3 -3
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/pyproject.toml +7 -7
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_async_documents.py +1 -1
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_documents.py +1 -1
- meilisearch_python_sdk-8.1.1/tests/test_json_handler.py +36 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/uv.lock +424 -384
- meilisearch_python_sdk-8.0.1/meilisearch_python_sdk/_version.py +0 -1
- meilisearch_python_sdk-8.0.1/tests/test_json_handler.py +0 -13
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/FUNDING.yml +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/release-draft-template.yaml +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/renovate.json5 +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/workflows/release-drafter.yml +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.gitignore +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/CONTRIBUTING.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/LICENSE +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/README.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/assets/add_in_batches.png +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/assets/searches.png +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/datasets/small_movies.json +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/.nojekyll +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/CNAME +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/async_client_api.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/async_index_api.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/client_api.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/css/custom.css +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/decorators_api.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/errors_api.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/index.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/index_api.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/js/umami.js +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/json_handler.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/models_client.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/models_index.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/models_search.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/models_settings.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/models_task.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/overrides/partials/footer.html +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/plugins.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/docs/pydantic.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/.gitignore +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/README.md +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/__init__.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/add_documents_decorator.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/add_documents_in_batches.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/async_add_documents_decorator.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/async_add_documents_in_batches.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/async_documents_and_search_results.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/async_search_tracker.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/async_update_settings.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/documents_and_search_results.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/fastapi_example.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/orjson_example.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/pyproject.toml +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/requirements.txt +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/search_tracker.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/tests/__init__.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/tests/conftest.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/tests/test_async_examples.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/tests/test_examples.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/examples/update_settings.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/justfile +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/__init__.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/_batch.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/_client/__init__.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/_client/_async_client.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/_client/_base_client.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/_client/_client.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/_client/_common.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/_http_requests.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/_task.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/_utils.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/errors.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/index/__init__.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/index/async_index.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/index/index.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/__init__.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/batch.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/client.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/documents.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/health.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/index.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/search.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/task.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/version.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/models/webhook.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/plugins.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/py.typed +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/types.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/mkdocs.yaml +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/__init__.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/conftest.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_async_client.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_async_index.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_async_index_plugins.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_async_search.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_client.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_decorators.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_errors.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_http_requests.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_index.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_index_plugins.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_search.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_settings_models.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_utils.py +0 -0
- {meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/tests/test_version.py +0 -0
{meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/.github/workflows/prek_update.yml
RENAMED
|
@@ -13,13 +13,13 @@ jobs:
|
|
|
13
13
|
steps:
|
|
14
14
|
- uses: actions/checkout@v7
|
|
15
15
|
- name: Install uv
|
|
16
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
16
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
17
17
|
with:
|
|
18
18
|
enable-cache: true
|
|
19
19
|
- name: Set up Python
|
|
20
20
|
uses: actions/setup-python@v7
|
|
21
21
|
with:
|
|
22
|
-
python-version: 3.
|
|
22
|
+
python-version: 3.15
|
|
23
23
|
- name: Run Update
|
|
24
24
|
run: uv run prek autoupdate
|
|
25
25
|
- name: Create Pull Request
|
|
@@ -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@v10.3.
|
|
18
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
19
19
|
with:
|
|
20
20
|
enable-cache: true
|
|
21
21
|
- name: Set up Python
|
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
runs-on: ubuntu-latest
|
|
32
32
|
steps:
|
|
33
33
|
- uses: actions/checkout@v7
|
|
34
|
-
- uses: j178/prek-action@v3.0
|
|
34
|
+
- uses: j178/prek-action@v3.1.0
|
|
35
35
|
env:
|
|
36
36
|
PREK_SKIP: no-commit-to-branch,pyrefly-check
|
|
37
37
|
parallel-testing:
|
|
@@ -45,7 +45,7 @@ jobs:
|
|
|
45
45
|
- name: install Just
|
|
46
46
|
uses: taiki-e/install-action@just
|
|
47
47
|
- name: Install uv
|
|
48
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
48
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
49
49
|
with:
|
|
50
50
|
enable-cache: true
|
|
51
51
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -74,7 +74,7 @@ jobs:
|
|
|
74
74
|
- name: install Just
|
|
75
75
|
uses: taiki-e/install-action@just
|
|
76
76
|
- name: Install uv
|
|
77
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
77
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
78
78
|
with:
|
|
79
79
|
enable-cache: true
|
|
80
80
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -114,7 +114,7 @@ jobs:
|
|
|
114
114
|
- name: install Just
|
|
115
115
|
uses: taiki-e/install-action@just
|
|
116
116
|
- name: Install uv
|
|
117
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
117
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
118
118
|
with:
|
|
119
119
|
enable-cache: true
|
|
120
120
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -143,7 +143,7 @@ jobs:
|
|
|
143
143
|
- name: install Just
|
|
144
144
|
uses: taiki-e/install-action@just
|
|
145
145
|
- name: Install uv
|
|
146
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
146
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
147
147
|
with:
|
|
148
148
|
enable-cache: true
|
|
149
149
|
- name: Set up Python ${{ matrix.python-version }}
|
|
@@ -197,13 +197,13 @@ jobs:
|
|
|
197
197
|
- name: install Just
|
|
198
198
|
uses: taiki-e/install-action@just
|
|
199
199
|
- name: Install uv
|
|
200
|
-
uses: astral-sh/setup-uv@v10.3.
|
|
200
|
+
uses: astral-sh/setup-uv@v10.3.3
|
|
201
201
|
with:
|
|
202
202
|
enable-cache: true
|
|
203
203
|
- name: Set up Python
|
|
204
204
|
uses: actions/setup-python@v7
|
|
205
205
|
with:
|
|
206
|
-
python-version: "3.
|
|
206
|
+
python-version: "3.15"
|
|
207
207
|
- name: Install Dependencies
|
|
208
208
|
run: just install
|
|
209
209
|
- name: Test Docs Build
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: meilisearch-python-sdk
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.1.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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION = "8.1.1"
|
{meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/decorators.py
RENAMED
|
@@ -170,17 +170,17 @@ def add_documents(
|
|
|
170
170
|
)
|
|
171
171
|
return result
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
with Client(
|
|
174
174
|
url=connection_info.url, api_key=connection_info.api_key, verify=verify
|
|
175
|
-
)
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
175
|
+
) as client:
|
|
176
|
+
_add_documents(
|
|
177
|
+
client,
|
|
178
|
+
index_name,
|
|
179
|
+
result,
|
|
180
|
+
batch_size,
|
|
181
|
+
primary_key,
|
|
182
|
+
wait_for_task,
|
|
183
|
+
)
|
|
184
184
|
|
|
185
185
|
return result
|
|
186
186
|
|
|
@@ -210,7 +210,10 @@ async def _async_add_documents(
|
|
|
210
210
|
|
|
211
211
|
if wait_for_task:
|
|
212
212
|
async with asyncio.TaskGroup() as tg: # type: ignore[attr-defined]
|
|
213
|
-
[
|
|
213
|
+
[
|
|
214
|
+
tg.create_task(async_client.wait_for_task(x.task_uid, timeout_in_ms=None))
|
|
215
|
+
for x in tasks
|
|
216
|
+
]
|
|
214
217
|
|
|
215
218
|
|
|
216
219
|
def _add_documents(
|
|
@@ -234,4 +237,4 @@ def _add_documents(
|
|
|
234
237
|
|
|
235
238
|
if wait_for_task:
|
|
236
239
|
for task in tasks:
|
|
237
|
-
client.wait_for_task(task.task_uid)
|
|
240
|
+
client.wait_for_task(task.task_uid, timeout_in_ms=None)
|
|
@@ -206,7 +206,7 @@ def process_search_parameters(
|
|
|
206
206
|
body["retrieveVectors"] = retrieve_vectors
|
|
207
207
|
|
|
208
208
|
if exhaustive_facet_count is not None:
|
|
209
|
-
body["
|
|
209
|
+
body["exhaustiveFacetCount"] = exhaustive_facet_count
|
|
210
210
|
|
|
211
211
|
if media is not None:
|
|
212
212
|
body["media"] = media
|
|
@@ -252,7 +252,7 @@ def embedder_json_to_embedders_model( # pragma: no cover
|
|
|
252
252
|
embedders[k] = OllamaEmbedder(**v)
|
|
253
253
|
elif v.get("source") == "rest":
|
|
254
254
|
embedders[k] = RestEmbedder(**v)
|
|
255
|
-
elif v.get("source") == "
|
|
255
|
+
elif v.get("source") == "composite":
|
|
256
256
|
embedders[k] = CompositeEmbedder(**v)
|
|
257
257
|
else:
|
|
258
258
|
embedders[k] = UserProvidedEmbedder(**v)
|
|
@@ -297,7 +297,7 @@ def embedder_json_to_settings_model( # pragma: no cover
|
|
|
297
297
|
embedders[k] = OllamaEmbedder(**v)
|
|
298
298
|
elif v.get("source") == "rest":
|
|
299
299
|
embedders[k] = RestEmbedder(**v)
|
|
300
|
-
elif v.get("source") == "
|
|
300
|
+
elif v.get("source") == "composite":
|
|
301
301
|
embedders[k] = CompositeEmbedder(**v)
|
|
302
302
|
else:
|
|
303
303
|
embedders[k] = UserProvidedEmbedder(**v)
|
{meilisearch_python_sdk-8.0.1 → meilisearch_python_sdk-8.1.1}/meilisearch_python_sdk/json_handler.py
RENAMED
|
@@ -11,13 +11,11 @@ except ImportError: # pragma: no cover
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class _JsonHandler(ABC):
|
|
14
|
-
@staticmethod
|
|
15
14
|
@abstractmethod
|
|
16
|
-
def dumps(obj: Any) -> str: ... # noqa: ANN401
|
|
15
|
+
def dumps(self, obj: Any) -> str: ... # noqa: ANN401
|
|
17
16
|
|
|
18
|
-
@staticmethod
|
|
19
17
|
@abstractmethod
|
|
20
|
-
def dump_bytes(obj: Any) -> bytes: ... # noqa: ANN401
|
|
18
|
+
def dump_bytes(self, obj: Any) -> bytes: ... # noqa: ANN401
|
|
21
19
|
|
|
22
20
|
@staticmethod
|
|
23
21
|
@abstractmethod
|
|
@@ -25,8 +23,6 @@ class _JsonHandler(ABC):
|
|
|
25
23
|
|
|
26
24
|
|
|
27
25
|
class BuiltinHandler(_JsonHandler):
|
|
28
|
-
serializer: type[json.JSONEncoder] | None = None
|
|
29
|
-
|
|
30
26
|
def __init__(self, serializer: type[json.JSONEncoder] | None = None) -> None:
|
|
31
27
|
"""Uses the json module from the Python standard library.
|
|
32
28
|
|
|
@@ -34,15 +30,13 @@ class BuiltinHandler(_JsonHandler):
|
|
|
34
30
|
serializer: A custom JSONEncode to handle serializing fields that the build in
|
|
35
31
|
json.dumps cannot handle, for example UUID and datetime. Defaults to None.
|
|
36
32
|
"""
|
|
37
|
-
|
|
33
|
+
self.serializer = serializer
|
|
38
34
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return json.dumps(obj, cls=BuiltinHandler.serializer)
|
|
35
|
+
def dumps(self, obj: Any) -> str: # noqa: ANN401
|
|
36
|
+
return json.dumps(obj, cls=self.serializer)
|
|
42
37
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return json.dumps(obj, cls=BuiltinHandler.serializer).encode("utf-8")
|
|
38
|
+
def dump_bytes(self, obj: Any) -> bytes: # noqa: ANN401
|
|
39
|
+
return json.dumps(obj, cls=self.serializer).encode("utf-8")
|
|
46
40
|
|
|
47
41
|
@staticmethod
|
|
48
42
|
def loads(json_string: str | bytes | bytearray) -> Any: # noqa: ANN401
|
|
@@ -33,8 +33,8 @@ class Faceting(CamelBase):
|
|
|
33
33
|
return None
|
|
34
34
|
|
|
35
35
|
for _, value in v.items():
|
|
36
|
-
if value not in ("alpha", "count"):
|
|
37
|
-
raise ValueError('facet_order must be either "alpha"
|
|
36
|
+
if value not in ("alpha", "count", "sampledCount"):
|
|
37
|
+
raise ValueError('facet_order must be either "alpha", "count", "sampledCount"')
|
|
38
38
|
|
|
39
39
|
return v
|
|
40
40
|
|
|
@@ -21,7 +21,7 @@ hooks = [
|
|
|
21
21
|
|
|
22
22
|
[[repos]]
|
|
23
23
|
repo = "https://github.com/facebook/pyrefly-pre-commit"
|
|
24
|
-
rev = "1.
|
|
24
|
+
rev = "1.4.0"
|
|
25
25
|
hooks = [
|
|
26
26
|
{
|
|
27
27
|
id = "pyrefly-check",
|
|
@@ -34,7 +34,7 @@ hooks = [
|
|
|
34
34
|
|
|
35
35
|
[[repos]]
|
|
36
36
|
repo = "https://github.com/astral-sh/ruff-pre-commit"
|
|
37
|
-
rev = "v0.
|
|
37
|
+
rev = "v0.17.3"
|
|
38
38
|
hooks = [
|
|
39
39
|
{
|
|
40
40
|
id = "ruff-check",
|
|
@@ -47,7 +47,7 @@ hooks = [
|
|
|
47
47
|
|
|
48
48
|
[[repos]]
|
|
49
49
|
repo = "https://github.com/rvben/rumdl-pre-commit"
|
|
50
|
-
rev = "v0.2
|
|
50
|
+
rev = "v0.3.2"
|
|
51
51
|
hooks = [
|
|
52
52
|
{ id = "rumdl-fmt" }
|
|
53
53
|
]
|
|
@@ -36,16 +36,16 @@ all = ["orjson"]
|
|
|
36
36
|
|
|
37
37
|
[dependency-groups]
|
|
38
38
|
dev = [
|
|
39
|
-
"mkdocstrings[python]==1.0.
|
|
40
|
-
"pyrefly==1.
|
|
41
|
-
"pytest==9.
|
|
39
|
+
"mkdocstrings[python]==1.0.8",
|
|
40
|
+
"pyrefly==1.4.0",
|
|
41
|
+
"pytest==9.2.0",
|
|
42
42
|
"pytest-cov==7.1.0",
|
|
43
|
-
"pytest-asyncio==1.4.
|
|
43
|
+
"pytest-asyncio==1.4.1.post1",
|
|
44
44
|
"pytest-xdist==3.8.0",
|
|
45
|
-
"prek==0.5.
|
|
46
|
-
"ruff==0.17.
|
|
45
|
+
"prek==0.5.9",
|
|
46
|
+
"ruff==0.17.3",
|
|
47
47
|
"types-aiofiles==25.1.0.20260518",
|
|
48
|
-
"zensical==0.0.
|
|
48
|
+
"zensical==0.0.74",
|
|
49
49
|
]
|
|
50
50
|
|
|
51
51
|
[tool.hatch.version]
|
|
@@ -1927,7 +1927,7 @@ async def test_add_documents_custom_serializer(compress, async_empty_index):
|
|
|
1927
1927
|
{"id": uuid4(), "title": "Test 2", "when": datetime.now()},
|
|
1928
1928
|
]
|
|
1929
1929
|
index = await async_empty_index()
|
|
1930
|
-
index._json_handler =
|
|
1930
|
+
index._json_handler.serializer = CustomEncoder
|
|
1931
1931
|
response = await index.add_documents(documents, compress=compress)
|
|
1932
1932
|
update = await async_wait_for_task(
|
|
1933
1933
|
index.http_client, response.task_uid, json_handler=index._json_handler
|
|
@@ -1622,7 +1622,7 @@ def test_add_documents_custom_serializer(compress, empty_index):
|
|
|
1622
1622
|
{"id": uuid4(), "title": "Test 2", "when": datetime.now()},
|
|
1623
1623
|
]
|
|
1624
1624
|
index = empty_index()
|
|
1625
|
-
index._json_handler =
|
|
1625
|
+
index._json_handler.serializer = CustomEncoder
|
|
1626
1626
|
response = index.add_documents(documents, compress=compress)
|
|
1627
1627
|
update = wait_for_task(index.http_client, response.task_uid, json_handler=index._json_handler)
|
|
1628
1628
|
assert update.status == "succeeded"
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from uuid import UUID, uuid4
|
|
3
|
+
|
|
4
|
+
import pytest
|
|
5
|
+
|
|
6
|
+
from meilisearch_python_sdk.json_handler import BuiltinHandler, OrjsonHandler
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@pytest.mark.parametrize("json_handler", (BuiltinHandler(), OrjsonHandler()))
|
|
10
|
+
def test_dumps(json_handler):
|
|
11
|
+
result = json_handler.dumps({"id": 1, "title": "Shazam!"})
|
|
12
|
+
|
|
13
|
+
assert isinstance(result, str)
|
|
14
|
+
assert json.loads(result) == {"id": 1, "title": "Shazam!"}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def test_serializer_not_shared():
|
|
18
|
+
doc_id = uuid4()
|
|
19
|
+
|
|
20
|
+
class UUIDEncoder(json.JSONEncoder):
|
|
21
|
+
def default(self, o):
|
|
22
|
+
if isinstance(o, UUID):
|
|
23
|
+
return str(o)
|
|
24
|
+
return super().default(o)
|
|
25
|
+
|
|
26
|
+
handler = BuiltinHandler(serializer=UUIDEncoder)
|
|
27
|
+
BuiltinHandler()
|
|
28
|
+
|
|
29
|
+
assert json.loads(
|
|
30
|
+
handler.dumps(
|
|
31
|
+
{
|
|
32
|
+
"id": doc_id,
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
) == {"id": str(doc_id)}
|
|
36
|
+
assert json.loads(handler.dump_bytes({"id": doc_id})) == {"id": str(doc_id)}
|