meilisearch-python-sdk 4.6.0__tar.gz → 4.7.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.

Files changed (101) hide show
  1. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.github/workflows/testing.yml +4 -4
  2. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.pre-commit-config.yaml +3 -3
  3. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/PKG-INFO +1 -1
  4. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/pydantic.md +9 -6
  5. meilisearch_python_sdk-4.7.1/meilisearch_python_sdk/_version.py +1 -0
  6. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/index.py +2 -2
  7. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/settings.py +1 -0
  8. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/pyproject.toml +10 -9
  9. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/conftest.py +0 -8
  10. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_async_client.py +1 -1
  11. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_async_index.py +1 -0
  12. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_client.py +1 -1
  13. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_index.py +1 -0
  14. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/uv.lock +220 -187
  15. meilisearch_python_sdk-4.6.0/meilisearch_python_sdk/_version.py +0 -1
  16. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.github/FUNDING.yml +0 -0
  17. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.github/release-draft-template.yaml +0 -0
  18. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.github/renovate.json5 +0 -0
  19. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.github/workflows/docs_publish.yml +0 -0
  20. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.github/workflows/nightly_testing.yml +0 -0
  21. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.github/workflows/pypi_publish.yml +0 -0
  22. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.github/workflows/release-drafter.yml +0 -0
  23. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/.gitignore +0 -0
  24. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/CONTRIBUTING.md +0 -0
  25. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/LICENSE +0 -0
  26. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/README.md +0 -0
  27. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/assets/add_in_batches.png +0 -0
  28. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/assets/searches.png +0 -0
  29. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/benchmark/run_benchmark.py +0 -0
  30. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/codecov.yml +0 -0
  31. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/datasets/small_movies.json +0 -0
  32. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docker-compose.https.yml +0 -0
  33. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docker-compose.yml +0 -0
  34. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/.nojekyll +0 -0
  35. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/CNAME +0 -0
  36. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/async_client_api.md +0 -0
  37. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/async_index_api.md +0 -0
  38. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/client_api.md +0 -0
  39. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/css/custom.css +0 -0
  40. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/decorators_api.md +0 -0
  41. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/index.md +0 -0
  42. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/index_api.md +0 -0
  43. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/js/umami.js +0 -0
  44. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/json_handler.md +0 -0
  45. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/docs/plugins.md +0 -0
  46. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/.gitignore +0 -0
  47. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/README.md +0 -0
  48. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/__init__.py +0 -0
  49. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/add_documents_decorator.py +0 -0
  50. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/add_documents_in_batches.py +0 -0
  51. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/async_add_documents_decorator.py +0 -0
  52. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/async_add_documents_in_batches.py +0 -0
  53. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/async_documents_and_search_results.py +0 -0
  54. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/async_search_tracker.py +0 -0
  55. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/async_update_settings.py +0 -0
  56. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/documents_and_search_results.py +0 -0
  57. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/fastapi_example.py +0 -0
  58. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/orjson_example.py +0 -0
  59. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/pyproject.toml +0 -0
  60. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/requirements.txt +0 -0
  61. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/search_tracker.py +0 -0
  62. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/tests/__init__.py +0 -0
  63. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/tests/conftest.py +0 -0
  64. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/tests/test_async_examples.py +0 -0
  65. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/tests/test_examples.py +0 -0
  66. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/ujson_example.py +0 -0
  67. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/examples/update_settings.py +0 -0
  68. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/justfile +0 -0
  69. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/__init__.py +0 -0
  70. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/_batch.py +0 -0
  71. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/_client.py +0 -0
  72. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/_http_requests.py +0 -0
  73. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/_task.py +0 -0
  74. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/_utils.py +0 -0
  75. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/decorators.py +0 -0
  76. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/errors.py +0 -0
  77. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/json_handler.py +0 -0
  78. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/__init__.py +0 -0
  79. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/batch.py +0 -0
  80. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/client.py +0 -0
  81. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/documents.py +0 -0
  82. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/health.py +0 -0
  83. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/index.py +0 -0
  84. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/search.py +0 -0
  85. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/task.py +0 -0
  86. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/models/version.py +0 -0
  87. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/plugins.py +0 -0
  88. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/py.typed +0 -0
  89. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/meilisearch_python_sdk/types.py +0 -0
  90. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/mkdocs.yaml +0 -0
  91. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/__init__.py +0 -0
  92. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_async_documents.py +0 -0
  93. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_async_index_plugins.py +0 -0
  94. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_async_search.py +0 -0
  95. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_decorators.py +0 -0
  96. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_documents.py +0 -0
  97. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_errors.py +0 -0
  98. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_index_plugins.py +0 -0
  99. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_search.py +0 -0
  100. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_utils.py +0 -0
  101. {meilisearch_python_sdk-4.6.0 → meilisearch_python_sdk-4.7.1}/tests/test_version.py +0 -0
@@ -50,7 +50,7 @@ jobs:
50
50
  - name: Test with pytest
51
51
  run: just test-parallel-ci
52
52
  - name: Upload coverage
53
- uses: codecov/codecov-action@v5.4.2
53
+ uses: codecov/codecov-action@v5.4.3
54
54
  with:
55
55
  token: ${{ secrets.CODECOV_TOKEN }}
56
56
  fail_ci_if_error: true
@@ -90,7 +90,7 @@ jobs:
90
90
  - name: Test with pytest
91
91
  run: just test-parallel-ci-http2
92
92
  - name: Upload coverage
93
- uses: codecov/codecov-action@v5.4.2
93
+ uses: codecov/codecov-action@v5.4.3
94
94
  with:
95
95
  token: ${{ secrets.CODECOV_TOKEN }}
96
96
  fail_ci_if_error: true
@@ -118,7 +118,7 @@ jobs:
118
118
  - name: Test with pytest
119
119
  run: just test-no-parallel-ci
120
120
  - name: Upload coverage
121
- uses: codecov/codecov-action@v5.4.2
121
+ uses: codecov/codecov-action@v5.4.3
122
122
  with:
123
123
  token: ${{ secrets.CODECOV_TOKEN }}
124
124
  fail_ci_if_error: true
@@ -158,7 +158,7 @@ jobs:
158
158
  - name: Test with pytest
159
159
  run: just test-no-parallel-ci-http2
160
160
  - name: Upload coverage
161
- uses: codecov/codecov-action@v5.4.2
161
+ uses: codecov/codecov-action@v5.4.3
162
162
  with:
163
163
  token: ${{ secrets.CODECOV_TOKEN }}
164
164
  fail_ci_if_error: true
@@ -9,13 +9,13 @@ 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.15.0
12
+ rev: v1.16.0
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.11.7
17
+ rev: v0.11.13
18
18
  hooks:
19
- - id: ruff
19
+ - id: ruff-check
20
20
  args: [--fix, --exit-non-zero-on-fix]
21
21
  - id: ruff-format
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: meilisearch-python-sdk
3
- Version: 4.6.0
3
+ Version: 4.7.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
@@ -22,10 +22,11 @@ from camel_converter.pydantic_base import CamelBase
22
22
  from meilisearch_python_sdk import Client
23
23
 
24
24
 
25
- # Inheriting from CamelBase will allow your class to automatically convert
26
- # variables returned from the server in camelCase into snake_case. It will
27
- # also make it a Pydantic Model.
28
25
  class Movie(CamelBase):
26
+ """
27
+ Inheriting from CamelBase will allow your class to automatically convert variables returned
28
+ from the server in camelCase into snake_case. It will also make it a Pydantic Model.
29
+ """
29
30
  id: int
30
31
  title: str
31
32
  poster: str
@@ -70,10 +71,12 @@ from camel_converter.pydantic_base import CamelBase
70
71
  from meilisearch_python_sdk import Client
71
72
 
72
73
 
73
- # Inheriting from CamelBase will allow your class to automatically convert
74
- # variables returned from the server in camelCase into snake_case. It will
75
- # also make it a Pydantic Model.
76
74
  class Movie(CamelBase):
75
+ """
76
+ Inheriting from CamelBase will allow your class to automatically convert
77
+ variables returned from the server in camelCase into snake_case. It will
78
+ also make it a Pydantic Model.
79
+ """
77
80
  id: int
78
81
  title: str
79
82
  poster: str
@@ -0,0 +1 @@
1
+ VERSION = "4.7.1"
@@ -3785,7 +3785,7 @@ class AsyncIndex(_BaseIndex):
3785
3785
  """
3786
3786
  response = await self._http_requests.patch(
3787
3787
  f"{self._settings_url}/typo-tolerance",
3788
- typo_tolerance.model_dump(by_alias=True),
3788
+ typo_tolerance.model_dump(by_alias=True, exclude_unset=True),
3789
3789
  compress=compress,
3790
3790
  )
3791
3791
 
@@ -7401,7 +7401,7 @@ class Index(_BaseIndex):
7401
7401
  """
7402
7402
  response = self._http_requests.patch(
7403
7403
  f"{self._settings_url}/typo-tolerance",
7404
- typo_tolerance.model_dump(by_alias=True),
7404
+ typo_tolerance.model_dump(by_alias=True, exclude_unset=True),
7405
7405
  compress=compress,
7406
7406
  )
7407
7407
 
@@ -18,6 +18,7 @@ class TypoTolerance(CamelBase):
18
18
  enabled: bool = True
19
19
  disable_on_attributes: list[str] | None = None
20
20
  disable_on_words: list[str] | None = None
21
+ disable_on_numbers: bool | None = None
21
22
  min_word_size_for_typos: MinWordSizeForTypos | None = None
22
23
 
23
24
 
@@ -41,17 +41,17 @@ all = ["orjson", "ujson"]
41
41
  [dependency-groups]
42
42
  dev = [
43
43
  "mkdocs==1.6.1",
44
- "mkdocs-material==9.6.12",
44
+ "mkdocs-material==9.6.14",
45
45
  "mkdocstrings[python]==0.29.1",
46
- "mypy[faster-cache]==1.15.0",
46
+ "mypy[faster-cache]==1.16.0",
47
47
  "pre-commit==4.2.0",
48
- "pytest==8.3.5",
49
- "pytest-cov==6.1.1",
50
- "pytest-asyncio==0.26.0",
51
- "pytest-xdist==3.6.1",
52
- "ruff==0.11.8",
53
- "types-aiofiles==24.1.0.20250326",
54
- "typing-extensions==4.13.2",
48
+ "pytest==8.4.0",
49
+ "pytest-cov==6.2.1",
50
+ "pytest-asyncio==1.0.0",
51
+ "pytest-xdist==3.7.0",
52
+ "ruff==0.11.13",
53
+ "types-aiofiles==24.1.0.20250606",
54
+ "typing-extensions==4.14.0",
55
55
  "types-ujson==5.10.0.20250326",
56
56
  "meilisearch==0.34.1",
57
57
  "rich==14.0.0",
@@ -70,6 +70,7 @@ minversion = "6.0"
70
70
  addopts = "--cov=meilisearch_python_sdk --cov-report term-missing --no-cov-on-fail --ignore examples"
71
71
  asyncio_mode = "auto"
72
72
  asyncio_default_fixture_loop_scope = "session"
73
+ asyncio_default_test_loop_scope = "session"
73
74
  markers = ["no_parallel"]
74
75
 
75
76
  [tool.mypy]
@@ -8,7 +8,6 @@ from pathlib import Path
8
8
  from uuid import uuid4
9
9
 
10
10
  import pytest
11
- from pytest_asyncio import is_async_test
12
11
 
13
12
  try:
14
13
  import truststore as truststore
@@ -37,13 +36,6 @@ ROOT_PATH = Path().absolute()
37
36
  SMALL_MOVIES_PATH = ROOT_PATH / "datasets" / "small_movies.json"
38
37
 
39
38
 
40
- def pytest_collection_modifyitems(items):
41
- pytest_asyncio_tests = (item for item in items if is_async_test(item))
42
- session_scope_marker = pytest.mark.asyncio(loop_scope="session")
43
- for async_test in pytest_asyncio_tests:
44
- async_test.add_marker(session_scope_marker, append=False)
45
-
46
-
47
39
  def pytest_addoption(parser):
48
40
  parser.addoption("--http2", action="store_true")
49
41
 
@@ -426,7 +426,7 @@ async def test_delete_key(test_key, async_client):
426
426
  @pytest.mark.no_parallel
427
427
  async def test_get_keys(async_client):
428
428
  response = await async_client.get_keys()
429
- assert len(response.results) == 2
429
+ assert len(response.results) >= 3
430
430
 
431
431
 
432
432
  @pytest.mark.no_parallel
@@ -664,6 +664,7 @@ async def test_update_typo_tolerance(compress, async_empty_index):
664
664
  enabled=True,
665
665
  disable_on_attributes=["title"],
666
666
  disable_on_words=["spiderman"],
667
+ disable_on_numbers=True,
667
668
  min_word_size_for_typos=MinWordSizeForTypos(one_typo=10, two_typos=20),
668
669
  )
669
670
  index = await async_empty_index()
@@ -425,7 +425,7 @@ def test_delete_key(test_key, client):
425
425
  @pytest.mark.no_parallel
426
426
  def test_get_keys(client):
427
427
  response = client.get_keys()
428
- assert len(response.results) == 2
428
+ assert len(response.results) >= 3
429
429
 
430
430
 
431
431
  def test_get_keys_offset_and_limit(client):
@@ -651,6 +651,7 @@ def test_update_typo_tolerance(compress, empty_index):
651
651
  enabled=True,
652
652
  disable_on_attributes=["title"],
653
653
  disable_on_words=["spiderman"],
654
+ disable_on_numbers=True,
654
655
  min_word_size_for_typos=MinWordSizeForTypos(one_typo=10, two_typos=20),
655
656
  )
656
657
  index = empty_index()