"""Flask Request Utils. Utils for parsing request values. """ from collections import namedtuple from blacklist_manager.constants import pagination Pagination = namedtuple('Pagination', ['offset', 'limit']) def get_pagination(request): """Parse pagination information. Args: request (Flask.request): The request object. Returns: Pagination (namedtuple): pagination information. """ page_offset = request.args.get( 'page_offset') or pagination.PAGE_OFFSET_DEFAULT page_offset = _get_int(page_offset, pagination.PAGE_OFFSET_DEFAULT) page_limit = request.args.get( 'page_limit') or pagination.PAGE_LIMIT_DEFAULT page_limit = _get_int(page_limit, pagination.PAGE_LIMIT_DEFAULT) return Pagination(page_offset, page_limit) def _get_int(value, default_value): """Methods to covert value in int. Args: value (str or int): The value to convert to int. default_value (int): The default value to use if value cannot be converted. Returns: int: value converted to int. """ try: return int(value) except: # noqa: E722 return default_value