From 8345cf66caedf989a8b176e1ecf551bb6d9e846e Mon Sep 17 00:00:00 2001 From: David Medina Date: Sat, 3 Mar 2012 11:26:04 +0100 Subject: remaining_requests attr to Github and Services Updated with each request --- pygithub3/core/client.py | 4 ++++ pygithub3/github.py | 6 ++++++ pygithub3/services/base.py | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/pygithub3/core/client.py b/pygithub3/core/client.py index a8e33a1..ee7c97f 100644 --- a/pygithub3/core/client.py +++ b/pygithub3/core/client.py @@ -14,6 +14,8 @@ VALID_REQUEST_ARGS = set(( class Client(object): """ Client to send configurated requests""" + remaining_requests = '~' + def __init__(self, **kwargs): self.requester = requests.session() self.config = { @@ -72,6 +74,8 @@ class Client(object): def request(self, verb, request, **kwargs): request = "%s%s" % (self.config['base_url'], request) response = self.requester.request(verb, request, **kwargs) + Client.remaining_requests = response.headers.get( + 'x-ratelimit-remaining', -1) GithubError(response).process() return response diff --git a/pygithub3/github.py b/pygithub3/github.py index fd1cb26..23b5b0b 100644 --- a/pygithub3/github.py +++ b/pygithub3/github.py @@ -18,6 +18,12 @@ class Github(object): self._users = User(**config) self._repos = Repos(**config) + @property + def remaining_requests(self): + """ Limit of Github API v3 """ + from pygithub3.core.client import Client + return Client.remaining_requests + @property def users(self): """ diff --git a/pygithub3/services/base.py b/pygithub3/services/base.py index 84379b0..1d33470 100644 --- a/pygithub3/services/base.py +++ b/pygithub3/services/base.py @@ -41,6 +41,10 @@ class Service(object): self._client = Client(**config) self.request_builder = Factory() + @property + def remaining_requests(self): + return Client.remaining_requests + def get_user(self): return self._client.user -- cgit v1.2.3-59-g8ed1b