def url_path_join(*pieces):
 initial = pieces[0].startswith('/')
 final = pieces[(-1)].endswith('/')
 stripped = [s.strip('/') for s in pieces]
 result = '/'.join((s for s in stripped if s))
 if initial:
  result = ('/' + result)
 if final:
  result = (result + '/')
 if (result == '//'):
  result = '/'
 return result

def url_path_join ( * pieces ) : initial = pieces [ 0 ] . startswith ( '/' ) final = pieces [ ( - 1 ) ] . endswith ( '/' ) stripped = [ s . strip ( '/' ) for s in pieces ] result = '/' . join ( ( s for s in stripped if s ) ) if initial : result = ( '/' + result ) if final : result = ( result + '/' ) if ( result == '//' ) : result = '/' return result
join components of url into a relative url use to prevent double slash when joining subpath .