          """
          The attribute value for the given target node (e.g. 'PROJCS'). The index
          keyword specifies an index of the child node to return.
          """
          if not isinstance(target, six.string_types) or not isinstance(index, int):
              raise TypeError
          return capi.get_attr_value(self.ptr, force_bytes(target), index)
  
      def auth_name(self, target):
          "Returns the authority name for the given string target node."
 
</s> remove         if isinstance(index, six.string_types):
 </s> add         if isinstance(index, str): </s> remove         if isinstance(index, six.string_types):
 </s> add         if isinstance(index, str): </s> remove         if isinstance(index, six.integer_types):
 </s> add         if isinstance(index, int): </s> remove         if isinstance(dr_input, six.string_types):
 </s> add         if isinstance(dr_input, str): </s> remove     if isinstance(pattern, six.string_types):
 </s> add     if isinstance(pattern, str):
        if not isinstance(target, str) or not isinstance(index, int):
          """
          The attribute value for the given target node (e.g. 'PROJCS'). The index
          keyword specifies an index of the child node to return.
          """
        if not isinstance(target, str) or not isinstance(index, int):
              raise TypeError
          return capi.get_attr_value(self.ptr, force_bytes(target), index)
  
      def auth_name(self, target):
          "Returns the authority name for the given string target node."
keep keep keep keep replace keep keep keep keep keep
 Refs #23919 -- Removed six.<various>_types usage

Thanks Tim Graham and Simon Charette for the reviews. 
django/contrib/gis/gdal/srs.py