meilisearch-python-sdk 4.9.0__tar.gz → 4.10.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.
Potentially problematic release.
This version of meilisearch-python-sdk might be problematic. Click here for more details.
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.github/renovate.json5 +2 -1
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.github/workflows/docs_publish.yml +1 -1
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.github/workflows/nightly_testing.yml +1 -1
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.github/workflows/pypi_publish.yml +1 -1
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.github/workflows/testing.yml +11 -11
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.pre-commit-config.yaml +2 -2
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/PKG-INFO +1 -1
- meilisearch_python_sdk-4.10.1/docs/css/custom.css +45 -0
- meilisearch_python_sdk-4.10.1/docs/overrides/partials/footer.html +25 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/justfile +1 -4
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/_client.py +14 -4
- meilisearch_python_sdk-4.10.1/meilisearch_python_sdk/_version.py +1 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/index.py +22 -22
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/settings.py +1 -1
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/mkdocs.yaml +4 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/pyproject.toml +7 -8
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_async_client.py +15 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_async_index.py +2 -1
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_client.py +15 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_index.py +2 -1
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/uv.lock +283 -298
- meilisearch_python_sdk-4.9.0/benchmark/run_benchmark.py +0 -236
- meilisearch_python_sdk-4.9.0/docs/css/custom.css +0 -14
- meilisearch_python_sdk-4.9.0/meilisearch_python_sdk/_version.py +0 -1
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.github/FUNDING.yml +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.github/release-draft-template.yaml +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.github/workflows/release-drafter.yml +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.gitignore +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/CONTRIBUTING.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/LICENSE +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/README.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/assets/add_in_batches.png +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/assets/searches.png +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/codecov.yml +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/datasets/small_movies.json +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docker-compose.https.yml +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docker-compose.yml +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/.nojekyll +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/CNAME +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/async_client_api.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/async_index_api.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/client_api.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/decorators_api.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/index.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/index_api.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/js/umami.js +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/json_handler.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/plugins.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/docs/pydantic.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/.gitignore +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/README.md +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/__init__.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/add_documents_decorator.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/add_documents_in_batches.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/async_add_documents_decorator.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/async_add_documents_in_batches.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/async_documents_and_search_results.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/async_search_tracker.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/async_update_settings.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/documents_and_search_results.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/fastapi_example.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/orjson_example.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/pyproject.toml +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/requirements.txt +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/search_tracker.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/tests/__init__.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/tests/conftest.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/tests/test_async_examples.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/tests/test_examples.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/ujson_example.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/examples/update_settings.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/__init__.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/_batch.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/_http_requests.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/_task.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/_utils.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/decorators.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/errors.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/json_handler.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/__init__.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/batch.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/client.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/documents.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/health.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/index.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/search.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/task.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/models/version.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/plugins.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/py.typed +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/types.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/__init__.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/conftest.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_async_documents.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_async_index_plugins.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_async_search.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_decorators.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_documents.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_errors.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_index_plugins.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_search.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_settings_models.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_utils.py +0 -0
- {meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/tests/test_version.py +0 -0
{meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/.github/workflows/testing.yml
RENAMED
|
@@ -19,7 +19,7 @@ jobs:
|
|
|
19
19
|
with:
|
|
20
20
|
enable-cache: true
|
|
21
21
|
- name: Set up Python
|
|
22
|
-
uses: actions/setup-python@
|
|
22
|
+
uses: actions/setup-python@v6
|
|
23
23
|
with:
|
|
24
24
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
25
25
|
- name: Install Dependencies
|
|
@@ -42,7 +42,7 @@ jobs:
|
|
|
42
42
|
with:
|
|
43
43
|
enable-cache: true
|
|
44
44
|
- name: Set up Python ${{ matrix.python-version }}
|
|
45
|
-
uses: actions/setup-python@
|
|
45
|
+
uses: actions/setup-python@v6
|
|
46
46
|
with:
|
|
47
47
|
python-version: ${{ matrix.python-version }}
|
|
48
48
|
- name: Install Dependencies
|
|
@@ -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.5.
|
|
53
|
+
uses: codecov/codecov-action@v5.5.1
|
|
54
54
|
with:
|
|
55
55
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
56
56
|
fail_ci_if_error: true
|
|
@@ -70,7 +70,7 @@ jobs:
|
|
|
70
70
|
with:
|
|
71
71
|
enable-cache: true
|
|
72
72
|
- name: Set up Python ${{ matrix.python-version }}
|
|
73
|
-
uses: actions/setup-python@
|
|
73
|
+
uses: actions/setup-python@v6
|
|
74
74
|
with:
|
|
75
75
|
python-version: ${{ matrix.python-version }}
|
|
76
76
|
- name: Install Dependencies
|
|
@@ -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.5.
|
|
93
|
+
uses: codecov/codecov-action@v5.5.1
|
|
94
94
|
with:
|
|
95
95
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
96
96
|
fail_ci_if_error: true
|
|
@@ -110,7 +110,7 @@ jobs:
|
|
|
110
110
|
with:
|
|
111
111
|
enable-cache: true
|
|
112
112
|
- name: Set up Python ${{ matrix.python-version }}
|
|
113
|
-
uses: actions/setup-python@
|
|
113
|
+
uses: actions/setup-python@v6
|
|
114
114
|
with:
|
|
115
115
|
python-version: ${{ matrix.python-version }}
|
|
116
116
|
- name: Install Dependencies
|
|
@@ -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.5.
|
|
121
|
+
uses: codecov/codecov-action@v5.5.1
|
|
122
122
|
with:
|
|
123
123
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
124
124
|
fail_ci_if_error: true
|
|
@@ -138,7 +138,7 @@ jobs:
|
|
|
138
138
|
with:
|
|
139
139
|
enable-cache: true
|
|
140
140
|
- name: Set up Python ${{ matrix.python-version }}
|
|
141
|
-
uses: actions/setup-python@
|
|
141
|
+
uses: actions/setup-python@v6
|
|
142
142
|
with:
|
|
143
143
|
python-version: ${{ matrix.python-version }}
|
|
144
144
|
- name: Install Dependencies
|
|
@@ -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.5.
|
|
161
|
+
uses: codecov/codecov-action@v5.5.1
|
|
162
162
|
with:
|
|
163
163
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
164
164
|
fail_ci_if_error: true
|
|
@@ -173,7 +173,7 @@ jobs:
|
|
|
173
173
|
- name: install Just
|
|
174
174
|
uses: taiki-e/install-action@just
|
|
175
175
|
- name: Set up Python ${{ matrix.python-version }}
|
|
176
|
-
uses: actions/setup-python@
|
|
176
|
+
uses: actions/setup-python@v6
|
|
177
177
|
with:
|
|
178
178
|
python-version: ${{ matrix.python-version }}
|
|
179
179
|
cache: pip
|
|
@@ -191,7 +191,7 @@ jobs:
|
|
|
191
191
|
with:
|
|
192
192
|
enable-cache: true
|
|
193
193
|
- name: Set up Python
|
|
194
|
-
uses: actions/setup-python@
|
|
194
|
+
uses: actions/setup-python@v6
|
|
195
195
|
with:
|
|
196
196
|
python-version: "3.13"
|
|
197
197
|
- name: Install Dependencies
|
|
@@ -9,12 +9,12 @@ repos:
|
|
|
9
9
|
- id: end-of-file-fixer
|
|
10
10
|
- id: trailing-whitespace
|
|
11
11
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
12
|
-
rev: v1.
|
|
12
|
+
rev: v1.18.1
|
|
13
13
|
hooks:
|
|
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.
|
|
17
|
+
rev: v0.13.0
|
|
18
18
|
hooks:
|
|
19
19
|
- id: ruff-check
|
|
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
|
+
Version: 4.10.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,45 @@
|
|
|
1
|
+
.md-source__repository {
|
|
2
|
+
overflow: visible;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.md-footer {
|
|
6
|
+
padding: 16px 0;
|
|
7
|
+
display: flex;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
align-items: center;
|
|
10
|
+
background-color: #111317;
|
|
11
|
+
color: #ffffff;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.footer-buttons {
|
|
15
|
+
display: flex;
|
|
16
|
+
gap: 16px;
|
|
17
|
+
align-items: center;
|
|
18
|
+
flex-wrap: wrap;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.footer-btn,
|
|
22
|
+
.bmc-wrapper iframe {
|
|
23
|
+
height: 40px;
|
|
24
|
+
width: 150px;
|
|
25
|
+
min-width: 120px;
|
|
26
|
+
max-width: 100%;
|
|
27
|
+
border-radius: 6px;
|
|
28
|
+
display: block;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.bmc-wrapper {
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
div.autodoc-docstring {
|
|
37
|
+
padding-left: 20px;
|
|
38
|
+
margin-bottom: 30px;
|
|
39
|
+
border-left: 5px solid rgba(230, 230, 230);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
div.autodoc-members {
|
|
43
|
+
padding-left: 20px;
|
|
44
|
+
margin-bottom: 15px;
|
|
45
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<footer class="md-footer">
|
|
2
|
+
<div class="footer-buttons">
|
|
3
|
+
<iframe
|
|
4
|
+
src="https://github.com/sponsors/sanders41/button"
|
|
5
|
+
title="Sponsor sanders41"
|
|
6
|
+
class="footer-btn"
|
|
7
|
+
></iframe>
|
|
8
|
+
|
|
9
|
+
<div class="bmc-wrapper">
|
|
10
|
+
<script
|
|
11
|
+
type="text/javascript"
|
|
12
|
+
src="https://cdnjs.buymeacoffee.com/1.0.0/button.prod.min.js"
|
|
13
|
+
data-name="bmc-button"
|
|
14
|
+
data-slug="sanders41"
|
|
15
|
+
data-color="#87ceeb"
|
|
16
|
+
data-emoji=""
|
|
17
|
+
data-font="Cookie"
|
|
18
|
+
data-text="Buy me a coffee"
|
|
19
|
+
data-outline-color="#000000"
|
|
20
|
+
data-font-color="#000000"
|
|
21
|
+
data-coffee-color="#FFDD00"
|
|
22
|
+
></script>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</footer>
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
uv run mkdocs build --strict
|
|
79
79
|
|
|
80
80
|
@serve-docs:
|
|
81
|
-
mkdocs serve
|
|
81
|
+
uv run mkdocs serve
|
|
82
82
|
|
|
83
83
|
@install:
|
|
84
84
|
uv sync --frozen --all-extras
|
|
@@ -88,6 +88,3 @@
|
|
|
88
88
|
|
|
89
89
|
@lock-upgrade:
|
|
90
90
|
uv lock --upgrade
|
|
91
|
-
|
|
92
|
-
@benchmark: start-meilisearch-detached && stop-meilisearch
|
|
93
|
-
-uv run benchmark/run_benchmark.py
|
{meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/_client.py
RENAMED
|
@@ -812,11 +812,13 @@ class AsyncClient(BaseClient):
|
|
|
812
812
|
|
|
813
813
|
return Health(**response.json())
|
|
814
814
|
|
|
815
|
-
async def swap_indexes(self, indexes: list[tuple[str, str]]) -> TaskInfo:
|
|
815
|
+
async def swap_indexes(self, indexes: list[tuple[str, str]], rename: bool = False) -> TaskInfo:
|
|
816
816
|
"""Swap two indexes.
|
|
817
817
|
|
|
818
818
|
Args:
|
|
819
819
|
indexes: A list of tuples, each tuple should contain the indexes to swap.
|
|
820
|
+
rename: Use rename false if you are swapping two existing indexes. Use rename true if
|
|
821
|
+
the second index in your array does not exist. Default = False
|
|
820
822
|
|
|
821
823
|
Returns:
|
|
822
824
|
The details of the task.
|
|
@@ -830,7 +832,10 @@ class AsyncClient(BaseClient):
|
|
|
830
832
|
>>> async with AsyncClient("http://localhost.com", "masterKey") as client:
|
|
831
833
|
>>> index = await client.swap_indexes([("index_a", "index_b")])
|
|
832
834
|
"""
|
|
833
|
-
|
|
835
|
+
if rename:
|
|
836
|
+
processed_indexes = [{"indexes": x, "rename": True} for x in indexes]
|
|
837
|
+
else:
|
|
838
|
+
processed_indexes = [{"indexes": x} for x in indexes]
|
|
834
839
|
response = await self._http_requests.post("swap-indexes", processed_indexes)
|
|
835
840
|
|
|
836
841
|
return TaskInfo(**response.json())
|
|
@@ -1775,11 +1780,13 @@ class Client(BaseClient):
|
|
|
1775
1780
|
|
|
1776
1781
|
return Health(**response.json())
|
|
1777
1782
|
|
|
1778
|
-
def swap_indexes(self, indexes: list[tuple[str, str]]) -> TaskInfo:
|
|
1783
|
+
def swap_indexes(self, indexes: list[tuple[str, str]], rename: bool = False) -> TaskInfo:
|
|
1779
1784
|
"""Swap two indexes.
|
|
1780
1785
|
|
|
1781
1786
|
Args:
|
|
1782
1787
|
indexes: A list of tuples, each tuple should contain the indexes to swap.
|
|
1788
|
+
rename: Use rename false if you are swapping two existing indexes. Use rename true if
|
|
1789
|
+
the second index in your array does not exist. Default = False
|
|
1783
1790
|
|
|
1784
1791
|
Returns:
|
|
1785
1792
|
The details of the task.
|
|
@@ -1793,7 +1800,10 @@ class Client(BaseClient):
|
|
|
1793
1800
|
>>> client = Client("http://localhost.com", "masterKey")
|
|
1794
1801
|
>>> index = client.swap_indexes([("index_a", "index_b")])
|
|
1795
1802
|
"""
|
|
1796
|
-
|
|
1803
|
+
if rename:
|
|
1804
|
+
processed_indexes = [{"indexes": x, "rename": True} for x in indexes]
|
|
1805
|
+
else:
|
|
1806
|
+
processed_indexes = [{"indexes": x} for x in indexes]
|
|
1797
1807
|
response = self._http_requests.post("swap-indexes", processed_indexes)
|
|
1798
1808
|
|
|
1799
1809
|
return TaskInfo(**response.json())
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION = "4.10.1"
|
{meilisearch_python_sdk-4.9.0 → meilisearch_python_sdk-4.10.1}/meilisearch_python_sdk/index.py
RENAMED
|
@@ -3593,7 +3593,7 @@ class AsyncIndex(_BaseIndex):
|
|
|
3593
3593
|
|
|
3594
3594
|
return TaskInfo(**response.json())
|
|
3595
3595
|
|
|
3596
|
-
async def get_filterable_attributes(self) -> list[str
|
|
3596
|
+
async def get_filterable_attributes(self) -> list[str | FilterableAttributes] | None:
|
|
3597
3597
|
"""Get filterable attributes of the index.
|
|
3598
3598
|
|
|
3599
3599
|
Returns:
|
|
@@ -3616,22 +3616,22 @@ class AsyncIndex(_BaseIndex):
|
|
|
3616
3616
|
|
|
3617
3617
|
response_json = response.json()
|
|
3618
3618
|
|
|
3619
|
-
|
|
3620
|
-
return response_json
|
|
3621
|
-
|
|
3622
|
-
filterable_attributes = []
|
|
3619
|
+
filterable_attributes: list[str | FilterableAttributes] = []
|
|
3623
3620
|
for r in response_json:
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3621
|
+
if isinstance(r, str):
|
|
3622
|
+
filterable_attributes.append(r)
|
|
3623
|
+
else:
|
|
3624
|
+
filterable_attributes.append(
|
|
3625
|
+
FilterableAttributes(
|
|
3626
|
+
attribute_patterns=r["attributePatterns"],
|
|
3627
|
+
features=FilterableAttributeFeatures(**r["features"]),
|
|
3628
|
+
)
|
|
3628
3629
|
)
|
|
3629
|
-
)
|
|
3630
3630
|
|
|
3631
3631
|
return filterable_attributes
|
|
3632
3632
|
|
|
3633
3633
|
async def update_filterable_attributes(
|
|
3634
|
-
self, body: list[str
|
|
3634
|
+
self, body: list[str | FilterableAttributes], *, compress: bool = False
|
|
3635
3635
|
) -> TaskInfo:
|
|
3636
3636
|
"""Update filterable attributes of the index.
|
|
3637
3637
|
|
|
@@ -7224,7 +7224,7 @@ class Index(_BaseIndex):
|
|
|
7224
7224
|
|
|
7225
7225
|
return TaskInfo(**response.json())
|
|
7226
7226
|
|
|
7227
|
-
def get_filterable_attributes(self) -> list[str
|
|
7227
|
+
def get_filterable_attributes(self) -> list[str | FilterableAttributes] | None:
|
|
7228
7228
|
"""Get filterable attributes of the index.
|
|
7229
7229
|
|
|
7230
7230
|
Returns:
|
|
@@ -7247,22 +7247,22 @@ class Index(_BaseIndex):
|
|
|
7247
7247
|
|
|
7248
7248
|
response_json = response.json()
|
|
7249
7249
|
|
|
7250
|
-
|
|
7251
|
-
return response_json
|
|
7252
|
-
|
|
7253
|
-
filterable_attributes = []
|
|
7250
|
+
filterable_attributes: list[str | FilterableAttributes] = []
|
|
7254
7251
|
for r in response_json:
|
|
7255
|
-
|
|
7256
|
-
|
|
7257
|
-
|
|
7258
|
-
|
|
7252
|
+
if isinstance(r, str):
|
|
7253
|
+
filterable_attributes.append(r)
|
|
7254
|
+
else:
|
|
7255
|
+
filterable_attributes.append(
|
|
7256
|
+
FilterableAttributes(
|
|
7257
|
+
attribute_patterns=r["attributePatterns"],
|
|
7258
|
+
features=FilterableAttributeFeatures(**r["features"]),
|
|
7259
|
+
)
|
|
7259
7260
|
)
|
|
7260
|
-
)
|
|
7261
7261
|
|
|
7262
7262
|
return filterable_attributes
|
|
7263
7263
|
|
|
7264
7264
|
def update_filterable_attributes(
|
|
7265
|
-
self, body: list[str
|
|
7265
|
+
self, body: list[str | FilterableAttributes], *, compress: bool = False
|
|
7266
7266
|
) -> TaskInfo:
|
|
7267
7267
|
"""Update filterable attributes of the index.
|
|
7268
7268
|
|
|
@@ -167,7 +167,7 @@ class MeilisearchSettings(CamelBase):
|
|
|
167
167
|
synonyms: JsonDict | None = None
|
|
168
168
|
stop_words: list[str] | None = None
|
|
169
169
|
ranking_rules: list[str] | None = None
|
|
170
|
-
filterable_attributes: list[str
|
|
170
|
+
filterable_attributes: list[str | FilterableAttributes] | None = None
|
|
171
171
|
distinct_attribute: str | None = None
|
|
172
172
|
searchable_attributes: list[str] | None = None
|
|
173
173
|
displayed_attributes: list[str] | None = None
|
|
@@ -4,6 +4,7 @@ site_url: https://meilisearch-python-sdk.paulsanders.dev
|
|
|
4
4
|
|
|
5
5
|
theme:
|
|
6
6
|
name: material
|
|
7
|
+
custom_dir: docs/overrides
|
|
7
8
|
locale: en
|
|
8
9
|
icon:
|
|
9
10
|
repo: fontawesome/brands/github
|
|
@@ -44,3 +45,6 @@ plugins:
|
|
|
44
45
|
|
|
45
46
|
extra_javascript:
|
|
46
47
|
- "js/umami.js"
|
|
48
|
+
|
|
49
|
+
extra_css:
|
|
50
|
+
- "css/custom.css"
|
|
@@ -41,19 +41,18 @@ all = ["orjson", "ujson"]
|
|
|
41
41
|
[dependency-groups]
|
|
42
42
|
dev = [
|
|
43
43
|
"mkdocs==1.6.1",
|
|
44
|
-
"mkdocs-material==9.6.
|
|
44
|
+
"mkdocs-material==9.6.20",
|
|
45
45
|
"mkdocstrings[python]==0.30.0",
|
|
46
|
-
"mypy[faster-cache]==1.
|
|
46
|
+
"mypy[faster-cache]==1.18.2",
|
|
47
47
|
"pre-commit==4.3.0",
|
|
48
|
-
"pytest==8.4.
|
|
49
|
-
"pytest-cov==
|
|
50
|
-
"pytest-asyncio==1.
|
|
48
|
+
"pytest==8.4.2",
|
|
49
|
+
"pytest-cov==7.0.0",
|
|
50
|
+
"pytest-asyncio==1.2.0",
|
|
51
51
|
"pytest-xdist==3.8.0",
|
|
52
|
-
"ruff==0.
|
|
52
|
+
"ruff==0.13.1",
|
|
53
53
|
"types-aiofiles==24.1.0.20250822",
|
|
54
|
-
"typing-extensions==4.
|
|
54
|
+
"typing-extensions==4.15.0",
|
|
55
55
|
"types-ujson==5.10.0.20250822",
|
|
56
|
-
"meilisearch==0.37.0",
|
|
57
56
|
"rich==14.1.0",
|
|
58
57
|
]
|
|
59
58
|
|
|
@@ -550,6 +550,21 @@ async def test_swap_indexes(async_client, async_empty_index):
|
|
|
550
550
|
assert task.task_type == "indexSwap"
|
|
551
551
|
|
|
552
552
|
|
|
553
|
+
@pytest.mark.no_parallel
|
|
554
|
+
async def test_swap_indexes_rename(async_client, async_empty_index):
|
|
555
|
+
new_name = str(uuid4())
|
|
556
|
+
index = await async_empty_index()
|
|
557
|
+
task = await index.add_documents([{"id": 1, "title": index.uid}])
|
|
558
|
+
await async_client.wait_for_task(task.task_uid)
|
|
559
|
+
swapTask = await async_client.swap_indexes([(index.uid, new_name)], rename=True)
|
|
560
|
+
task = async_client.wait_for_task(swapTask.task_uid)
|
|
561
|
+
|
|
562
|
+
indexes = await async_client.get_indexes()
|
|
563
|
+
uids = [index.uid for index in indexes]
|
|
564
|
+
assert index.uid not in uids
|
|
565
|
+
assert new_name in uids
|
|
566
|
+
|
|
567
|
+
|
|
553
568
|
@pytest.mark.usefixtures("create_tasks")
|
|
554
569
|
@pytest.mark.no_parallel
|
|
555
570
|
async def test_cancel_task_statuses(async_client):
|
|
@@ -586,6 +586,7 @@ async def test_get_filterable_attributes(async_empty_index):
|
|
|
586
586
|
facet_search=True, filter=Filter(equality=True, comparison=False)
|
|
587
587
|
),
|
|
588
588
|
),
|
|
589
|
+
"genre",
|
|
589
590
|
],
|
|
590
591
|
),
|
|
591
592
|
)
|
|
@@ -594,7 +595,7 @@ async def test_update_filterable_attributes(compress, async_empty_index, filtera
|
|
|
594
595
|
response = await index.update_filterable_attributes(filterable_attributes, compress=compress)
|
|
595
596
|
await async_wait_for_task(index.http_client, response.task_uid)
|
|
596
597
|
response = await index.get_filterable_attributes()
|
|
597
|
-
assert
|
|
598
|
+
assert response == filterable_attributes
|
|
598
599
|
|
|
599
600
|
|
|
600
601
|
@pytest.mark.parametrize(
|
|
@@ -547,6 +547,21 @@ def test_swap_indexes(client, empty_index):
|
|
|
547
547
|
assert task.task_type == "indexSwap"
|
|
548
548
|
|
|
549
549
|
|
|
550
|
+
@pytest.mark.no_parallel
|
|
551
|
+
def test_swap_indexes_rename(client, empty_index):
|
|
552
|
+
new_name = str(uuid4())
|
|
553
|
+
index = empty_index()
|
|
554
|
+
task = index.add_documents([{"id": 1, "title": index.uid}])
|
|
555
|
+
client.wait_for_task(task.task_uid)
|
|
556
|
+
swapTask = client.swap_indexes([(index.uid, new_name)], rename=True)
|
|
557
|
+
task = client.wait_for_task(swapTask.task_uid)
|
|
558
|
+
|
|
559
|
+
indexes = client.get_indexes()
|
|
560
|
+
uids = [index.uid for index in indexes]
|
|
561
|
+
assert index.uid not in uids
|
|
562
|
+
assert new_name in uids
|
|
563
|
+
|
|
564
|
+
|
|
550
565
|
@pytest.mark.usefixtures("create_tasks")
|
|
551
566
|
@pytest.mark.no_parallel
|
|
552
567
|
def test_cancel_statuses(client):
|
|
@@ -574,6 +574,7 @@ def test_get_filterable_attributes(empty_index):
|
|
|
574
574
|
facet_search=True, filter=Filter(equality=True, comparison=False)
|
|
575
575
|
),
|
|
576
576
|
),
|
|
577
|
+
"genre",
|
|
577
578
|
],
|
|
578
579
|
),
|
|
579
580
|
)
|
|
@@ -582,7 +583,7 @@ def test_update_filterable_attributes(compress, empty_index, filterable_attribut
|
|
|
582
583
|
response = index.update_filterable_attributes(filterable_attributes, compress=compress)
|
|
583
584
|
wait_for_task(index.http_client, response.task_uid)
|
|
584
585
|
response = index.get_filterable_attributes()
|
|
585
|
-
assert
|
|
586
|
+
assert response == filterable_attributes
|
|
586
587
|
|
|
587
588
|
|
|
588
589
|
@pytest.mark.parametrize(
|