|
3 | 3 | import enum
|
4 | 4 | from collections.abc import Iterator
|
5 | 5 | from types import ModuleType
|
6 |
| -from typing import Any, Callable, Literal, overload, TYPE_CHECKING |
| 6 | +from typing import Any, Callable, Literal, NoReturn, overload, TYPE_CHECKING |
| 7 | +from warnings import deprecated |
7 | 8 |
|
8 | 9 | import requests
|
9 | 10 |
|
@@ -161,6 +162,34 @@ def refresh(self, **kwargs: Any) -> None:
|
161 | 162 | class ListMixin(HeadMixin[base.TObjCls]):
|
162 | 163 | _list_filters: tuple[str, ...] = ()
|
163 | 164 |
|
| 165 | + @overload |
| 166 | + @deprecated( |
| 167 | + "Calling a `list()` method without specifying `get_all=True` or " |
| 168 | + "`iterator=True` will miss certain items because of pagination." |
| 169 | + ) |
| 170 | + def list( |
| 171 | + self, |
| 172 | + get_all: Literal[False] = False, |
| 173 | + iterator: Literal[False] = False, |
| 174 | + **kwargs: Any, |
| 175 | + ) -> list[base.TObjCls]: ... |
| 176 | + |
| 177 | + @overload |
| 178 | + def list( |
| 179 | + self, |
| 180 | + get_all: Literal[False] = False, |
| 181 | + iterator: Literal[True] = True, |
| 182 | + **kwargs: Any, |
| 183 | + ) -> base.RESTObjectList: ... |
| 184 | + |
| 185 | + @overload |
| 186 | + def list( |
| 187 | + self, |
| 188 | + get_all: Literal[True] = True, |
| 189 | + iterator: Literal[False] = False, |
| 190 | + **kwargs: Any, |
| 191 | + ) -> list[base.TObjCls]: ... |
| 192 | + |
164 | 193 | @exc.on_http_error(exc.GitlabListError)
|
165 | 194 | def list(self, **kwargs: Any) -> base.RESTObjectList | list[base.TObjCls]:
|
166 | 195 | """Retrieve a list of objects.
|
|
0 commit comments