'Does a request, but raises Timeout immediately if site is known to timeout, and records sites that timeout.
Also raises errors getting the content by default.
:param bool raise_status: If True, non-success status code responses will be raised as errors (True by default)'

def request(self, method, url, *args, **kwargs):

    if is_unresponsive(url):
        raise requests.Timeout((u'Requests    to    this    site    (%s)    have    timed    out    recently.    Waiting    before    trying    again.' % urlparse(url).hostname))
    limit_domains(url, self.domain_limiters)
    kwargs.setdefault(u'timeout', self.timeout)
    raise_status = kwargs.pop(u'raise_status', True)
    if (not any((url.startswith(adapter) for adapter in self.adapters))):
        log.debug(u'No    adaptor,    passing    off    to    urllib')
        return _wrap_urlopen(url, timeout=kwargs[u'timeout'])
    try:
        log.debug(u'Fetching    URL    %s    with    args    %s    and    kwargs    %s', url, args, kwargs)
        result = super(Session, self).request(method, url, *args, **kwargs)
    except requests.Timeout:
        set_unresponsive(url)
        raise
    if raise_status:
        result.raise_for_status()
    return result
