Skip to content

Commit f7340ef

Browse files
authored
Merge pull request #1179 from jawad-khan/jawad/update-index-apis
feat: add `custom_metadata` in index APIs
2 parents 01647ae + 4b15604 commit f7340ef

5 files changed

Lines changed: 275 additions & 66 deletions

File tree

meilisearch/client.py

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,13 @@ def __init__(
8181

8282
self.task_handler = TaskHandler(self.config, custom_headers)
8383

84-
def create_index(self, uid: str, options: Optional[Mapping[str, Any]] = None) -> TaskInfo:
84+
def create_index(
85+
self,
86+
uid: str,
87+
options: Optional[Mapping[str, Any]] = None,
88+
*,
89+
metadata: Optional[str] = None,
90+
) -> TaskInfo:
8591
"""Create an index.
8692
8793
Parameters
@@ -90,6 +96,8 @@ def create_index(self, uid: str, options: Optional[Mapping[str, Any]] = None) ->
9096
UID of the index.
9197
options (optional): dict
9298
Options passed during index creation (ex: primaryKey).
99+
metadata (optional):
100+
Custom metadata string to attach to the task.
93101
94102
Returns
95103
-------
@@ -102,15 +110,19 @@ def create_index(self, uid: str, options: Optional[Mapping[str, Any]] = None) ->
102110
MeilisearchApiError
103111
An error containing details about why Meilisearch can't process your request. Meilisearch error codes are described here: https://www.meilisearch.com/docs/reference/errors/error_codes#meilisearch-errors
104112
"""
105-
return Index.create(self.config, uid, options, custom_headers=self._custom_headers)
113+
return Index.create(
114+
self.config, uid, options, custom_headers=self._custom_headers, metadata=metadata
115+
)
106116

107-
def delete_index(self, uid: str) -> TaskInfo:
117+
def delete_index(self, uid: str, *, metadata: Optional[str] = None) -> TaskInfo:
108118
"""Deletes an index
109119
110120
Parameters
111121
----------
112122
uid:
113123
UID of the index.
124+
metadata (optional):
125+
Custom metadata string to attach to the task.
114126
115127
Returns
116128
-------
@@ -124,7 +136,10 @@ def delete_index(self, uid: str) -> TaskInfo:
124136
An error containing details about why Meilisearch can't process your request. Meilisearch error codes are described here: https://www.meilisearch.com/docs/reference/errors/error_codes#meilisearch-errors
125137
"""
126138

127-
task = self.http.delete(f"{self.config.paths.index}/{uid}")
139+
url = f"{self.config.paths.index}/{uid}"
140+
if metadata is not None:
141+
url += f"?{parse.urlencode({'customMetadata': metadata})}"
142+
task = self.http.delete(url)
128143

129144
return TaskInfo(**task)
130145

@@ -714,13 +729,17 @@ def get_task(self, uid: int) -> Task:
714729
"""
715730
return self.task_handler.get_task(uid)
716731

717-
def cancel_tasks(self, parameters: MutableMapping[str, Any]) -> TaskInfo:
732+
def cancel_tasks(
733+
self, parameters: MutableMapping[str, Any], *, metadata: Optional[str] = None
734+
) -> TaskInfo:
718735
"""Cancel a list of enqueued or processing tasks.
719736
720737
Parameters
721738
----------
722739
parameters:
723740
parameters accepted by the cancel tasks route:https://www.meilisearch.com/docs/reference/api/tasks#cancel-tasks.
741+
metadata (optional):
742+
Custom metadata string to attach to the task.
724743
725744
Returns
726745
-------
@@ -733,15 +752,19 @@ def cancel_tasks(self, parameters: MutableMapping[str, Any]) -> TaskInfo:
733752
MeilisearchApiError
734753
An error containing details about why Meilisearch can't process your request. Meilisearch error codes are described here: https://www.meilisearch.com/docs/reference/errors/error_codes#meilisearch-errors
735754
"""
736-
return self.task_handler.cancel_tasks(parameters=parameters)
755+
return self.task_handler.cancel_tasks(parameters=parameters, metadata=metadata)
737756

738-
def delete_tasks(self, parameters: MutableMapping[str, Any]) -> TaskInfo:
757+
def delete_tasks(
758+
self, parameters: MutableMapping[str, Any], *, metadata: Optional[str] = None
759+
) -> TaskInfo:
739760
"""Delete a list of finished tasks.
740761
741762
Parameters
742763
----------
743764
parameters (optional):
744765
parameters accepted by the delete tasks route:https://www.meilisearch.com/docs/reference/api/tasks#delete-task.
766+
metadata (optional):
767+
Custom metadata string to attach to the task.
745768
Returns
746769
-------
747770
task_info:
@@ -752,7 +775,7 @@ def delete_tasks(self, parameters: MutableMapping[str, Any]) -> TaskInfo:
752775
MeilisearchApiError
753776
An error containing details about why Meilisearch can't process your request. Meilisearch error codes are described here: https://www.meilisearch.com/docs/reference/errors/error_codes#meilisearch-errors
754777
"""
755-
return self.task_handler.delete_tasks(parameters=parameters)
778+
return self.task_handler.delete_tasks(parameters=parameters, metadata=metadata)
756779

757780
def wait_for_task(
758781
self,

0 commit comments

Comments
 (0)