def get()

in components/logic/nuvem/url.py [0:0]


def get(r, address, args):
    def isList(v):
        if getattr(v, '__iter__', False) == False:
            return False
        if isinstance(v, basestring) or isinstance(v, dict):
            return False
        return True

    def isAssoc(v):
        if not isList(v):
            return False
        if len(v) != 2:
            return False
        if isinstance(v[0], basestring) and v[0][0:1] == "'":
            return True
        return False

    l = args.get(r)
    lv = () if l is None else l
    la = map(lambda x: str(x), filter(lambda x: not isAssoc(x), lv))
    ka = map(lambda x: '='.join((x[0][1:], str(x[1]))), filter(lambda x: isAssoc(x), lv))

    va = address.get(r)
    return ('' if va is None else str(va)) + '/'.join(la) + ('?' if len(ka) != 0 else '') + '&'.join(ka)