code: def connect(self, url=None):
          
          if self._transport:
              self.disconnect()
  
          if url is None and self.url:
              url = self.url
          url = self.fix_url(url)
  
          self._transport = _RequestsTransport(
              url, self._cookiejar, sslverify=self._sslverify, cert=self.cert)
          self._transport.user_agent = self.user_agent
          self._proxy = _BugzillaServerProxy(url, self.tokenfile,
              self._transport)
  
          self.url = url
          # we've changed URLs - reload config
          self.readconfig()
  
          if (self.user and self.password):
              log.info("user and password present - doing login()")
              self.login()
  
          if self.api_key:
              log.debug("using API key")
              self._proxy.use_api_key(self.api_key)
  
          version = self._proxy.Bugzilla.version()["version"]
          log.debug("Bugzilla version string: %s", version)
          self._set_bz_version(version)
docs: Connect to the bugzilla instance with the given url. This is
          called by __init__ if a URL is passed. Or it can be called manually
          at any time with a passed URL.
  
          This will also read any available config files (see readconfig()),
          which may set 'user' and 'password', and others.
  
          If 'user' and 'password' are both set, we'll run login(). Otherwise
          you'll have to login() yourself before some methods will work.