docs: def _hexencode(bytestring, insert_spaces = False):
      """Convert a byte string to a hex encoded string.
  
      For example 'J' will return '4A', and ``'\\x04'`` will return '04'.
  
      Args:
          bytestring (str): Can be for example ``'A\\x01B\\x45'``.
          insert_spaces (bool): Insert space characters between pair of characters to increase readability.
  
      Returns:
          A string of twice the length, with characters in the range '0' to '9' and 'A' to 'F'.
          The string will be longer if spaces are inserted.
  
      Raises:
          TypeError, ValueError
  
      """
      _checkString(bytestring, description='byte string')
  
      separator = '' if not insert_spaces else ' '
      
      # Use plain string formatting instead of binhex.hexlify,
      # in order to have it Python 2.x and 3.x compatible
  
      byte_representions = []
      for c in bytestring:
          byte_representions.append( '{0:02X}'.format(ord(c)) )
      return separator.join(byte_representions).strip()