diff options
author | 2012-03-04 16:58:08 +0100 | |
---|---|---|
committer | 2012-03-04 17:18:06 +0100 | |
commit | 14ef05b1ffef24fae97ae3e79567ab612a75ff11 (patch) | |
tree | 9397c561b8b963d9b65dbda1f496f01a0f2d3ab2 /pygithub3/core/result/link.py | |
parent | Wrap result getter into partial. It's cleaner (diff) | |
download | python-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.py | 27 |
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)) |