          # but preserve the raw data.
          return (list, (list(self),))
  
  
  class BoundField(object):
      """
      A field object that also includes `.value` and `.error` properties.
      Returned when iterating over a serializer instance,
      providing an API similar to Django forms and form fields.
      """
 
</s> remove @python_2_unicode_compatible
class PKOnlyObject(object):
 </s> add class PKOnlyObject: </s> remove         class Point(object):
 </s> add         class Point: </s> remove class EndpointEnumerator(object):
 </s> add class EndpointEnumerator: </s> remove def unicode_repr(instance):
    # Get the repr of an instance, but ensure it is a unicode string
    # on both python 3 (already the case) and 2 (not the case).
    if six.PY2:
        return repr(instance).decode('utf-8')
    return repr(instance)


def unicode_to_repr(value):
    # Coerce a unicode string to the correct repr return type, depending on
    # the Python version. We wrap all our `__repr__` implementations with
    # this and then use unicode throughout internally.
    if six.PY2:
        return value.encode('utf-8')
    return value


 </s> add  </s> remove class APISettings(object):
 </s> add class APISettings:
class BoundField:
          # but preserve the raw data.
          return (list, (list(self),))
  
  
class BoundField:
      """
      A field object that also includes `.value` and `.error` properties.
      Returned when iterating over a serializer instance,
      providing an API similar to Django forms and form fields.
      """
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/utils/serializer_helpers.py