Source code for watson.db.utils

# -*- coding: utf-8 -*-
from math import ceil
from watson.common import imports


def _table_attr(obj, attr):
    return '{}.{}'.format(obj.__tablename__, attr)


[docs]class Page(object): """A single page object that is returned from the paginator. Provides the ability to automatically generate a query string. """ id = None query_string_key = 'page' __parts = None
[docs] def __init__(self, id): self.id = id self._parts[self.query_string_key] = self.id
@property def query_string(self): parts = ['{}={}'.format(key, value) for key, value in self._parts.items()] return '?{}'.format('&'.join(parts)) def append(self, **kwargs): if 'page' in kwargs: del kwargs['page'] self._parts.update(**kwargs) return self # internal @property def _parts(self): if not self.__parts: self.__parts = {} return self.__parts def __str__(self): return self.query_string