          Returns any non-user authentication information associated with the
          request, such as an authentication token.
          """
          if not hasattr(self, '_auth'):
              self._authenticator, self._user, self._auth = self._authenticate()
          return self._auth
  
      @auth.setter
      def auth(self, value):
          """
 
</s> remove             self._authenticator, self._user, self._auth = self._authenticate()
 </s> add             self._authenticate() </s> remove             self._authenticator, self._user, self._auth = self._authenticate()
 </s> add             self._authenticate() </s> remove                 user, auth = user_auth_tuple
                return (authenticator, user, auth)
        return self._not_authenticated()
 </s> add                 self._authenticator = authenticator
                self._user, self._auth = user_auth_tuple
                return

        self._not_authenticated() </s> remove             auth = None

        return (None, user, auth)
 </s> add             self._auth = None </s> remove             user_auth_tuple = authenticator.authenticate(self)
 </s> add             try:
                user_auth_tuple = authenticator.authenticate(self)
            except exceptions.APIException:
                self._not_authenticated()
                raise

            self._authenticate()
          Returns any non-user authentication information associated with the
          request, such as an authentication token.
          """
          if not hasattr(self, '_auth'):
            self._authenticate()
          return self._auth
  
      @auth.setter
      def auth(self, value):
          """
keep keep keep keep replace keep keep keep keep keep
 request.user should be still be accessible in renderer context if authentication fails 
rest_framework/request.py