diff options
Diffstat (limited to 'pygithub3/core')
-rw-r--r-- | pygithub3/core/ghrequests/__init__.py | 4 | ||||
-rw-r--r-- | pygithub3/core/ghrequests/users/__init__.py | 2 | ||||
-rw-r--r-- | pygithub3/core/ghrequests/users/emails.py | 4 | ||||
-rw-r--r-- | pygithub3/core/ghrequests/users/followers.py | 38 | ||||
-rw-r--r-- | pygithub3/core/ghrequests/users/keys.py | 79 | ||||
-rw-r--r-- | pygithub3/core/ghrequests/users/user.py | 15 | ||||
-rw-r--r-- | pygithub3/core/result.py | 4 |
7 files changed, 135 insertions, 11 deletions
diff --git a/pygithub3/core/ghrequests/__init__.py b/pygithub3/core/ghrequests/__init__.py index b4faae5..c461bec 100644 --- a/pygithub3/core/ghrequests/__init__.py +++ b/pygithub3/core/ghrequests/__init__.py @@ -60,7 +60,7 @@ class Request(object): update_params = { valid_key: to_parse[valid_key] for valid_key in self.valid - if to_parse.has_key(valid_key)} + if valid_key in to_parse} return update_params @@ -71,7 +71,7 @@ class Factory(object): def __init__(self): """ """ - self.args = {} + self.args = {} def config_with(self, **kwargs): self.args = kwargs diff --git a/pygithub3/core/ghrequests/users/__init__.py b/pygithub3/core/ghrequests/users/__init__.py index 08986f6..c9ef5b5 100644 --- a/pygithub3/core/ghrequests/users/__init__.py +++ b/pygithub3/core/ghrequests/users/__init__.py @@ -1,4 +1,4 @@ # -*- encoding: utf-8 -*- -from pygithub3.core.ghrequests import Request +from pygithub3.core.ghrequests import Request, json, RequestValidationError from user import * diff --git a/pygithub3/core/ghrequests/users/emails.py b/pygithub3/core/ghrequests/users/emails.py index 991abc6..f7fb284 100644 --- a/pygithub3/core/ghrequests/users/emails.py +++ b/pygithub3/core/ghrequests/users/emails.py @@ -15,9 +15,10 @@ class List(Request): def set_uri(self): return 'user/emails' + class Add(Request): - resource = Raw + resource = Raw def validate(self): pass @@ -28,6 +29,7 @@ class Add(Request): def set_uri(self): return 'user/emails' + class Delete(Request): resource = Raw diff --git a/pygithub3/core/ghrequests/users/followers.py b/pygithub3/core/ghrequests/users/followers.py index e71313d..f2bfc1a 100644 --- a/pygithub3/core/ghrequests/users/followers.py +++ b/pygithub3/core/ghrequests/users/followers.py @@ -1,10 +1,9 @@ #!/usr/bin/env python # -*- encoding: utf-8 -*- -from . import Request +from . import Request, RequestValidationError from pygithub3.resources.users import User - -__all__ = ('List',) +from pygithub3.resources.base import Raw class List(Request): @@ -34,13 +33,44 @@ class Listfollowing(Request): else: return 'user/following' + +class Isfollowing(Request): + + resource = Raw + + def validate(self): + if not self.user: + raise RequestValidationError( + "'%s' request needs a user" % self.__class__.__name__) + + def set_uri(self): + return 'user/following/%s' % self.user + + +class Follow(Request): + + resource = Raw + + def validate(self): + if not self.user: + raise RequestValidationError( + "'%s' request needs a user" % self.__class__.__name__) + + def set_uri(self): + return 'user/following/%s' % self.user + + class Unfollow(Request): resource = User def validate(self): if not self.user: - raise Exception('unfollow ened user') # TODO: validate exception + raise RequestValidationError( + "'%s' request needs a user" % self.__class__.__name__) def set_uri(self): return 'user/following/%s' % self.user + + def get_data(self): + pass diff --git a/pygithub3/core/ghrequests/users/keys.py b/pygithub3/core/ghrequests/users/keys.py index e69de29..f5bb386 100644 --- a/pygithub3/core/ghrequests/users/keys.py +++ b/pygithub3/core/ghrequests/users/keys.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python +# -*- encoding: utf-8 -*- + +from . import Request, json, RequestValidationError +from pygithub3.resources.users import Key +from pygithub3.resources.base import Raw + + +class List(Request): + + resource = Key + + def validate(self): + pass + + def set_uri(self): + return 'user/keys' + + +class Get(Request): + + resource = Key + + def validate(self): + if not self.key_id: + raise RequestValidationError("'%s' needs key_id" + % self.__class__.__name__) + + def set_uri(self): + return 'user/keys/%s' % self.key_id + + +class Add(Request): + + resource = Key + valid = ('title', 'key') + + def validate(self): + self.add_data = self._parse_simple_dict(self.add_data) + + def set_uri(self): + return 'user/keys' + + def get_data(self): + return json.dumps(self.add_data) + + +class Update(Request): + + resource = Key + valid = ('title', 'key') + + def validate(self): + if not self.key_id: + raise RequestValidationError("'%s' needs key_id" + % self.__class__.__name__) + self.update_params = self._parse_simple_dict(self.update_with) + + def set_uri(self): + return 'user/keys/%s' % self.key_id + + def get_data(self): + return json.dumps(self.update_params) + + +class Delete(Request): + + resource = Raw + + def validate(self): + if not self.key_id: + raise RequestValidationError("'%s' needs key_id" + % self.__class__.__name__) + + def set_uri(self): + return 'user/keys/%s' % self.key_id + + def get_data(self): + return None diff --git a/pygithub3/core/ghrequests/users/user.py b/pygithub3/core/ghrequests/users/user.py index 18a356e..d4b3667 100644 --- a/pygithub3/core/ghrequests/users/user.py +++ b/pygithub3/core/ghrequests/users/user.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- encoding: utf-8 -*- -from . import Request +from . import Request, json from pygithub3.resources.users import User __all__ = ('Get', 'Update') @@ -22,4 +22,15 @@ class Get(Request): class Update(Request): - pass + + resource = User + valid = ('name', 'email', 'blog', 'company', 'location', 'hireable', 'bio') + + def validate(self): + self.update_params = self._parse_simple_dict(self.update_with) + + def get_data(self): + return json.dumps(self.update_params) + + def set_uri(self): + return 'user' diff --git a/pygithub3/core/result.py b/pygithub3/core/result.py index f0b3016..5d8ea7a 100644 --- a/pygithub3/core/result.py +++ b/pygithub3/core/result.py @@ -16,7 +16,7 @@ class Method(object): def cached(func): def wrapper(self, page=1): - if self.cache.has_key(str(page)): + if str(page) in self.cache: return self.cache[str(page)] return func(self, page) return wrapper @@ -34,6 +34,7 @@ class Method(object): @if_needs_lastpage def __set_last_page_from(self, response): link_parsed = parse_link_value(response.headers['link']) + def get_last(url): url_rels = link_parsed[url] return (url_rels.get('rel') == 'last') @@ -57,6 +58,7 @@ class Method(object): self() return self.last_page + class Page(object): """ """ |