aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/core
diff options
context:
space:
mode:
Diffstat (limited to 'pygithub3/core')
-rw-r--r--pygithub3/core/ghrequests/__init__.py4
-rw-r--r--pygithub3/core/ghrequests/users/__init__.py2
-rw-r--r--pygithub3/core/ghrequests/users/emails.py4
-rw-r--r--pygithub3/core/ghrequests/users/followers.py38
-rw-r--r--pygithub3/core/ghrequests/users/keys.py79
-rw-r--r--pygithub3/core/ghrequests/users/user.py15
-rw-r--r--pygithub3/core/result.py4
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):
""" """