aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/core/link.py
blob: 1d6be2cdd5820346425455cf2447d0dda58305a6 (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
#!/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))