meilisearch-python-sdk 7.3.0__tar.gz → 7.4.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-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/workflows/docs_publish.yml +2 -2
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/workflows/nightly_testing.yml +2 -2
- meilisearch_python_sdk-7.4.1/.github/workflows/prek_update.yml +36 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/workflows/pypi_publish.yml +2 -2
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/workflows/testing.yml +20 -18
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/PKG-INFO +7 -2
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/README.md +6 -1
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docker-compose.https.yml +1 -1
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docker-compose.yml +1 -1
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/index.md +15 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/json_handler.md +3 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/_client/_async_client.py +1 -1
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/_client/_base_client.py +12 -1
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/_client/_client.py +1 -1
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/_http_requests.py +4 -2
- meilisearch_python_sdk-7.4.1/meilisearch_python_sdk/_version.py +1 -0
- meilisearch_python_sdk-7.4.1/prek.toml +53 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/pyproject.toml +3 -3
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/conftest.py +5 -3
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_async_client.py +18 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_client.py +18 -0
- meilisearch_python_sdk-7.4.1/tests/test_json_handler.py +13 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/uv.lock +69 -69
- meilisearch_python_sdk-7.3.0/.pre-commit-config.yaml +0 -30
- meilisearch_python_sdk-7.3.0/meilisearch_python_sdk/_version.py +0 -1
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/FUNDING.yml +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/release-draft-template.yaml +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/renovate.json5 +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/workflows/release-drafter.yml +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.gitignore +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/CONTRIBUTING.md +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/LICENSE +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/assets/add_in_batches.png +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/assets/searches.png +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/codecov.yml +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/datasets/small_movies.json +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/.nojekyll +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/CNAME +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/async_client_api.md +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/async_index_api.md +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/client_api.md +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/css/custom.css +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/decorators_api.md +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/index_api.md +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/js/umami.js +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/overrides/partials/footer.html +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/plugins.md +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/docs/pydantic.md +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/.gitignore +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/README.md +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/__init__.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/add_documents_decorator.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/add_documents_in_batches.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/async_add_documents_decorator.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/async_add_documents_in_batches.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/async_documents_and_search_results.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/async_search_tracker.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/async_update_settings.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/documents_and_search_results.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/fastapi_example.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/orjson_example.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/pyproject.toml +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/requirements.txt +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/search_tracker.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/tests/__init__.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/tests/conftest.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/tests/test_async_examples.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/tests/test_examples.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/examples/update_settings.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/justfile +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/__init__.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/_batch.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/_client/__init__.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/_client/_common.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/_task.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/_utils.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/decorators.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/errors.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/index/__init__.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/index/_common.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/index/async_index.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/index/index.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/json_handler.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/__init__.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/batch.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/client.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/documents.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/health.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/index.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/search.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/settings.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/task.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/version.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/models/webhook.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/plugins.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/py.typed +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/meilisearch_python_sdk/types.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/mkdocs.yaml +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/__init__.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_async_documents.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_async_index.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_async_index_plugins.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_async_search.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_decorators.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_documents.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_errors.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_http_requests.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_index.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_index_plugins.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_search.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_settings_models.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_utils.py +0 -0
- {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/tests/test_version.py +0 -0
{meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/workflows/docs_publish.yml
RENAMED
|
@@ -16,11 +16,11 @@ jobs:
|
|
|
16
16
|
steps:
|
|
17
17
|
- uses: actions/checkout@v7
|
|
18
18
|
- name: Install uv
|
|
19
|
-
uses: astral-sh/setup-uv@
|
|
19
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
20
20
|
with:
|
|
21
21
|
enable-cache: true
|
|
22
22
|
- name: Set up Python
|
|
23
|
-
uses: actions/setup-python@
|
|
23
|
+
uses: actions/setup-python@v7
|
|
24
24
|
with:
|
|
25
25
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
26
26
|
- name: Install Dependencies
|
{meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/workflows/nightly_testing.yml
RENAMED
|
@@ -14,13 +14,13 @@ jobs:
|
|
|
14
14
|
steps:
|
|
15
15
|
- uses: actions/checkout@v7
|
|
16
16
|
- name: Install uv
|
|
17
|
-
uses: astral-sh/setup-uv@
|
|
17
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
18
18
|
with:
|
|
19
19
|
enable-cache: true
|
|
20
20
|
- name: install Just
|
|
21
21
|
uses: taiki-e/install-action@just
|
|
22
22
|
- name: Set up Python
|
|
23
|
-
uses: actions/setup-python@
|
|
23
|
+
uses: actions/setup-python@v7
|
|
24
24
|
with:
|
|
25
25
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
26
26
|
- name: Install Dependencies
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Prek Auto Update
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: "0 2 * * *"
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
permissions:
|
|
8
|
+
contents: write
|
|
9
|
+
pull-requests: write
|
|
10
|
+
jobs:
|
|
11
|
+
update:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v7
|
|
15
|
+
- name: Install uv
|
|
16
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
17
|
+
with:
|
|
18
|
+
enable-cache: true
|
|
19
|
+
- name: Set up Python
|
|
20
|
+
uses: actions/setup-python@v7
|
|
21
|
+
with:
|
|
22
|
+
python-version: 3.14
|
|
23
|
+
- name: Run Update
|
|
24
|
+
run: uv run prek autoupdate
|
|
25
|
+
- name: Create Pull Request
|
|
26
|
+
uses: peter-evans/create-pull-request@v8
|
|
27
|
+
with:
|
|
28
|
+
token: ${{ secrets.PREK_UPDATE_TOKEN }}
|
|
29
|
+
commit-message: "Bump prek hooks"
|
|
30
|
+
branch: prek-autoupdate
|
|
31
|
+
delete-branch: true
|
|
32
|
+
title: "Bump prek hooks"
|
|
33
|
+
body: "Automated update of prek hooks via `prek autoupdate`."
|
|
34
|
+
labels: |
|
|
35
|
+
dependencies
|
|
36
|
+
skip-changelog
|
{meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.1}/.github/workflows/pypi_publish.yml
RENAMED
|
@@ -14,11 +14,11 @@ jobs:
|
|
|
14
14
|
steps:
|
|
15
15
|
- uses: actions/checkout@v7
|
|
16
16
|
- name: Install uv
|
|
17
|
-
uses: astral-sh/setup-uv@
|
|
17
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
18
18
|
with:
|
|
19
19
|
enable-cache: true
|
|
20
20
|
- name: Set up Python
|
|
21
|
-
uses: actions/setup-python@
|
|
21
|
+
uses: actions/setup-python@v7
|
|
22
22
|
with:
|
|
23
23
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
24
24
|
- name: Install Dependencies
|
|
@@ -15,11 +15,11 @@ 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@
|
|
18
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
19
19
|
with:
|
|
20
20
|
enable-cache: true
|
|
21
21
|
- name: Set up Python
|
|
22
|
-
uses: actions/setup-python@
|
|
22
|
+
uses: actions/setup-python@v7
|
|
23
23
|
with:
|
|
24
24
|
python-version: ${{ env.PYTHON_VERSION }}
|
|
25
25
|
allow-prereleases: true
|
|
@@ -27,7 +27,13 @@ jobs:
|
|
|
27
27
|
run: just install
|
|
28
28
|
- name: pyrefly check
|
|
29
29
|
run: just pyrefly
|
|
30
|
-
|
|
30
|
+
prek:
|
|
31
|
+
runs-on: ubuntu-latest
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v7
|
|
34
|
+
- uses: j178/prek-action@v2
|
|
35
|
+
env:
|
|
36
|
+
PREK_SKIP: no-commit-to-branch,pyrefly-check
|
|
31
37
|
parallel-testing:
|
|
32
38
|
strategy:
|
|
33
39
|
fail-fast: false
|
|
@@ -39,11 +45,11 @@ jobs:
|
|
|
39
45
|
- name: install Just
|
|
40
46
|
uses: taiki-e/install-action@just
|
|
41
47
|
- name: Install uv
|
|
42
|
-
uses: astral-sh/setup-uv@
|
|
48
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
43
49
|
with:
|
|
44
50
|
enable-cache: true
|
|
45
51
|
- name: Set up Python ${{ matrix.python-version }}
|
|
46
|
-
uses: actions/setup-python@
|
|
52
|
+
uses: actions/setup-python@v7
|
|
47
53
|
with:
|
|
48
54
|
python-version: ${{ matrix.python-version }}
|
|
49
55
|
allow-prereleases: true
|
|
@@ -57,7 +63,6 @@ jobs:
|
|
|
57
63
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
58
64
|
with:
|
|
59
65
|
fail_ci_if_error: true
|
|
60
|
-
|
|
61
66
|
parallel-testing-http2:
|
|
62
67
|
strategy:
|
|
63
68
|
fail-fast: false
|
|
@@ -69,11 +74,11 @@ jobs:
|
|
|
69
74
|
- name: install Just
|
|
70
75
|
uses: taiki-e/install-action@just
|
|
71
76
|
- name: Install uv
|
|
72
|
-
uses: astral-sh/setup-uv@
|
|
77
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
73
78
|
with:
|
|
74
79
|
enable-cache: true
|
|
75
80
|
- name: Set up Python ${{ matrix.python-version }}
|
|
76
|
-
uses: actions/setup-python@
|
|
81
|
+
uses: actions/setup-python@v7
|
|
77
82
|
with:
|
|
78
83
|
python-version: ${{ matrix.python-version }}
|
|
79
84
|
allow-prereleases: true
|
|
@@ -98,7 +103,6 @@ jobs:
|
|
|
98
103
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
99
104
|
with:
|
|
100
105
|
fail_ci_if_error: true
|
|
101
|
-
|
|
102
106
|
no-parallel-testing:
|
|
103
107
|
strategy:
|
|
104
108
|
fail-fast: false
|
|
@@ -110,11 +114,11 @@ jobs:
|
|
|
110
114
|
- name: install Just
|
|
111
115
|
uses: taiki-e/install-action@just
|
|
112
116
|
- name: Install uv
|
|
113
|
-
uses: astral-sh/setup-uv@
|
|
117
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
114
118
|
with:
|
|
115
119
|
enable-cache: true
|
|
116
120
|
- name: Set up Python ${{ matrix.python-version }}
|
|
117
|
-
uses: actions/setup-python@
|
|
121
|
+
uses: actions/setup-python@v7
|
|
118
122
|
with:
|
|
119
123
|
python-version: ${{ matrix.python-version }}
|
|
120
124
|
allow-prereleases: true
|
|
@@ -128,7 +132,6 @@ jobs:
|
|
|
128
132
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
129
133
|
with:
|
|
130
134
|
fail_ci_if_error: true
|
|
131
|
-
|
|
132
135
|
no-parallel-testing-http2:
|
|
133
136
|
strategy:
|
|
134
137
|
fail-fast: false
|
|
@@ -140,11 +143,11 @@ jobs:
|
|
|
140
143
|
- name: install Just
|
|
141
144
|
uses: taiki-e/install-action@just
|
|
142
145
|
- name: Install uv
|
|
143
|
-
uses: astral-sh/setup-uv@
|
|
146
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
144
147
|
with:
|
|
145
148
|
enable-cache: true
|
|
146
149
|
- name: Set up Python ${{ matrix.python-version }}
|
|
147
|
-
uses: actions/setup-python@
|
|
150
|
+
uses: actions/setup-python@v7
|
|
148
151
|
with:
|
|
149
152
|
python-version: ${{ matrix.python-version }}
|
|
150
153
|
allow-prereleases: true
|
|
@@ -180,14 +183,13 @@ jobs:
|
|
|
180
183
|
- name: install Just
|
|
181
184
|
uses: taiki-e/install-action@just
|
|
182
185
|
- name: Set up Python ${{ matrix.python-version }}
|
|
183
|
-
uses: actions/setup-python@
|
|
186
|
+
uses: actions/setup-python@v7
|
|
184
187
|
with:
|
|
185
188
|
python-version: ${{ matrix.python-version }}
|
|
186
189
|
allow-prereleases: true
|
|
187
190
|
cache: pip
|
|
188
191
|
- name: Test with pytest
|
|
189
192
|
run: just test-examples-ci
|
|
190
|
-
|
|
191
193
|
docs:
|
|
192
194
|
runs-on: ubuntu-latest
|
|
193
195
|
steps:
|
|
@@ -195,11 +197,11 @@ jobs:
|
|
|
195
197
|
- name: install Just
|
|
196
198
|
uses: taiki-e/install-action@just
|
|
197
199
|
- name: Install uv
|
|
198
|
-
uses: astral-sh/setup-uv@
|
|
200
|
+
uses: astral-sh/setup-uv@v9.0.0
|
|
199
201
|
with:
|
|
200
202
|
enable-cache: true
|
|
201
203
|
- name: Set up Python
|
|
202
|
-
uses: actions/setup-python@
|
|
204
|
+
uses: actions/setup-python@v7
|
|
203
205
|
with:
|
|
204
206
|
python-version: "3.14"
|
|
205
207
|
- name: Install Dependencies
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: meilisearch-python-sdk
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.4.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
|
|
@@ -53,7 +53,6 @@ Description-Content-Type: text/markdown
|
|
|
53
53
|
# Meilisearch Python SDK
|
|
54
54
|
|
|
55
55
|
[](https://github.com/sanders41/meilisearch-python-sdk/actions?query=workflow%3ATesting+branch%3Amain+event%3Apush)
|
|
56
|
-
[](https://results.pre-commit.ci/latest/github/sanders41/meilisearch-python-sdk/main)
|
|
57
56
|
[](https://codecov.io/gh/sanders41/meilisearch-python-sdk)
|
|
58
57
|
[](https://badge.fury.io/py/meilisearch-python-sdk)
|
|
59
58
|
[](https://github.com/sanders41/meilisearch-python-sdk)
|
|
@@ -77,6 +76,12 @@ environment is created and activated, install the package with:
|
|
|
77
76
|
pip install meilisearch-python-sdk
|
|
78
77
|
```
|
|
79
78
|
|
|
79
|
+
Installing with the orjson extra will make JSON serilization/deserilization faster.
|
|
80
|
+
|
|
81
|
+
```sh
|
|
82
|
+
pip install meilisearch-python-sdk[orjson]
|
|
83
|
+
```
|
|
84
|
+
|
|
80
85
|
## Run Meilisearch
|
|
81
86
|
|
|
82
87
|
There are several ways to
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# Meilisearch Python SDK
|
|
2
2
|
|
|
3
3
|
[](https://github.com/sanders41/meilisearch-python-sdk/actions?query=workflow%3ATesting+branch%3Amain+event%3Apush)
|
|
4
|
-
[](https://results.pre-commit.ci/latest/github/sanders41/meilisearch-python-sdk/main)
|
|
5
4
|
[](https://codecov.io/gh/sanders41/meilisearch-python-sdk)
|
|
6
5
|
[](https://badge.fury.io/py/meilisearch-python-sdk)
|
|
7
6
|
[](https://github.com/sanders41/meilisearch-python-sdk)
|
|
@@ -25,6 +24,12 @@ environment is created and activated, install the package with:
|
|
|
25
24
|
pip install meilisearch-python-sdk
|
|
26
25
|
```
|
|
27
26
|
|
|
27
|
+
Installing with the orjson extra will make JSON serilization/deserilization faster.
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
pip install meilisearch-python-sdk[orjson]
|
|
31
|
+
```
|
|
32
|
+
|
|
28
33
|
## Run Meilisearch
|
|
29
34
|
|
|
30
35
|
There are several ways to
|
|
@@ -13,3 +13,18 @@ If the code base you are working with uses asyncio, for example if you are using
|
|
|
13
13
|
The functionality of the two clients is the same, the difference being the `AsyncClient` provides
|
|
14
14
|
async methods and uses the `AsyncIndex`, which also provides async methods, while the `Client`
|
|
15
15
|
provides blocking methods and uses the `Index`, which also provides blocking methods.
|
|
16
|
+
|
|
17
|
+
## Instillation
|
|
18
|
+
|
|
19
|
+
Using a virtual environment is recommended for installing this package. Once the virtual
|
|
20
|
+
environment is created and activated, install the package with:
|
|
21
|
+
|
|
22
|
+
```sh
|
|
23
|
+
pip install meilisearch-python-sdk
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Installing with the orjson extra will make JSON serilization/deserilization faster.
|
|
27
|
+
|
|
28
|
+
```sh
|
|
29
|
+
pip install meilisearch-python-sdk[orjson]
|
|
30
|
+
```
|
|
@@ -87,7 +87,7 @@ class AsyncClient(BaseClient):
|
|
|
87
87
|
json_handler: The module to use for json operations. The options are BuiltinHandler
|
|
88
88
|
(uses the json module from the standard library), or OrjsonHandler (uses orjson).
|
|
89
89
|
Note that in order use orjson the corresponding extra needs to be included.
|
|
90
|
-
Default: BuiltinHandler.
|
|
90
|
+
Default: OrjsonHandler if orjson is installed or BuiltinHandler if not.
|
|
91
91
|
http2: Whether or not to use HTTP/2. Defaults to False.
|
|
92
92
|
"""
|
|
93
93
|
super().__init__(api_key, custom_headers, json_handler)
|
|
@@ -11,6 +11,11 @@ from meilisearch_python_sdk.models.client import (
|
|
|
11
11
|
)
|
|
12
12
|
from meilisearch_python_sdk.types import JsonDict
|
|
13
13
|
|
|
14
|
+
try:
|
|
15
|
+
import orjson
|
|
16
|
+
except ImportError: # pragma: no cover
|
|
17
|
+
orjson = None # type: ignore
|
|
18
|
+
|
|
14
19
|
if TYPE_CHECKING:
|
|
15
20
|
from meilisearch_python_sdk.types import JsonMapping
|
|
16
21
|
|
|
@@ -22,7 +27,13 @@ class BaseClient:
|
|
|
22
27
|
custom_headers: dict[str, str] | None = None,
|
|
23
28
|
json_handler: BuiltinHandler | OrjsonHandler | None = None,
|
|
24
29
|
) -> None:
|
|
25
|
-
|
|
30
|
+
if json_handler is not None:
|
|
31
|
+
self.json_handler = json_handler
|
|
32
|
+
elif orjson is not None:
|
|
33
|
+
self.json_handler = OrjsonHandler()
|
|
34
|
+
else:
|
|
35
|
+
self.json_handler = BuiltinHandler()
|
|
36
|
+
|
|
26
37
|
self._headers: dict[str, str] | None = None
|
|
27
38
|
if api_key:
|
|
28
39
|
self._headers = {"Authorization": f"Bearer {api_key}"}
|
|
@@ -88,7 +88,7 @@ class Client(BaseClient):
|
|
|
88
88
|
json_handler: The module to use for json operations. The options are BuiltinHandler
|
|
89
89
|
(uses the json module from the standard library), or OrjsonHandler (uses orjson).
|
|
90
90
|
Note that in order use orjson the corresponding extra needs to be included.
|
|
91
|
-
Default: BuiltinHandler.
|
|
91
|
+
Default: OrjsonHandler if orjson is installed or BuiltinHandler if not.
|
|
92
92
|
http2: If set to True, the client will use HTTP/2. Defaults to False.
|
|
93
93
|
"""
|
|
94
94
|
super().__init__(api_key, custom_headers, json_handler)
|
|
@@ -53,7 +53,7 @@ class AsyncHttpRequests:
|
|
|
53
53
|
response = await http_method(path)
|
|
54
54
|
elif content_type == "application/json" and not compress:
|
|
55
55
|
response = await http_method(
|
|
56
|
-
path, content=self.json_handler.
|
|
56
|
+
path, content=self.json_handler.dump_bytes(body), headers=headers
|
|
57
57
|
)
|
|
58
58
|
else:
|
|
59
59
|
if compress:
|
|
@@ -141,7 +141,9 @@ class HttpRequests:
|
|
|
141
141
|
if body is None:
|
|
142
142
|
response = http_method(path)
|
|
143
143
|
elif content_type == "application/json" and not compress:
|
|
144
|
-
response = http_method(
|
|
144
|
+
response = http_method(
|
|
145
|
+
path, content=self.json_handler.dump_bytes(body), headers=headers
|
|
146
|
+
)
|
|
145
147
|
else:
|
|
146
148
|
if compress:
|
|
147
149
|
if content_type == "application/json":
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION = "7.4.1"
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
[update]
|
|
2
|
+
exclude_tags = ["*-{alpha,beta,dev,rc}*", "*.{alpha,beta,dev,rc}*"]
|
|
3
|
+
|
|
4
|
+
[[repos]]
|
|
5
|
+
repo = "builtin"
|
|
6
|
+
hooks = [
|
|
7
|
+
{ id = "check-added-large-files" },
|
|
8
|
+
{ id = "check-toml" },
|
|
9
|
+
{ id = "check-yaml" },
|
|
10
|
+
{ id = "end-of-file-fixer" },
|
|
11
|
+
{ id = "no-commit-to-branch" },
|
|
12
|
+
{ id = "trailing-whitespace" },
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
[[repos]]
|
|
16
|
+
repo = "https://github.com/pre-commit/pre-commit-hooks"
|
|
17
|
+
rev = "v6.0.0"
|
|
18
|
+
hooks = [
|
|
19
|
+
{ id = "debug-statements" },
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[[repos]]
|
|
23
|
+
repo = "https://github.com/facebook/pyrefly-pre-commit"
|
|
24
|
+
rev = "1.1.1"
|
|
25
|
+
hooks = [
|
|
26
|
+
{
|
|
27
|
+
id = "pyrefly-check",
|
|
28
|
+
name = "pyrefly",
|
|
29
|
+
pass_filenames = false,
|
|
30
|
+
language = "system",
|
|
31
|
+
entry = "uv run pyrefly check"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
[[repos]]
|
|
36
|
+
repo = "https://github.com/astral-sh/ruff-pre-commit"
|
|
37
|
+
rev = "v0.16.0"
|
|
38
|
+
hooks = [
|
|
39
|
+
{
|
|
40
|
+
id = "ruff-check",
|
|
41
|
+
args = [
|
|
42
|
+
"--fix",
|
|
43
|
+
"--exit-non-zero-on-fix"
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
[[repos]]
|
|
49
|
+
repo = "https://github.com/rvben/rumdl-pre-commit"
|
|
50
|
+
rev = "v0.2.45"
|
|
51
|
+
hooks = [
|
|
52
|
+
{ id = "rumdl-fmt" }
|
|
53
|
+
]
|
|
@@ -42,11 +42,11 @@ dev = [
|
|
|
42
42
|
"pytest-cov==7.1.0",
|
|
43
43
|
"pytest-asyncio==1.4.0",
|
|
44
44
|
"pytest-xdist==3.8.0",
|
|
45
|
-
"prek==0.4.
|
|
46
|
-
"ruff==0.
|
|
45
|
+
"prek==0.4.11",
|
|
46
|
+
"ruff==0.16.0",
|
|
47
47
|
"types-aiofiles==25.1.0.20260518",
|
|
48
48
|
"typing-extensions==4.16.0",
|
|
49
|
-
"zensical==0.0.
|
|
49
|
+
"zensical==0.0.51",
|
|
50
50
|
]
|
|
51
51
|
|
|
52
52
|
[tool.hatch.version]
|
|
@@ -18,7 +18,7 @@ from httpx2 import AsyncClient as HttpxAsyncClient
|
|
|
18
18
|
from meilisearch_python_sdk import AsyncClient, Client
|
|
19
19
|
from meilisearch_python_sdk._task import async_wait_for_task, wait_for_task
|
|
20
20
|
from meilisearch_python_sdk.errors import MeilisearchApiError
|
|
21
|
-
from meilisearch_python_sdk.json_handler import OrjsonHandler
|
|
21
|
+
from meilisearch_python_sdk.json_handler import BuiltinHandler, OrjsonHandler
|
|
22
22
|
from meilisearch_python_sdk.models.settings import (
|
|
23
23
|
Embedders,
|
|
24
24
|
Faceting,
|
|
@@ -59,7 +59,9 @@ def ssl_verify(http2_enabled):
|
|
|
59
59
|
|
|
60
60
|
@pytest.fixture(scope="session")
|
|
61
61
|
async def async_client(base_url, ssl_verify):
|
|
62
|
-
async with AsyncClient(
|
|
62
|
+
async with AsyncClient(
|
|
63
|
+
base_url, MASTER_KEY, json_handler=BuiltinHandler(), verify=ssl_verify
|
|
64
|
+
) as client:
|
|
63
65
|
yield client
|
|
64
66
|
|
|
65
67
|
|
|
@@ -79,7 +81,7 @@ async def async_client_with_plugins(base_url, ssl_verify):
|
|
|
79
81
|
|
|
80
82
|
@pytest.fixture(scope="session")
|
|
81
83
|
def client(base_url, ssl_verify):
|
|
82
|
-
with Client(base_url, MASTER_KEY, verify=ssl_verify) as client:
|
|
84
|
+
with Client(base_url, MASTER_KEY, json_handler=BuiltinHandler(), verify=ssl_verify) as client:
|
|
83
85
|
yield client
|
|
84
86
|
|
|
85
87
|
|
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
from datetime import datetime, timedelta, timezone
|
|
5
|
+
from unittest.mock import patch
|
|
5
6
|
from urllib.parse import quote_plus
|
|
6
7
|
from uuid import uuid4
|
|
7
8
|
|
|
@@ -73,6 +74,23 @@ async def wait_for_dump_creation(
|
|
|
73
74
|
raise TimeoutError
|
|
74
75
|
|
|
75
76
|
|
|
77
|
+
@pytest.mark.parametrize(
|
|
78
|
+
"json_handler, expected",
|
|
79
|
+
((None, OrjsonHandler), (BuiltinHandler(), BuiltinHandler), (OrjsonHandler(), OrjsonHandler)),
|
|
80
|
+
)
|
|
81
|
+
def test_json_handler(json_handler, expected):
|
|
82
|
+
client = AsyncClient("http://localhost", "someKey", json_handler=json_handler)
|
|
83
|
+
|
|
84
|
+
assert isinstance(client.json_handler, expected)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def test_default_json_handler_no_orjson():
|
|
88
|
+
with patch("meilisearch_python_sdk._client._base_client.orjson", None):
|
|
89
|
+
client = AsyncClient("http://localhost", "someKey")
|
|
90
|
+
|
|
91
|
+
assert isinstance(client.json_handler, BuiltinHandler)
|
|
92
|
+
|
|
93
|
+
|
|
76
94
|
@pytest.mark.parametrize(
|
|
77
95
|
"api_key, custom_headers, expected",
|
|
78
96
|
(
|
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from datetime import datetime, timedelta, timezone
|
|
4
4
|
from time import sleep
|
|
5
|
+
from unittest.mock import patch
|
|
5
6
|
from urllib.parse import quote_plus
|
|
6
7
|
from uuid import uuid4
|
|
7
8
|
|
|
@@ -68,6 +69,23 @@ def wait_for_dump_creation(client, dump_uid, timeout_in_ms=10000.0, interval_in_
|
|
|
68
69
|
raise TimeoutError
|
|
69
70
|
|
|
70
71
|
|
|
72
|
+
@pytest.mark.parametrize(
|
|
73
|
+
"json_handler, expected",
|
|
74
|
+
((None, OrjsonHandler), (BuiltinHandler(), BuiltinHandler), (OrjsonHandler(), OrjsonHandler)),
|
|
75
|
+
)
|
|
76
|
+
def test_json_handler(json_handler, expected):
|
|
77
|
+
client = Client("http://localhost", "someKey", json_handler=json_handler)
|
|
78
|
+
|
|
79
|
+
assert isinstance(client.json_handler, expected)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
def test_default_json_handler_no_orjson():
|
|
83
|
+
with patch("meilisearch_python_sdk._client._base_client.orjson", None):
|
|
84
|
+
client = Client("http://localhost", "someKey")
|
|
85
|
+
|
|
86
|
+
assert isinstance(client.json_handler, BuiltinHandler)
|
|
87
|
+
|
|
88
|
+
|
|
71
89
|
@pytest.mark.parametrize(
|
|
72
90
|
"api_key, custom_headers, expected",
|
|
73
91
|
(
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import json
|
|
2
|
+
|
|
3
|
+
import pytest
|
|
4
|
+
|
|
5
|
+
from meilisearch_python_sdk.json_handler import BuiltinHandler, OrjsonHandler
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@pytest.mark.parametrize("json_handler", (BuiltinHandler(), OrjsonHandler()))
|
|
9
|
+
def test_dumps(json_handler):
|
|
10
|
+
result = json_handler.dumps({"id": 1, "title": "Shazam!"})
|
|
11
|
+
|
|
12
|
+
assert isinstance(result, str)
|
|
13
|
+
assert json.loads(result) == {"id": 1, "title": "Shazam!"}
|