docs: def urlsplit(url):
      """
      Split url into scheme, host, port, path, query
  
      :param str url:
      :return: scheme, host, port, path, query
      """
      p = '((?P<scheme>.*)?.*://)?(?P<host>[^:/ ]+).?(?P<port>[0-9]*).*'
      m = re.search(p, url)
      scheme = m.group('scheme')
      host = m.group('host')
      port = m.group('port')
  
      _scheme, _netloc, path, query, _fragment = tuple(py_urlsplit(url))
  
      return scheme, host, port, path, query