Source code for terra_sdk.client.lcd.params
import abc
from abc import ABC
from typing import Optional
__all__ = ["APIParams", "PaginationOptions"]
[docs]class APIParams(ABC):
@abc.abstractmethod
def to_dict(self):
pass
def to_list(self) -> list:
lst = []
dct = self.to_dict()
for key in dct.keys():
lst.append((key, dct.get(key)))
return lst
[docs]class PaginationOptions(APIParams):
"""This could be used when you need pagination options for APIs
Args:
key (str): key is a value returned in PageResponse.next_key to begin
querying the next page most efficiently. Only one of offset or key
should be set.
offset (int): offset is a numeric offset that can be used when key is unavailable.
It is less efficient than using key. Only one of offset or key should be set.
limit (int): limit is the total number of results to be returned in the result page.
If left empty it will default to a value to be set by each app.
count_total (bool): count_total is set to true to indicate that the result set should include a count of
the total number of items available for pagination in UIs.
count_total is only respected when offset is used. It is ignored when key is set.
reverse (bool): reverse is set to true if results are to be returned in the descending order.
"""
def __init__(
self,
key: Optional[str] = None,
offset: Optional[int] = None,
limit: Optional[int] = None,
count_total: Optional[bool] = None,
reverse: Optional[bool] = None,
):
self.key = key
self.offset = offset
self.limit = limit
self.count_total = count_total
self.reverse = reverse
def __str__(self):
return "&".join(self.to_dict())
def to_dict(self):
params = {}
if self.key is not None:
params["pagination.key"] = self.key
if self.offset is not None:
params["pagination.offset"] = self.offset
if self.limit is not None:
params["pagination.limit"] = self.limit
if self.count_total is not None:
params["pagination.count_total"] = str(self.count_total).lower()
if self.reverse is not None:
params["pagination.reverse"] = str(self.reverse).lower()
return params