Skip to content

Commit 8e1c826

Browse files
authored
fix: error handling on invalid queries (#10)
* fix: error handling on invalid queries * fix: cases of just 1 page Co-authored-by: Pablo <pjestradac@gmail.com>
1 parent 596d81f commit 8e1c826

File tree

2 files changed

+9
-15
lines changed

2 files changed

+9
-15
lines changed

sdk/diffgram/core/directory.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -101,20 +101,23 @@ def all_files(self):
101101
result = result + diffgram_files
102102
return result
103103

104-
def all_file_ids(self):
104+
def all_file_ids(self, query = None):
105105
page_num = 1
106106
result = []
107107

108-
diffgram_ids = self.list_files(limit = 5000, page_num = page_num, file_view_mode = 'ids_only')
108+
diffgram_ids = self.list_files(limit = 5000, page_num = page_num, file_view_mode = 'ids_only', query = query)
109+
if diffgram_ids is False:
110+
raise Exception('Error Fetching Files: Please check you are providing a valid query.')
109111
result = result + diffgram_ids
110112
page_num = self.file_list_metadata['next_page']
111113
total_pages = self.file_list_metadata['total_pages']
112114
pool = Pool(20)
113115

114116
pool_results = []
115-
for i in range(page_num, total_pages + 1):
116-
result_async = pool.apply_async(self.list_files, (i, 5000, None, 'ids_only', None))
117-
pool_results.append(result_async)
117+
if page_num is not None:
118+
for i in range(page_num, total_pages + 1):
119+
result_async = pool.apply_async(self.list_files, (i, 5000, None, 'ids_only', None))
120+
pool_results.append(result_async)
118121

119122
for pool_result in pool_results:
120123
file_ids = pool_result.get()

sdk/diffgram/core/sliced_directory.py

+1-10
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,7 @@ def __init__(self, client, original_directory: Directory, query: str):
1515
super(Directory, self).__init__(self.client, self.file_id_list)
1616

1717
def all_file_ids(self):
18-
page_num = 1
19-
result = []
20-
while page_num is not None:
21-
diffgram_files = self.list_files(limit = 1000,
22-
page_num = page_num,
23-
file_view_mode = 'ids_only',
24-
query = self.query)
25-
page_num = self.file_list_metadata['next_page']
26-
result = result + diffgram_files
27-
return result
18+
return super().all_file_ids(query = self.query)
2819

2920
def explore(self):
3021

0 commit comments

Comments
 (0)