def join(*paths): if not paths: raise TypeError('join() takes at least 1 argument (0 given)') parts = [] for p in paths: if isabs(p): parts = [p] else: parts.append(p) result = Join(*parts) if result and not paths[-1]: result += '/' return result