Skip to content

Commit 14cac0e

Browse files
authored
Merge branch 'main' into release-v0.23.0
2 parents db0b2ad + 11cfadd commit 14cac0e

12 files changed

+397
-73
lines changed

.code-samples.meilisearch.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -623,8 +623,8 @@ get_all_tasks_filtering_1: |-
623623
client.get_tasks({'indexUid': ['movies']})
624624
get_all_tasks_filtering_2: |-
625625
client.get_tasks({
626-
'status': ['succeeded', 'failed'],
627-
'type': ['documentAdditionOrUpdate']
626+
'statuses': ['succeeded', 'failed'],
627+
'types': ['documentAdditionOrUpdate']
628628
})
629629
get_all_tasks_paginating_1: |-
630630
client.get_tasks({

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ index.search(
197197

198198
## 🤖 Compatibility with Meilisearch
199199

200-
This package only guarantees the compatibility with the [version v0.29.0 of Meilisearch](https://github.com/meilisearch/meilisearch/releases/tag/v0.29.0).
200+
This package only guarantees the compatibility with the [version v0.30.0 of Meilisearch](https://github.com/meilisearch/meilisearch/releases/tag/v0.30.0).
201201

202202
## 💡 Learn more
203203

meilisearch/client.py

Lines changed: 64 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
from meilisearch.config import Config
1414
from meilisearch.errors import MeiliSearchError
1515
from meilisearch.index import Index
16-
from meilisearch.task import get_task, get_tasks, wait_for_task
16+
from meilisearch.models.task import TaskInfo
17+
from meilisearch.task import cancel_tasks, delete_tasks, get_task, get_tasks, wait_for_task
1718

1819

1920
class Client:
@@ -399,6 +400,27 @@ def create_dump(self) -> dict[str, str]:
399400
"""
400401
return self.http.post(self.config.paths.dumps)
401402

403+
def swap_indexes(self, parameters: list[dict[str, list[str]]]) -> TaskInfo:
404+
"""Swap two indexes.
405+
406+
Parameters
407+
----------
408+
indexes:
409+
List of indexes to swap (ex: [{"indexes": ["indexA", "indexB"]}).
410+
411+
Returns
412+
-------
413+
task_info:
414+
TaskInfo instance containing information about a task to track the progress of an asynchronous process.
415+
https://docs.meilisearch.com/reference/api/tasks.html#get-one-task
416+
417+
Raises
418+
------
419+
MeiliSearchApiError
420+
An error containing details about why Meilisearch can't process your request. Meilisearch error codes are described here: https://docs.meilisearch.com/errors/#meilisearch-errors
421+
"""
422+
return TaskInfo(**self.http.post(self.config.paths.swap, parameters))
423+
402424
def get_tasks(
403425
self, parameters: dict[str, Any] | None = None
404426
) -> dict[str, list[dict[str, Any]]]:
@@ -407,8 +429,7 @@ def get_tasks(
407429
Parameters
408430
----------
409431
parameters (optional):
410-
parameters accepted by the get tasks route: https://docs.meilisearch.com/reference/api/tasks.html#get-all-tasks.
411-
`indexUid` should be set as a List.
432+
parameters accepted by the get tasks route: https://docs.meilisearch.com/reference/api/tasks.html#get-tasks.
412433
413434
Returns
414435
-------
@@ -442,6 +463,46 @@ def get_task(self, uid: int) -> dict[str, Any]:
442463
"""
443464
return get_task(self.config, uid)
444465

466+
def cancel_tasks(self, parameters: dict[str, Any]) -> TaskInfo:
467+
"""Cancel a list of enqueued or processing tasks.
468+
469+
Parameters
470+
----------
471+
parameters (optional):
472+
parameters accepted by the cancel tasks route:https://docs.meilisearch.com/reference/api/tasks.html#cancel-tasks.
473+
474+
Returns
475+
-------
476+
task_info:
477+
TaskInfo instance containing information about a task to track the progress of an asynchronous process.
478+
https://docs.meilisearch.com/reference/api/tasks.html#get-one-task
479+
480+
Raises
481+
------
482+
MeiliSearchApiError
483+
An error containing details about why Meilisearch can't process your request. Meilisearch error codes are described here: https://docs.meilisearch.com/errors/#meilisearch-errors
484+
"""
485+
return cancel_tasks(self.config, parameters=parameters)
486+
487+
def delete_tasks(self, parameters: dict[str, Any]) -> TaskInfo:
488+
"""Delete a list of finished tasks.
489+
490+
Parameters
491+
----------
492+
parameters (optional):
493+
parameters accepted by the delete tasks route:https://docs.meilisearch.com/reference/api/tasks.html#delete-task.
494+
Returns
495+
-------
496+
task_info:
497+
TaskInfo instance containing information about a task to track the progress of an asynchronous process.
498+
https://docs.meilisearch.com/reference/api/tasks.html#get-one-task
499+
Raises
500+
------
501+
MeiliSearchApiError
502+
An error containing details about why Meilisearch can't process your request. Meilisearch error codes are described here: https://docs.meilisearch.com/errors/#meilisearch-errors
503+
"""
504+
return delete_tasks(self.config, parameters=parameters)
505+
445506
def wait_for_task(
446507
self,
447508
uid: int,

meilisearch/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class Paths:
2929
dumps = "dumps"
3030
pagination = "pagination"
3131
faceting = "faceting"
32+
swap = "swap-indexes"
3233

3334
def __init__(self, url: str, api_key: str | None = None, timeout: int | None = None) -> None:
3435
"""

0 commit comments

Comments
 (0)