aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/core/result/link.py
diff options
context:
space:
mode:
authorDavid Medina <davidmedina9@gmail.com>2012-03-04 16:58:08 +0100
committerDavid Medina <davidmedina9@gmail.com>2012-03-04 17:18:06 +0100
commit14ef05b1ffef24fae97ae3e79567ab612a75ff11 (patch)
tree9397c561b8b963d9b65dbda1f496f01a0f2d3ab2 /pygithub3/core/result/link.py
parentWrap result getter into partial. It's cleaner (diff)
downloadpython-github3-14ef05b1ffef24fae97ae3e79567ab612a75ff11.tar.xz
python-github3-14ef05b1ffef24fae97ae3e79567ab612a75ff11.zip
Refactor result. Now it's a package
result.smart => Paginate iterator with 'page' behaviour. result.normal => Paginate iterator with 'next' behaviour.
Diffstat (limited to 'pygithub3/core/result/link.py')
-rw-r--r--pygithub3/core/result/link.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/pygithub3/core/result/link.py b/pygithub3/core/result/link.py
new file mode 100644
index 0000000..b6a614f
--- /dev/null
+++ b/pygithub3/core/result/link.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+# -*- encoding: utf-8 -*-
+
+from urlparse import urlparse, parse_qs
+
+from pygithub3.core.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))