meilisearch-python-sdk 7.3.0__tar.gz → 7.4.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.
Files changed (112) hide show
  1. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/.github/workflows/docs_publish.yml +2 -2
  2. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/.github/workflows/nightly_testing.yml +2 -2
  3. meilisearch_python_sdk-7.4.0/.github/workflows/prek_update.yml +36 -0
  4. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/.github/workflows/pypi_publish.yml +2 -2
  5. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/.github/workflows/testing.yml +20 -18
  6. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/PKG-INFO +7 -2
  7. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/README.md +6 -1
  8. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docker-compose.https.yml +1 -1
  9. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docker-compose.yml +1 -1
  10. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/index.md +15 -0
  11. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/json_handler.md +3 -0
  12. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/_client/_async_client.py +1 -1
  13. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/_client/_base_client.py +12 -1
  14. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/_client/_client.py +1 -1
  15. meilisearch_python_sdk-7.4.0/meilisearch_python_sdk/_version.py +1 -0
  16. meilisearch_python_sdk-7.4.0/prek.toml +53 -0
  17. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/pyproject.toml +3 -3
  18. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/conftest.py +5 -3
  19. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_async_client.py +18 -0
  20. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_client.py +18 -0
  21. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/uv.lock +69 -69
  22. meilisearch_python_sdk-7.3.0/.pre-commit-config.yaml +0 -30
  23. meilisearch_python_sdk-7.3.0/meilisearch_python_sdk/_version.py +0 -1
  24. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/.github/FUNDING.yml +0 -0
  25. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/.github/release-draft-template.yaml +0 -0
  26. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/.github/renovate.json5 +0 -0
  27. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/.github/workflows/release-drafter.yml +0 -0
  28. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/.gitignore +0 -0
  29. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/CONTRIBUTING.md +0 -0
  30. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/LICENSE +0 -0
  31. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/assets/add_in_batches.png +0 -0
  32. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/assets/searches.png +0 -0
  33. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/codecov.yml +0 -0
  34. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/datasets/small_movies.json +0 -0
  35. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/.nojekyll +0 -0
  36. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/CNAME +0 -0
  37. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/async_client_api.md +0 -0
  38. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/async_index_api.md +0 -0
  39. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/client_api.md +0 -0
  40. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/css/custom.css +0 -0
  41. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/decorators_api.md +0 -0
  42. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/index_api.md +0 -0
  43. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/js/umami.js +0 -0
  44. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/overrides/partials/footer.html +0 -0
  45. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/plugins.md +0 -0
  46. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/docs/pydantic.md +0 -0
  47. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/.gitignore +0 -0
  48. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/README.md +0 -0
  49. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/__init__.py +0 -0
  50. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/add_documents_decorator.py +0 -0
  51. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/add_documents_in_batches.py +0 -0
  52. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/async_add_documents_decorator.py +0 -0
  53. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/async_add_documents_in_batches.py +0 -0
  54. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/async_documents_and_search_results.py +0 -0
  55. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/async_search_tracker.py +0 -0
  56. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/async_update_settings.py +0 -0
  57. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/documents_and_search_results.py +0 -0
  58. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/fastapi_example.py +0 -0
  59. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/orjson_example.py +0 -0
  60. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/pyproject.toml +0 -0
  61. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/requirements.txt +0 -0
  62. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/search_tracker.py +0 -0
  63. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/tests/__init__.py +0 -0
  64. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/tests/conftest.py +0 -0
  65. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/tests/test_async_examples.py +0 -0
  66. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/tests/test_examples.py +0 -0
  67. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/examples/update_settings.py +0 -0
  68. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/justfile +0 -0
  69. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/__init__.py +0 -0
  70. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/_batch.py +0 -0
  71. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/_client/__init__.py +0 -0
  72. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/_client/_common.py +0 -0
  73. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/_http_requests.py +0 -0
  74. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/_task.py +0 -0
  75. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/_utils.py +0 -0
  76. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/decorators.py +0 -0
  77. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/errors.py +0 -0
  78. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/index/__init__.py +0 -0
  79. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/index/_common.py +0 -0
  80. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/index/async_index.py +0 -0
  81. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/index/index.py +0 -0
  82. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/json_handler.py +0 -0
  83. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/__init__.py +0 -0
  84. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/batch.py +0 -0
  85. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/client.py +0 -0
  86. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/documents.py +0 -0
  87. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/health.py +0 -0
  88. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/index.py +0 -0
  89. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/search.py +0 -0
  90. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/settings.py +0 -0
  91. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/task.py +0 -0
  92. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/version.py +0 -0
  93. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/models/webhook.py +0 -0
  94. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/plugins.py +0 -0
  95. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/py.typed +0 -0
  96. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/meilisearch_python_sdk/types.py +0 -0
  97. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/mkdocs.yaml +0 -0
  98. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/__init__.py +0 -0
  99. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_async_documents.py +0 -0
  100. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_async_index.py +0 -0
  101. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_async_index_plugins.py +0 -0
  102. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_async_search.py +0 -0
  103. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_decorators.py +0 -0
  104. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_documents.py +0 -0
  105. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_errors.py +0 -0
  106. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_http_requests.py +0 -0
  107. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_index.py +0 -0
  108. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_index_plugins.py +0 -0
  109. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_search.py +0 -0
  110. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_settings_models.py +0 -0
  111. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_utils.py +0 -0
  112. {meilisearch_python_sdk-7.3.0 → meilisearch_python_sdk-7.4.0}/tests/test_version.py +0 -0
@@ -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@v8.3.2
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@v6
23
+ uses: actions/setup-python@v7
24
24
  with:
25
25
  python-version: ${{ env.PYTHON_VERSION }}
26
26
  - name: Install Dependencies
@@ -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@v8.3.2
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@v6
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
@@ -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@v8.3.2
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@v6
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@v8.3.2
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@v6
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@v8.3.2
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@v6
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@v8.3.2
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@v6
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@v8.3.2
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@v6
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@v8.3.2
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@v6
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@v6
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@v8.3.2
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@v6
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.0
3
+ Version: 7.4.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
@@ -53,7 +53,6 @@ Description-Content-Type: text/markdown
53
53
  # Meilisearch Python SDK
54
54
 
55
55
  [![Tests Status](https://github.com/sanders41/meilisearch-python-sdk/actions/workflows/testing.yml/badge.svg?branch=main&event=push)](https://github.com/sanders41/meilisearch-python-sdk/actions?query=workflow%3ATesting+branch%3Amain+event%3Apush)
56
- [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/sanders41/meilisearch-python-sdk/main.svg)](https://results.pre-commit.ci/latest/github/sanders41/meilisearch-python-sdk/main)
57
56
  [![Coverage](https://codecov.io/github/sanders41/meilisearch-python-sdk/coverage.svg?branch=main)](https://codecov.io/gh/sanders41/meilisearch-python-sdk)
58
57
  [![PyPI version](https://badge.fury.io/py/meilisearch-python-sdk.svg)](https://badge.fury.io/py/meilisearch-python-sdk)
59
58
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/meilisearch-python-sdk?color=5cc141)](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
  [![Tests Status](https://github.com/sanders41/meilisearch-python-sdk/actions/workflows/testing.yml/badge.svg?branch=main&event=push)](https://github.com/sanders41/meilisearch-python-sdk/actions?query=workflow%3ATesting+branch%3Amain+event%3Apush)
4
- [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/sanders41/meilisearch-python-sdk/main.svg)](https://results.pre-commit.ci/latest/github/sanders41/meilisearch-python-sdk/main)
5
4
  [![Coverage](https://codecov.io/github/sanders41/meilisearch-python-sdk/coverage.svg?branch=main)](https://codecov.io/gh/sanders41/meilisearch-python-sdk)
6
5
  [![PyPI version](https://badge.fury.io/py/meilisearch-python-sdk.svg)](https://badge.fury.io/py/meilisearch-python-sdk)
7
6
  [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/meilisearch-python-sdk?color=5cc141)](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
@@ -1,6 +1,6 @@
1
1
  services:
2
2
  meilisearch:
3
- image: getmeili/meilisearch:v1.49.0
3
+ image: getmeili/meilisearch:v1.51.0
4
4
  ports:
5
5
  - "7700:7700"
6
6
  environment:
@@ -1,6 +1,6 @@
1
1
  services:
2
2
  meilisearch:
3
- image: getmeili/meilisearch:v1.49.0
3
+ image: getmeili/meilisearch:v1.51.0
4
4
  ports:
5
5
  - "7700:7700"
6
6
  environment:
@@ -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
+ ```
@@ -44,6 +44,9 @@ with Client("http://127.0.0.1:7700", json_handler=BuiltinHandler(serializer=Cust
44
44
 
45
45
  ## orjson
46
46
 
47
+ Note that if orjson is installed and no `json_handler` is secified, orjson is used as the handler
48
+ by default.
49
+
47
50
  ### Example
48
51
 
49
52
  ```py
@@ -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
- self.json_handler = json_handler if json_handler else BuiltinHandler()
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)
@@ -0,0 +1 @@
1
+ VERSION = "7.4.0"
@@ -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.9",
46
- "ruff==0.15.21",
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.50",
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(base_url, MASTER_KEY, verify=ssl_verify) as client:
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
  (