Skip to content

Commit e04de9e

Browse files
authored
Merge pull request #381 from meilisearch/remove_useless_method
Remove `delete_if_exist` and `get_or_create`
2 parents c90b725 + c2a73da commit e04de9e

File tree

3 files changed

+4
-113
lines changed

3 files changed

+4
-113
lines changed

meilisearch/client.py

Lines changed: 3 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ def create_index(self, uid: str, options: Optional[Dict[str, Any]] = None) -> In
5050
"""
5151
return Index.create(self.config, uid, options)
5252

53-
def delete_index_if_exists(self, uid: str) -> bool:
54-
"""Deletes an index if it already exists
53+
def delete_index(self, uid: str) -> Dict[str, Any]:
54+
"""Deletes an index
5555
5656
Parameters
5757
----------
@@ -68,13 +68,7 @@ def delete_index_if_exists(self, uid: str) -> bool:
6868
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
6969
"""
7070

71-
try:
72-
self.http.delete(f'{self.config.paths.index}/{uid}')
73-
return True
74-
except MeiliSearchApiError as error:
75-
if error.code != "index_not_found":
76-
raise error
77-
return False
71+
return self.http.delete(f'{self.config.paths.index}/{uid}')
7872

7973
def get_indexes(self) -> List[Index]:
8074
"""Get all indexes.
@@ -177,34 +171,6 @@ def index(self, uid: str) -> Index:
177171
return Index(self.config, uid=uid)
178172
raise Exception('The index UID should not be None')
179173

180-
def get_or_create_index(self, uid: str, options: Optional[Dict[str, Any]] = None) -> Index:
181-
"""Get an index, or create it if it doesn't exist.
182-
183-
Parameters
184-
----------
185-
uid:
186-
UID of the index
187-
options (optional): dict
188-
Options passed during index creation (ex: primaryKey)
189-
190-
Returns
191-
-------
192-
index:
193-
An instance of Index containing the information of the retrieved or newly created index.
194-
195-
Raises
196-
------
197-
MeiliSearchApiError
198-
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
199-
"""
200-
try:
201-
index_instance = self.get_index(uid)
202-
except MeiliSearchApiError as err:
203-
if err.code != 'index_not_found':
204-
raise err
205-
index_instance = self.create_index(uid, options)
206-
return index_instance
207-
208174
def get_all_stats(self) -> Dict[str, Any]:
209175
"""Get all stats of MeiliSearch
210176

meilisearch/index.py

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -55,26 +55,7 @@ def delete(self) -> Response:
5555

5656
return self.http.delete(f'{self.config.paths.index}/{self.uid}')
5757

58-
def delete_if_exists(self) -> bool:
59-
"""Deletes the index if it already exists
60-
61-
Returns
62-
--------
63-
Returns True if an index was deleted or False if not
64-
65-
Raises
66-
MeiliSearchApiError
67-
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
68-
"""
69-
try:
70-
self.delete()
71-
return True
72-
except MeiliSearchApiError as error:
73-
if error.code != "index_not_found":
74-
raise error
75-
return False
76-
77-
def update(self, primary_key: str) -> 'Index':
58+
def update(self, primary_key: str) -> Dict[str, Any]:
7859
"""Update the index primary-key.
7960
8061
Parameters

tests/index/test_index.py

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -100,33 +100,6 @@ def test_get_raw_index_with_wrong_uid(client):
100100
with pytest.raises(Exception):
101101
client.get_raw_index(uid='wrongUID')
102102

103-
def test_get_or_create_index(client):
104-
"""Test get_or_create_index method."""
105-
index_1 = client.get_or_create_index(common.INDEX_UID4)
106-
index_2 = client.get_or_create_index(common.INDEX_UID4)
107-
index_3 = client.get_or_create_index(common.INDEX_UID4)
108-
assert index_1.uid == index_2.uid == index_3.uid == common.INDEX_UID4
109-
update = index_1.add_documents([{
110-
'book_id': 1,
111-
'name': "Some book"
112-
}])
113-
index_1.wait_for_pending_update(update['updateId'])
114-
documents = index_2.get_documents()
115-
assert len(documents) == 1
116-
index_2.delete()
117-
with pytest.raises(Exception):
118-
client.get_index(index_3)
119-
120-
def test_get_or_create_index_with_primary_key(client):
121-
"""Test get_or_create_index method with primary key."""
122-
index_1 = client.get_or_create_index('books', {'primaryKey': common.INDEX_UID4})
123-
index_2 = client.get_or_create_index('books', {'primaryKey': 'some_wrong_key'})
124-
assert index_1.primary_key == common.INDEX_UID4
125-
assert index_1.get_primary_key() == common.INDEX_UID4
126-
assert index_2.primary_key == common.INDEX_UID4
127-
assert index_2.get_primary_key() == common.INDEX_UID4
128-
index_1.delete()
129-
130103
@pytest.mark.usefixtures("indexes_sample")
131104
def test_index_fetch_info(client):
132105
"""Tests fetching the index info."""
@@ -187,32 +160,3 @@ def test_delete_index(client):
187160
client.get_index(uid=common.INDEX_UID3)
188161
assert len(client.get_indexes()) == 0
189162

190-
@pytest.mark.usefixtures("indexes_sample")
191-
def test_delete_if_exists(client):
192-
assert client.get_index(uid=common.INDEX_UID)
193-
deleted = Client(BASE_URL, MASTER_KEY).index(common.INDEX_UID).delete_if_exists()
194-
assert deleted is True
195-
with pytest.raises(MeiliSearchApiError):
196-
client.get_index(uid=common.INDEX_UID)
197-
198-
def test_delete_if_exists_no_delete(client):
199-
with pytest.raises(MeiliSearchApiError):
200-
client.get_index(uid="none")
201-
202-
deleted = Client(BASE_URL, MASTER_KEY).index("none").delete_if_exists()
203-
assert deleted is False
204-
205-
@pytest.mark.usefixtures("indexes_sample")
206-
def test_delete_index_if_exists(client):
207-
assert client.get_index(uid=common.INDEX_UID)
208-
deleted = client.delete_index_if_exists(common.INDEX_UID)
209-
assert deleted is True
210-
with pytest.raises(MeiliSearchApiError):
211-
client.get_index(uid=common.INDEX_UID)
212-
213-
def test_delete_index_if_exists_no_delete(client):
214-
with pytest.raises(MeiliSearchApiError):
215-
client.get_index(uid="none")
216-
217-
deleted = client.delete_index_if_exists("none")
218-
assert deleted is False

0 commit comments

Comments
 (0)