Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/google/api_core/operations_v1/pagers_base.py: 46%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

13 statements  

1# -*- coding: utf-8 -*- 

2# Copyright 2024 Google LLC 

3# 

4# Licensed under the Apache License, Version 2.0 (the "License"); 

5# you may not use this file except in compliance with the License. 

6# You may obtain a copy of the License at 

7# 

8# http://www.apache.org/licenses/LICENSE-2.0 

9# 

10# Unless required by applicable law or agreed to in writing, software 

11# distributed under the License is distributed on an "AS IS" BASIS, 

12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

13# See the License for the specific language governing permissions and 

14# limitations under the License. 

15# 

16from typing import ( 

17 Any, 

18 Callable, 

19 Sequence, 

20 Tuple, 

21) 

22 

23from google.longrunning import operations_pb2 

24 

25 

26class ListOperationsPagerBase: 

27 """A pager for iterating through ``list_operations`` requests. 

28 

29 This class thinly wraps an initial 

30 :class:`google.longrunning.operations_pb2.ListOperationsResponse` object, and 

31 provides an ``__iter__`` method to iterate through its 

32 ``operations`` field. 

33 

34 If there are more pages, the ``__iter__`` method will make additional 

35 ``ListOperations`` requests and continue to iterate 

36 through the ``operations`` field on the 

37 corresponding responses. 

38 

39 All the usual :class:`google.longrunning.operations_pb2.ListOperationsResponse` 

40 attributes are available on the pager. If multiple requests are made, only 

41 the most recent response is retained, and thus used for attribute lookup. 

42 """ 

43 

44 def __init__( 

45 self, 

46 method: Callable[..., operations_pb2.ListOperationsResponse], 

47 request: operations_pb2.ListOperationsRequest, 

48 response: operations_pb2.ListOperationsResponse, 

49 *, 

50 metadata: Sequence[Tuple[str, str]] = () 

51 ): 

52 """Instantiate the pager. 

53 

54 Args: 

55 method (Callable): The method that was originally called, and 

56 which instantiated this pager. 

57 request (google.longrunning.operations_pb2.ListOperationsRequest): 

58 The initial request object. 

59 response (google.longrunning.operations_pb2.ListOperationsResponse): 

60 The initial response object. 

61 metadata (Sequence[Tuple[str, str]]): Strings which should be 

62 sent along with the request as metadata. 

63 """ 

64 self._method = method 

65 self._request = request 

66 self._response = response 

67 self._metadata = metadata 

68 

69 def __getattr__(self, name: str) -> Any: 

70 return getattr(self._response, name) 

71 

72 def __repr__(self) -> str: 

73 return "{0}<{1!r}>".format(self.__class__.__name__, self._response)