Skip to content
Merged
Show file tree
Hide file tree
Changes from 22 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6a53ffc
Update README.md
meili-bot Nov 7, 2022
c54dbf0
Rename some task filter and fix tests for v0.30.0
alallema Nov 16, 2022
e0baeeb
Add task cancel API for v0.30.0
alallema Nov 16, 2022
a5d40a2
Add pagination feature for v0.30.0
alallema Nov 16, 2022
010eb99
Improve tests
alallema Nov 17, 2022
157fe95
Update meilisearch/client.py
alallema Nov 21, 2022
aad076e
Update meilisearch/task.py
alallema Nov 21, 2022
edfb804
Update meilisearch/task.py
alallema Nov 21, 2022
6b2267c
Modification due to review
alallema Nov 21, 2022
12569d9
Modification due to review
alallema Nov 21, 2022
119d841
Add swap indexes feature for v0.30.0
alallema Nov 21, 2022
2e800ec
Empty-Commit
alallema Nov 21, 2022
3ecdb22
Update tests/client/test_client_task_meilisearch.py
alallema Nov 21, 2022
2adb138
Update tests/client/test_client_task_meilisearch.py
alallema Nov 21, 2022
6d5e36a
Empty-Commit
alallema Nov 21, 2022
753a826
Merge pull request #596 from meilisearch/add_cancel_api_for_v0.30.0
alallema Nov 21, 2022
463ea19
Add delete task api for v0.30.0
alallema Nov 16, 2022
8f4d1ef
Improve tests
alallema Nov 21, 2022
441b507
Merge pull request #595 from meilisearch/add_pagination_feature_for_v…
alallema Nov 28, 2022
55ee4ae
Merge branch 'bump-meilisearch-v0.30.0' into add_swap_indexes_feature…
alallema Nov 28, 2022
ec64322
Merge pull request #598 from meilisearch/add_delete_task_api_for_v0.30.0
alallema Nov 28, 2022
6f3e0d8
Merge pull request #603 from meilisearch/add_swap_indexes_feature_for…
alallema Nov 28, 2022
d07cb1e
Merge branch 'main' into bump-meilisearch-v0.30.0
alallema Nov 28, 2022
6571364
Fix flacky test
alallema Nov 28, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .code-samples.meilisearch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -623,8 +623,8 @@ get_all_tasks_filtering_1: |-
client.get_tasks({'indexUid': ['movies']})
get_all_tasks_filtering_2: |-
client.get_tasks({
'status': ['succeeded', 'failed'],
'type': ['documentAdditionOrUpdate']
'statuses': ['succeeded', 'failed'],
'types': ['documentAdditionOrUpdate']
})
get_all_tasks_paginating_1: |-
client.get_tasks({
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ index.search(

## 🤖 Compatibility with Meilisearch

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

## 💡 Learn more

Expand Down
67 changes: 64 additions & 3 deletions meilisearch/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
from meilisearch.config import Config
from meilisearch.errors import MeiliSearchError
from meilisearch.index import Index
from meilisearch.task import get_task, get_tasks, wait_for_task
from meilisearch.models.task import TaskInfo
from meilisearch.task import cancel_tasks, delete_tasks, get_task, get_tasks, wait_for_task


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

def swap_indexes(self, parameters: list[dict[str, list[str]]]) -> TaskInfo:
"""Swap two indexes.

Parameters
----------
indexes:
List of indexes to swap (ex: [{"indexes": ["indexA", "indexB"]}).

Returns
-------
task_info:
TaskInfo instance containing information about a task to track the progress of an asynchronous process.
https://docs.meilisearch.com/reference/api/tasks.html#get-one-task

Raises
------
MeiliSearchApiError
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
"""
return TaskInfo(**self.http.post(self.config.paths.swap, parameters))

def get_tasks(
self, parameters: dict[str, Any] | None = None
) -> dict[str, list[dict[str, Any]]]:
Expand All @@ -407,8 +429,7 @@ def get_tasks(
Parameters
----------
parameters (optional):
parameters accepted by the get tasks route: https://docs.meilisearch.com/reference/api/tasks.html#get-all-tasks.
`indexUid` should be set as a List.
parameters accepted by the get tasks route: https://docs.meilisearch.com/reference/api/tasks.html#get-tasks.

Returns
-------
Expand Down Expand Up @@ -442,6 +463,46 @@ def get_task(self, uid: int) -> dict[str, Any]:
"""
return get_task(self.config, uid)

def cancel_tasks(self, parameters: dict[str, Any]) -> TaskInfo:
"""Cancel a list of enqueued or processing tasks.

Parameters
----------
parameters (optional):
parameters accepted by the cancel tasks route:https://docs.meilisearch.com/reference/api/tasks.html#cancel-tasks.

Returns
-------
task_info:
TaskInfo instance containing information about a task to track the progress of an asynchronous process.
https://docs.meilisearch.com/reference/api/tasks.html#get-one-task

Raises
------
MeiliSearchApiError
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
"""
return cancel_tasks(self.config, parameters=parameters)

def delete_tasks(self, parameters: dict[str, Any]) -> TaskInfo:
"""Delete a list of finished tasks.

Parameters
----------
parameters (optional):
parameters accepted by the delete tasks route:https://docs.meilisearch.com/reference/api/tasks.html#delete-task.
Returns
-------
task_info:
TaskInfo instance containing information about a task to track the progress of an asynchronous process.
https://docs.meilisearch.com/reference/api/tasks.html#get-one-task
Raises
------
MeiliSearchApiError
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
"""
return delete_tasks(self.config, parameters=parameters)

def wait_for_task(
self,
uid: int,
Expand Down
1 change: 1 addition & 0 deletions meilisearch/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ class Paths:
dumps = "dumps"
pagination = "pagination"
faceting = "faceting"
swap = "swap-indexes"

def __init__(self, url: str, api_key: str | None = None, timeout: int | None = None) -> None:
"""
Expand Down
Loading