From 14ef05b1ffef24fae97ae3e79567ab612a75ff11 Mon Sep 17 00:00:00 2001 From: David Medina Date: Sun, 4 Mar 2012 16:58:08 +0100 Subject: Refactor result. Now it's a package result.smart => Paginate iterator with 'page' behaviour. result.normal => Paginate iterator with 'next' behaviour. --- pygithub3/core/result/link.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 pygithub3/core/result/link.py (limited to 'pygithub3/core/result/link.py') 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)) -- cgit v1.2.3-59-g8ed1b