url.py 771 Bytes
# -*- coding: utf-8 -*-

import urllib
import urlparse


def append_to_get(path, query=None, **kwargs):
    query_dict = dict(urlparse.parse_qsl(query))
    for key, value in kwargs.items():
        query_dict[key] = value
    return u'{}?{}'.format(path, urllib.urlencode(query_dict))


def pop_from_get(path, query=None, **kwargs):
    query_dict = dict(urlparse.parse_qsl(query))
    for key, value in kwargs.items():
        if not query_dict.has_key(key):
            continue
        if query_dict[key] == value:
            del query_dict[key]
            continue
        if value in query_dict[key]:
            aux = query_dict[key].split(value)
            query_dict[key] = u''.join(aux).strip()
    return u'{}?{}'.format(path, urllib.urlencode(query_dict))