docs: def _prepare_uri(self, path, query_params={}):
          """
          Prepares a full URI with the selected information.
  
          ``path``:
              Path can be in one of two formats:
  
                  - If :attr:`server` was defined, the ``path`` will be appended
                    to the existing host, or
                  - an absolute URL
          ``query_params``:
              Used to generate a query string, which will be appended to the end
              of the absolute URL.
  
          Returns an absolute URL.
          """
          query_str = urllib.urlencode(query_params)
  
          # If we have a relative path (as opposed to a full URL), build it of
          # the connection info
          if path.startswith('/') and self.server:
              protocol = self.protocol
              server = self.server
          else:
              protocol, server, path, _, _, _ = urlparse.urlparse(path)
              assert server, "%s is not a valid URL" % path
  
          return urlparse.urlunparse((
              protocol, server, path, None, query_str, None))