code: def set_proxy(self, proxy_type=None, addr=None, port=None, rdns=True, username=None, password=None):
          
          self.proxy = (proxy_type, addr, port, rdns,
                        username.encode() if username else None,
                        password.encode() if password else None)
docs: set_proxy(proxy_type, addr[, port[, rdns[, username[, password]]]])
          Sets the proxy to be used.
  
          proxy_type -    The type of the proxy to be used. Three types
                          are supported: PROXY_TYPE_SOCKS4 (including socks4a),
                          PROXY_TYPE_SOCKS5 and PROXY_TYPE_HTTP
          addr -        The address of the server (IP or DNS).
          port -        The port of the server. Defaults to 1080 for SOCKS
                         servers and 8080 for HTTP proxy servers.
          rdns -        Should DNS queries be performed on the remote side
                         (rather than the local side). The default is True.
                         Note: This has no effect with SOCKS4 servers.
          username -    Username to authenticate with to the server.
                         The default is no authentication.
          password -    Password to authenticate with to the server.
                         Only relevant when username is also provided.