code: def request(method, url, **kwargs):
      
      auth = kwargs.get('auth')
      headers = kwargs.get('headers', {})
      # headers = headers.copy() # ? We do modify the dict in place here...
      if isinstance(auth, TreqKerberosAuth):
          del kwargs['auth']
          if auth.force_preemptive:
              # Save a round-trip and set the Negotiate header on the first req.
              headers['Authorization'] = yield negotiate_header(url)
      response = yield treq.request(method=method, url=url, headers=headers,
                                    **kwargs)
      # Retry if we got a 401 / Negotiate response.
      if response.code == 401 and isinstance(auth, TreqKerberosAuth):
          auth_mechs = response.headers.getRawHeaders('WWW-Authenticate')
          if 'Negotiate' in auth_mechs:
              headers['Authorization'] = yield negotiate_header(url)
              response = yield treq.request(method=method, url=url,
                                            headers=headers, **kwargs)
      defer.returnValue(response)
docs: Pass auth=HTTPKerberosAuth() kwarg