code: def set_proxy (self, proxy):
          
          self.proxy = proxy
          self.proxytype = "http"
          self.proxyauth = None
          if not self.proxy:
              return
          proxyurl = urlparse.urlparse(self.proxy)
          self.proxytype = proxyurl.scheme
          if self.proxytype not in ('http', 'https'):
              # Note that invalid proxies might raise TypeError in urllib2,
              # so make sure to stop checking at this point, not later.
              msg = _("Proxy value `%(proxy)s' must start with 'http:' or 'https:'.") \
                   % dict(proxy=proxy)
              raise LinkCheckerError(msg)
          if self.ignore_proxy_host():
              # log proxy without auth info
              log.debug(LOG_CHECK, "ignoring proxy %r", self.proxy)
              self.add_info(_("Ignoring proxy setting `%(proxy)s'.") %
                  dict(proxy=proxy))
              self.proxy = None
              return
          log.debug(LOG_CHECK, "using proxy %r", self.proxy)
          self.add_info(_("Using proxy `%(proxy)s'.") % dict(proxy=self.proxy))
          self.proxyhost = proxyurl.hostname
          self.proxyport = proxyurl.port
          if proxyurl.username is not None:
              username = proxyurl.username
              password = proxyurl.password if proxy.password is not None else ""
              auth = "%s:%s" % (username, password)
              self.proxyauth = "Basic "+httputil.encode_base64(auth)
docs: Parse given proxy information and store parsed values.
          Note that only http:// proxies are supported, both for ftp://
          and http:// URLs.