Optimize list_xxx request speed

This commit is contained in:
Maël Kervella 2018-05-25 09:38:34 +00:00
parent 8432eafdca
commit 0f796bbcea

View file

@ -71,8 +71,12 @@ class Re2oAPIClient:
return url
def __getattr__(self, item):
if item.startswith('list_'):
def f(max_results=None, params={}, **kwargs):
if not 'page_size' in params.keys():
params['page_size'] = 'all'
response = self.get(
self.get_url_for('%s-list' % item[len('list_'):], **kwargs),
params=params
@ -84,20 +88,26 @@ class Re2oAPIClient:
results += response['results']
return results[:max_results] if max_results else results
return f
elif item.startswith('count_'):
def f(params={}, **kwargs):
params.update({'page_size': 1})
if not 'page_size' in params.keys():
params['page_size'] = 1
return self.get(
self.get_url_for('%s-list' % item[len('count_'):], **kwargs),
params=params
)['count']
return f
elif item.startswith('view_'):
def f(params={}, **kwargs):
return self.get(
self.get_url_for('%s-details' % item[len('view_'):], **kwargs),
params=params
)
return f
else:
raise AttributeError(item)