def url(self, prefix, name):
        parts = []
        if self.path:
            # explicitly define safe with ~ for a workaround
            # of this Python bug:
            # https://bugs.python.org/issue16285
            # tilde should not be encoded according to RFC3986
            parts.append(quote(self.path.encode('utf-8'), '/~'))
        if name:
            parts.append(name)
        # add prefix in the end. Even if result is empty we always get
        # a / at least
        result = prefix + '/' + '/'.join(parts)
        if self.parameters:
            parameters = dict((key, [v.encode('utf-8') for v in value])
                              for (key, value) in self.parameters.items())
            result += '?' + fixed_urlencode(parameters, True)
        return result
>>> sum_string('10', '5')
dataset/ETHPy150Open morepath/morepath/morepath/path.py/PathInfo.url--crossover with--dataset/ETHPy150Open bt3gl/Python-and-Algorithms-and-Data-Structures/src/builtin_structures/sum_two_numbers_as_strings.py/sum_string