diff options
| author | Gauvain Pocentek <gauvain@pocentek.net> | 2018-06-17 16:21:55 +0200 |
|---|---|---|
| committer | Gauvain Pocentek <gauvain@pocentek.net> | 2018-06-17 16:23:31 +0200 |
| commit | 1a04634ae37888c3cd80c4676904664b0c8dbeab (patch) | |
| tree | cadcc15bbe389c2b9d5af140d9c5213c6f4ffbcb /gitlab/__init__.py | |
| parent | ba90e305bc2d54eb42aa0f8251a9e45b0d1736e4 (diff) | |
| download | gitlab-1a04634ae37888c3cd80c4676904664b0c8dbeab.tar.gz | |
Revert "make as_list work for all queries"
This reverts commit 8e787612fa77dc945a4c1327e9faa6eee10c48f2.
This change broke the basic generator usage (Fixes #534)
Diffstat (limited to 'gitlab/__init__.py')
| -rw-r--r-- | gitlab/__init__.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/gitlab/__init__.py b/gitlab/__init__.py index 4a79551..8e62188 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -537,7 +537,8 @@ class Gitlab(object): Returns: list: A list of the objects returned by the server. If `as_list` is - False then a GitlabList object (generator) is returned + False and no pagination-related arguments (`page`, `per_page`, + `all`) are defined then a GitlabList object (generator) is returned instead. This object will make API calls when needed to fetch the next items from the server. @@ -547,16 +548,21 @@ class Gitlab(object): """ # In case we want to change the default behavior at some point - as_list = as_list is None or as_list + as_list = True if as_list is None else as_list get_all = kwargs.get('all', False) url = self._build_url(path) - glist = GitlabList(self, url, query_data, - get_next='page' not in kwargs and get_all, **kwargs) - if as_list: - glist = list(glist) - return glist + if get_all is True: + return list(GitlabList(self, url, query_data, **kwargs)) + + if 'page' in kwargs or as_list is True: + # pagination requested, we return a list + return list(GitlabList(self, url, query_data, get_next=False, + **kwargs)) + + # No pagination, generator requested + return GitlabList(self, url, query_data, **kwargs) def http_post(self, path, query_data={}, post_data={}, files=None, **kwargs): |
