meilisearch-python-sdk 3.5.1__py3-none-any.whl → 3.6.0__py3-none-any.whl

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.

@@ -24,6 +24,7 @@ from meilisearch_python_sdk.models.health import Health
24
24
  from meilisearch_python_sdk.models.index import IndexInfo
25
25
  from meilisearch_python_sdk.models.search import (
26
26
  Federation,
27
+ FederationMerged,
27
28
  SearchParams,
28
29
  SearchResultsFederated,
29
30
  SearchResultsWithUID,
@@ -587,7 +588,7 @@ class AsyncClient(BaseClient):
587
588
  self,
588
589
  queries: list[SearchParams],
589
590
  *,
590
- federation: Federation | None = None,
591
+ federation: Federation | FederationMerged | None = None,
591
592
  hits_type: Any = JsonDict,
592
593
  ) -> list[SearchResultsWithUID] | SearchResultsFederated:
593
594
  """Multi-index search.
@@ -628,10 +629,18 @@ class AsyncClient(BaseClient):
628
629
  else:
629
630
  processed_queries = [x.model_dump(by_alias=True) for x in queries]
630
631
 
632
+ if federation:
633
+ federation_payload = federation.model_dump(by_alias=True)
634
+ if federation.facets_by_index is None:
635
+ del federation_payload["facetsByIndex"]
636
+
637
+ else:
638
+ federation_payload = None
639
+
631
640
  response = await self._http_requests.post(
632
641
  url,
633
642
  body={
634
- "federation": federation.model_dump(by_alias=True) if federation else None,
643
+ "federation": federation_payload,
635
644
  "queries": processed_queries,
636
645
  },
637
646
  )
@@ -1396,7 +1405,7 @@ class Client(BaseClient):
1396
1405
  self,
1397
1406
  queries: list[SearchParams],
1398
1407
  *,
1399
- federation: Federation | None = None,
1408
+ federation: Federation | FederationMerged | None = None,
1400
1409
  hits_type: Any = JsonDict,
1401
1410
  ) -> list[SearchResultsWithUID] | SearchResultsFederated:
1402
1411
  """Multi-index search.
@@ -1437,10 +1446,18 @@ class Client(BaseClient):
1437
1446
  else:
1438
1447
  processed_queries = [x.model_dump(by_alias=True) for x in queries]
1439
1448
 
1449
+ if federation:
1450
+ federation_payload = federation.model_dump(by_alias=True)
1451
+ if federation.facets_by_index is None:
1452
+ del federation_payload["facetsByIndex"]
1453
+
1454
+ else:
1455
+ federation_payload = None
1456
+
1440
1457
  response = self._http_requests.post(
1441
1458
  url,
1442
1459
  body={
1443
- "federation": federation.model_dump(by_alias=True) if federation else None,
1460
+ "federation": federation_payload,
1444
1461
  "queries": processed_queries,
1445
1462
  },
1446
1463
  )
@@ -1 +1 @@
1
- VERSION = "3.5.1"
1
+ VERSION = "3.6.0"
@@ -3079,7 +3079,11 @@ class AsyncIndex(_BaseIndex):
3079
3079
  >>> index = client.index("movies")
3080
3080
  >>> await index.update_settings(new_settings)
3081
3081
  """
3082
- body_dict = {k: v for k, v in body.model_dump(by_alias=True).items() if v is not None}
3082
+ body_dict = {
3083
+ k: v
3084
+ for k, v in body.model_dump(by_alias=True, exclude_none=True).items()
3085
+ if v is not None
3086
+ }
3083
3087
  response = await self._http_requests.patch(self._settings_url, body_dict, compress=compress)
3084
3088
 
3085
3089
  return TaskInfo(**response.json())
@@ -4270,7 +4274,9 @@ class AsyncIndex(_BaseIndex):
4270
4274
  payload = {}
4271
4275
  for key, embedder in embedders.embedders.items():
4272
4276
  payload[key] = {
4273
- k: v for k, v in embedder.model_dump(by_alias=True).items() if v is not None
4277
+ k: v
4278
+ for k, v in embedder.model_dump(by_alias=True, exclude_none=True).items()
4279
+ if v is not None
4274
4280
  }
4275
4281
 
4276
4282
  response = await self._http_requests.patch(
@@ -6498,7 +6504,11 @@ class Index(_BaseIndex):
6498
6504
  >>> index = client.index("movies")
6499
6505
  >>> index.update_settings(new_settings)
6500
6506
  """
6501
- body_dict = {k: v for k, v in body.model_dump(by_alias=True).items() if v is not None}
6507
+ body_dict = {
6508
+ k: v
6509
+ for k, v in body.model_dump(by_alias=True, exclude_none=True).items()
6510
+ if v is not None
6511
+ }
6502
6512
  response = self._http_requests.patch(self._settings_url, body_dict, compress=compress)
6503
6513
 
6504
6514
  return TaskInfo(**response.json())
@@ -7672,7 +7682,9 @@ class Index(_BaseIndex):
7672
7682
  payload = {}
7673
7683
  for key, embedder in embedders.embedders.items():
7674
7684
  payload[key] = {
7675
- k: v for k, v in embedder.model_dump(by_alias=True).items() if v is not None
7685
+ k: v
7686
+ for k, v in embedder.model_dump(by_alias=True, exclude_none=True).items()
7687
+ if v is not None
7676
7688
  }
7677
7689
 
7678
7690
  response = self._http_requests.patch(
@@ -24,12 +24,24 @@ class FacetSearchResults(CamelBase):
24
24
 
25
25
  class Hybrid(CamelBase):
26
26
  semantic_ratio: float
27
- embedder: str | None = None
27
+ embedder: str
28
+
29
+
30
+ class MergeFacets(CamelBase):
31
+ max_values_per_facet: int
28
32
 
29
33
 
30
34
  class Federation(CamelBase):
31
35
  limit: int = 20
32
36
  offset: int = 0
37
+ facets_by_index: dict[str, list[str]] | None = None
38
+
39
+
40
+ class FederationMerged(CamelBase):
41
+ limit: int = 20
42
+ offset: int = 0
43
+ facets_by_index: dict[str, list[str]] | None = None
44
+ merge_facets: MergeFacets | None
33
45
 
34
46
 
35
47
  class SearchParams(CamelBase):
@@ -99,6 +111,7 @@ class SearchResultsFederated(CamelBase, Generic[T]):
99
111
  page: int | None = None
100
112
  hits_per_page: int | None = None
101
113
  semantic_hit_count: int | None = None
114
+ facets_by_index: JsonDict | None = None
102
115
 
103
116
 
104
117
  class SimilarSearchResults(CamelBase, Generic[T]):
@@ -49,18 +49,20 @@ class Distribution(CamelBase):
49
49
  class OpenAiEmbedder(CamelBase):
50
50
  source: str = "openAi"
51
51
  url: str | None = None
52
- model: str | None = None # Defaults to text-embedding-ada-002
53
- dimensions: int | None = None # Uses the model default
54
- api_key: str | None = None # Can be provided through a CLI option or environment variable
52
+ model: str | None = None
53
+ dimensions: int | None = None
54
+ api_key: str | None = None
55
55
  document_template: str | None = None
56
+ document_template_max_bytes: int | None = None
56
57
  distribution: Distribution | None = None
57
58
 
58
59
 
59
60
  class HuggingFaceEmbedder(CamelBase):
60
61
  source: str = "huggingFace"
61
- model: str | None = None # Defaults to BAAI/bge-base-en-v1.5
62
+ model: str | None = None
62
63
  revision: str | None = None
63
64
  document_template: str | None = None
65
+ document_template_max_bytes: int | None = None
64
66
  distribution: Distribution | None = None
65
67
 
66
68
 
@@ -71,6 +73,7 @@ class OllamaEmbedder(CamelBase):
71
73
  model: str
72
74
  dimensions: int | None = None
73
75
  document_template: str | None = None
76
+ document_template_max_bytes: int | None = None
74
77
  distribution: Distribution | None = None
75
78
 
76
79
 
@@ -80,6 +83,7 @@ class RestEmbedder(CamelBase):
80
83
  api_key: str | None = None
81
84
  dimensions: int
82
85
  document_template: str | None = None
86
+ document_template_max_bytes: int | None = None
83
87
  distribution: Distribution | None = None
84
88
  headers: JsonDict | None = None
85
89
  request: JsonDict
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: meilisearch-python-sdk
3
- Version: 3.5.1
3
+ Version: 3.6.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
@@ -41,7 +41,7 @@ Classifier: Programming Language :: Python :: 3.13
41
41
  Classifier: Typing :: Typed
42
42
  Requires-Python: >=3.9
43
43
  Requires-Dist: aiofiles>=0.7
44
- Requires-Dist: camel-converter>=1.0.0
44
+ Requires-Dist: camel-converter[pydantic]>=1.0.0
45
45
  Requires-Dist: eval-type-backport>=0.2.0; python_version < '3.10'
46
46
  Requires-Dist: httpx[http2]>=0.17
47
47
  Requires-Dist: pydantic>=2.0.0
@@ -1,12 +1,12 @@
1
1
  meilisearch_python_sdk/__init__.py,sha256=SB0Jlm6FwT13J9xasZKseZzTWBk0hkfe1CWyWmIIZnE,258
2
- meilisearch_python_sdk/_client.py,sha256=ncMe6U5FPQArYg-HkSGSaYeul4UG9Vn4l0VW04Tm4Ek,69846
2
+ meilisearch_python_sdk/_client.py,sha256=HvZ74xfKtOfxwujsj0INdlBycW2vMakQfWw5IbTrpX8,70330
3
3
  meilisearch_python_sdk/_http_requests.py,sha256=TwpqsOvfgaJ1lQXwam1q1_UC6NvRWy4m9W3c5KNe0RI,6741
4
4
  meilisearch_python_sdk/_task.py,sha256=WpUwj-CuFtMbbljNOrFUGzp41k5LuZ_riw08IWLwp4M,12347
5
5
  meilisearch_python_sdk/_utils.py,sha256=k6SYMJSiVjfF-vlhQRMaE1ziJsVf5FrL94mFwrMfdLY,957
6
- meilisearch_python_sdk/_version.py,sha256=fNESzY1Zz6j5JD0Dc9CJa1tGZhNAuBB_A173PRAyW-4,18
6
+ meilisearch_python_sdk/_version.py,sha256=hT6veETpVNpRqhpKNh8-nn9DTHHxeJX2gMeYNPF1jGk,18
7
7
  meilisearch_python_sdk/decorators.py,sha256=njMn40P-qOzKGGQLCDpsBKWyj2ai10s4XG4IUBSHoD4,8674
8
8
  meilisearch_python_sdk/errors.py,sha256=0sAKYt47-zFpKsEU6W8Qnvf4uHBynKtlGPpPl-5laSA,2085
9
- meilisearch_python_sdk/index.py,sha256=W5I4VA5DhF_MFzvC2aS1a9yOXdJzmnYjOzBc5YtN21A,330764
9
+ meilisearch_python_sdk/index.py,sha256=RWbJAKajw_wI96Zifjc4crmn0HDvwxfUiPYobIXx7p8,330996
10
10
  meilisearch_python_sdk/json_handler.py,sha256=q_87zSnJfDNuVEI9cEvuOQOGBC7AGWJMEqCh2kGAAqA,2107
11
11
  meilisearch_python_sdk/plugins.py,sha256=YySzTuVr4IrogTgrP8q-gZPsew8TwedopjWnTj5eV48,3607
12
12
  meilisearch_python_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -16,11 +16,11 @@ meilisearch_python_sdk/models/client.py,sha256=wBZzO1n6DDQq7F9Acf1rCWYEYRY19g04u
16
16
  meilisearch_python_sdk/models/documents.py,sha256=eT3FHrPND-g2IzNRyOHQApTTJ1WbFcGlqgxZ6aKrRgI,247
17
17
  meilisearch_python_sdk/models/health.py,sha256=hvruti7ylsk7bAh8RPOhTPcRrjx6MPgdkDFX9vZ5Qks,95
18
18
  meilisearch_python_sdk/models/index.py,sha256=GGwuhx5Wsn5iyj1ov3f4eWjfw6ttM8WzvyrnSsC4vRg,1132
19
- meilisearch_python_sdk/models/search.py,sha256=LH64_TunWxfCJOhxMCnFA-bMZOf7fVx6s3G9qhnfDTc,3121
20
- meilisearch_python_sdk/models/settings.py,sha256=A8SocaQldrdo1chvxhS522zZR4foJcvZy7Cg2GiBi_M,3968
19
+ meilisearch_python_sdk/models/search.py,sha256=Wmv8LmhwMVGoZnndkhw16RuoxxC203jlcOO2Q_VZIU4,3439
20
+ meilisearch_python_sdk/models/settings.py,sha256=wg9nmmZd9cP2WrgtHqIgLXdJH4BlCmAuS793QRK6cjc,4007
21
21
  meilisearch_python_sdk/models/task.py,sha256=P3NLaZhrY8H02Q9lDEkoq-3Z6_qGESglOxs4dNRyMWg,2100
22
22
  meilisearch_python_sdk/models/version.py,sha256=YDu-aj5H-d6nSaWRTXzlwWghmZAoiknaw250UyEd48I,215
23
- meilisearch_python_sdk-3.5.1.dist-info/METADATA,sha256=l64dxMChQh-Rzl5-iCIrqHeSvwsb6VkwKwhOGtedfRE,9761
24
- meilisearch_python_sdk-3.5.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
25
- meilisearch_python_sdk-3.5.1.dist-info/licenses/LICENSE,sha256=xVzevI1TrlKfM0plmJ7vfK1Muu0V9n-dGE8RnDrOFlM,1069
26
- meilisearch_python_sdk-3.5.1.dist-info/RECORD,,
23
+ meilisearch_python_sdk-3.6.0.dist-info/METADATA,sha256=LDdB-Iz1FUXpvVoAqfCFL1vsA30zF4-BZiH3ANJiu3I,9771
24
+ meilisearch_python_sdk-3.6.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
25
+ meilisearch_python_sdk-3.6.0.dist-info/licenses/LICENSE,sha256=xVzevI1TrlKfM0plmJ7vfK1Muu0V9n-dGE8RnDrOFlM,1069
26
+ meilisearch_python_sdk-3.6.0.dist-info/RECORD,,