          """
          This proves that when an AttributeError is raised inside of the request.user
          property, that we can handle this and report the true, underlying error.
          """
          class AuthRaisesAttributeError(object):
              def authenticate(self, request):
                  self.MISSPELLED_NAME_THAT_DOESNT_EXIST
  
          request = Request(self.wrapped_request, authenticators=(AuthRaisesAttributeError(),))
  
 
</s> remove         instance = super(Field, cls).__new__(cls)
 </s> add         instance = super().__new__(cls) </s> remove         super(ForceAuthClientHandler, self).__init__(*args, **kwargs)
 </s> add         super().__init__(*args, **kwargs) </s> remove class ViewSetMixin(object):
 </s> add class ViewSetMixin: </s> remove         return super(ForceAuthClientHandler, self).get_response(request)
 </s> add         return super().get_response(request) </s> remove @python_2_unicode_compatible
class PKOnlyObject(object):
 </s> add class PKOnlyObject:
        class AuthRaisesAttributeError:
          """
          This proves that when an AttributeError is raised inside of the request.user
          property, that we can handle this and report the true, underlying error.
          """
        class AuthRaisesAttributeError:
              def authenticate(self, request):
                  self.MISSPELLED_NAME_THAT_DOESNT_EXIST
  
          request = Request(self.wrapped_request, authenticators=(AuthRaisesAttributeError(),))
  
keep keep keep keep replace keep keep keep keep keep
 Dropped Python 2 compatibility. (#6615)

Thanks to Jon Dufresne (@jdufresne) for review.

Co-authored-by: Asif Saif Uddin <auvipy@gmail.com>
Co-authored-by: Rizwan Mansuri <Rizwan@webbyfox.com> 
tests/test_request.py