code: def _to_bytes(value, encoding="ascii"):
      
      result = value.encode(encoding) if isinstance(value, six.text_type) else value
      if isinstance(result, six.binary_type):
          return result
      else:
          raise TypeError("%r could not be converted to bytes" % (value,))
docs: Converts a string value to bytes, if necessary.
  
      Unfortunately, ``six.b`` is insufficient for this task since in
      Python2 it does not modify ``unicode`` objects.
  
      :type value: str / bytes or unicode
      :param value: The string/bytes value to be converted.
  
      :type encoding: str
      :param encoding: The encoding to use to convert unicode to bytes. Defaults
                       to "ascii", which will not allow any characters from
                       ordinals larger than 127. Other useful values are
                       "latin-1", which which will only allows byte ordinals
                       (up to 255) and "utf-8", which will encode any unicode
                       that needs to be.
  
      :rtype: str / bytes
      :returns: The original value converted to bytes (if unicode) or as passed
                in if it started out as bytes.
      :raises TypeError: if the value could not be converted to bytes.