          self.rate = self.get_rate()
          self.num_requests, self.duration = self.parse_rate(self.rate)
  
          # We can now proceed as normal.
          return super(ScopedRateThrottle, self).allow_request(request, view)
  
      def get_cache_key(self, request, view):
          """
          If `view.throttle_scope` is not set, don't apply this throttle.
  
 
</s> remove         super(HyperlinkedIdentityField, self).__init__(view_name, **kwargs)
 </s> add         super().__init__(view_name, **kwargs) </s> remove         assert output is 123
 </s> add         assert output == 123 </s> remove         if isinstance(ordering, six.string_types):
 </s> add         if isinstance(ordering, str): </s> remove class ExclusiveFilterBackend(object):
 </s> add class ExclusiveFilterBackend: </s> remove         expected = "{0}; charset={1}".format(RendererA.media_type, 'utf-8')
 </s> add         expected = "{}; charset={}".format(RendererA.media_type, 'utf-8')
        return super().allow_request(request, view)
          self.rate = self.get_rate()
          self.num_requests, self.duration = self.parse_rate(self.rate)
  
          # We can now proceed as normal.
        return super().allow_request(request, view)
  
      def get_cache_key(self, request, view):
          """
          If `view.throttle_scope` is not set, don't apply this throttle.
  
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> 
rest_framework/throttling.py