MCPcopy Index your code
hub / github.com/blockfrost/blockfrost-python / pagination

Function pagination

blockfrost/utils.py:83–119  ·  view source on GitHub ↗
(*args, **kwargs)

Source from the content-addressed store, hash-verified

81def list_request_wrapper(func):
82 @wraps(func)
83 def pagination(*args, **kwargs):
84 def recursive_append(json_list, *args, **kwargs):
85 request_response: Response = func(*args, **kwargs)
86 if request_response.status_code != 200:
87 raise ApiError(request_response)
88 json_list.extend(request_response.json())
89 if 'count' not in kwargs:
90 expected_result_length = DEFAULT_PAGINATION_PAGE_ITEMS_COUNT
91 else:
92 expected_result_length = kwargs['count']
93 if len(request_response.json()) == expected_result_length:
94 if 'page' not in kwargs:
95 kwargs['page'] = 2
96 else:
97 kwargs['page'] = kwargs['page'] + 1
98 recursive_append(json_list, *args, **kwargs)
99 else:
100 return json_list
101
102 if 'gather_pages' in kwargs and kwargs['gather_pages'] is True:
103 json_list = []
104 recursive_append(json_list, *args, **kwargs)
105 request_json = json_list
106 else:
107 request_response: Response = func(*args, **kwargs)
108 if request_response.status_code != 200:
109 raise ApiError(request_response)
110 request_json = request_response.json()
111 if 'return_type' in kwargs:
112 if kwargs['return_type'] == 'object':
113 return convert_json_to_object(request_json)
114 elif kwargs['return_type'] == 'pandas':
115 return convert_json_to_pandas(request_json)
116 elif kwargs['return_type'] == 'json':
117 return request_json
118 else:
119 return convert_json_to_object(request_json)
120
121 return pagination
122

Callers

nothing calls this directly

Calls 4

recursive_appendFunction · 0.85
ApiErrorClass · 0.85
convert_json_to_objectFunction · 0.85
convert_json_to_pandasFunction · 0.85

Tested by

no test coverage detected