aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/core/link.py
diff options
context:
space:
mode:
authorDavid Medina <davidmedina9@gmail.com>2012-03-04 10:36:55 +0100
committerDavid Medina <davidmedina9@gmail.com>2012-03-04 10:36:55 +0100
commit0ea5b5c16b1e11bb9159b5bee8373ec88a5355a5 (patch)
tree3b9358a36f9c6b660c496ea9626980813ad82542 /pygithub3/core/link.py
parentremaining_requests attr to Github and Services (diff)
downloadpython-github3-0ea5b5c16b1e11bb9159b5bee8373ec88a5355a5.tar.xz
python-github3-0ea5b5c16b1e11bb9159b5bee8373ec88a5355a5.zip
Encapsulate Link header behaviour
Diffstat (limited to 'pygithub3/core/link.py')
-rw-r--r--pygithub3/core/link.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/pygithub3/core/link.py b/pygithub3/core/link.py
new file mode 100644
index 0000000..1d6be2c
--- /dev/null
+++ b/pygithub3/core/link.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+
+from urlparse import urlparse, parse_qs
+
+from .third_libs.link_header import parse_link_value
+
+class Link(str):
+
+ class Url(str):
+
+ @property
+ def query(self):
+ return urlparse(self).query
+
+ @property
+ def params(self):
+ return dict([
+ (param, values.pop())
+ for param, values in parse_qs(self.query).items()])
+
+ def __init__(self, object_):
+ super(Link, self).__init__(object_)
+ parsed = parse_link_value(self)
+ for url in parsed:
+ setattr(self, parsed[url]['rel'], Link.Url(url))