From 0f796bbceaaf7f75e99863aa3a3c0cc317e0b688 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20Kervella?= Date: Fri, 25 May 2018 09:38:34 +0000 Subject: [PATCH] Optimize list_xxx request speed --- re2oapi/client.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/re2oapi/client.py b/re2oapi/client.py index 9654a8d..88f2c08 100644 --- a/re2oapi/client.py +++ b/re2oapi/client.py @@ -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)