diff options
author | 2012-02-03 02:59:53 +0100 | |
---|---|---|
committer | 2012-02-03 02:59:53 +0100 | |
commit | ae1c3c06c47866c8f392d05c63f597d71cebd691 (patch) | |
tree | 6543c55e2210bd91f59124785200d1fbfb6be872 /github3/core.py | |
parent | Update setup.py (diff) | |
download | python-github3-ae1c3c06c47866c8f392d05c63f597d71cebd691.tar.xz python-github3-ae1c3c06c47866c8f392d05c63f597d71cebd691.zip |
Reset project
Diffstat (limited to 'github3/core.py')
-rw-r--r-- | github3/core.py | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/github3/core.py b/github3/core.py deleted file mode 100644 index ab71943..0000000 --- a/github3/core.py +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- - - -class Paginate: - """ Paginate resource iterator - - :param resource: URL resource - :param requester: Bound method to request. See `GithubCore.get` - :param kwargs: Args to request (params) - """ - - def __init__(self, resource, requester, **kwargs): - self.resource = resource - self.requester = requester - self.kwargs = kwargs - self.page = 1 - - def _last_page(self, link): - """ Get and cached last page from link header """ - if not getattr(self, 'last', False): - from github3.packages.link_header import parse_link_value - from urlparse import urlparse, parse_qs - for link, rels in parse_link_value(link).items(): - if rels.get('rel') == 'last': - query = urlparse(link).query - self.last = int(parse_qs(query).get('page').pop()) - - return self.last - - def __iter__(self): - return self - - def initial(self): - """ - First request - Force requester to paginate returning link header - """ - link, content = self.requester(self.resource, paginate=True, - page=1, **self.kwargs) - self.last = self._last_page(link) if link else 1 - return content - - def next(self): - if self.page == 1: - content = self.initial() - self.page += 1 - return content - else: - if self.page > self.last: - raise StopIteration - else: - content = self.requester(self.resource, page=self.page, - **self.kwargs) - self.page += 1 - return content - - -class Converter(object): - """ Abstract converter class """ - - def loads(self): - raise NotImplementedError("%s needs define '%s' method" % - (self.__class__.__name__, 'loads')) - - def dumps(self): - raise NotImplementedError("%s needs define '%s' method" % - (self.__class__.__name__, 'dumps')) - - def inject(self): - raise NotImplementedError("%s needs define '%s' method" % - (self.__class__.__name__, 'inject')) |