<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def do(self):
        "run it, get a new url"
        scheme, netloc, path, params, query, fragment = Split(self.url).do()

        if isinstance(self.query, dict):
            query = query + "&" + urllib.urlencode(self.query) if query else urllib.urlencode(self.query)

        path = urljoin(path, self.path).replace('\\', '/') if self.path else path
        
        return Splice(scheme=scheme, netloc=netloc, path=path, params=params, query=query, fragment=fragment).geturl