code: def proxy_manager_for(self, proxy, **proxy_kwargs):
          
          if proxy in self.proxy_manager:
              manager = self.proxy_manager[proxy]
          elif proxy.lower().startswith('socks'):
              username, password = get_auth_from_url(proxy)
              manager = self.proxy_manager[proxy] = SOCKSProxyManager(
                  proxy,
                  username=username,
                  password=password,
                  num_pools=self._pool_connections,
                  maxsize=self._pool_maxsize,
                  block=self._pool_block,
                  **proxy_kwargs
              )
          else:
              proxy_headers = self.proxy_headers(proxy)
              manager = self.proxy_manager[proxy] = proxy_from_url(
                  proxy,
                  proxy_headers=proxy_headers,
                  num_pools=self._pool_connections,
                  maxsize=self._pool_maxsize,
                  block=self._pool_block,
                  **proxy_kwargs)
  
          return manager
docs: Return urllib3 ProxyManager for the given proxy.
  
          This method should not be called from user code, and is only
          exposed for use when subclassing the
          :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`.
  
          :param proxy: The proxy to return a urllib3 ProxyManager for.
          :param proxy_kwargs: Extra keyword arguments used to configure the Proxy Manager.
          :returns: ProxyManager
          :rtype: urllib3.ProxyManager