aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/core/result/link.py
blob: dae8407eb6d24db5a17ff53e5b6e2d5db41fb6b0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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_):
        str.__init__(object_)
        parsed = parse_link_value(self)
        for url in parsed:
            setattr(self, parsed[url]['rel'], Link.Url(url))