parameters: (self, r, **kwargs)
return_statement: return r
docstring: Takes the given response and tries digest-auth, if needed.
  
          :rtype: requests.Response
docstring_summary: Takes the given response and tries digest-auth, if needed.
docstring_tokens: Takes the given response and tries digest - auth if needed .
function: def handle_401(self, r, **kwargs):
          """
          Takes the given response and tries digest-auth, if needed.
  
          :rtype: requests.Response
          """
  
          # If response is not 4xx, do not auth
          # See https://github.com/requests/requests/issues/3772
          if not 400 <= r.status_code < 500:
              self._thread_local.num_401_calls = 1
              return r
  
          if self._thread_local.pos is not None:
              # Rewind the file position indicator of the body to where
              # it was to resend the request.
              r.request.body.seek(self._thread_local.pos)
          s_auth = r.headers.get('www-authenticate', '')
  
          if 'digest' in s_auth.lower() and self._thread_local.num_401_calls < 2:
  
              self._thread_local.num_401_calls += 1
              pat = re.compile(r'digest ', flags=re.IGNORECASE)
              self._thread_local.chal = parse_dict_header(pat.sub('', s_auth, count=1))
  
              # Consume content and release the original connection
              # to allow our new request to reuse the same one.
              r.content
              r.close()
              prep = r.request.copy()
              extract_cookies_to_jar(prep._cookies, r.request, r.raw)
              prep.prepare_cookies(prep._cookies)
  
              prep.headers['Authorization'] = self.build_digest_header(
                  prep.method, prep.url)
              _r = r.connection.send(prep, **kwargs)
              _r.history.append(r)
              _r.request = prep
  
              return _r
  
          self._thread_local.num_401_calls = 1
          return r
function_tokens: def handle_401 ( self , r , * * kwargs ) : # If response is not 4xx, do not auth # See https://github.com/requests/requests/issues/3772 if not 400 <= r . status_code < 500 : self . _thread_local . num_401_calls = 1 return r if self . _thread_local . pos is not None : # Rewind the file position indicator of the body to where # it was to resend the request. r . request . body . seek ( self . _thread_local . pos ) s_auth = r . headers . get ( 'www-authenticate' , '' ) if 'digest' in s_auth . lower ( ) and self . _thread_local . num_401_calls < 2 : self . _thread_local . num_401_calls += 1 pat = re . compile ( r'digest ' , flags = re . IGNORECASE ) self . _thread_local . chal = parse_dict_header ( pat . sub ( '' , s_auth , count = 1 ) ) # Consume content and release the original connection # to allow our new request to reuse the same one. r . content r . close ( ) prep = r . request . copy ( ) extract_cookies_to_jar ( prep . _cookies , r . request , r . raw ) prep . prepare_cookies ( prep . _cookies ) prep . headers [ 'Authorization' ] = self . build_digest_header ( prep . method , prep . url ) _r = r . connection . send ( prep , * * kwargs ) _r . history . append ( r ) _r . request = prep return _r self . _thread_local . num_401_calls = 1 return r