@classmethod
def mixed_list_file(cls, filename):
    """
        Read a list of mixed values from a file.

        The file format is:

         - # anywhere in the line begins a comment
         - leading and trailing spaces are ignored
         - empty lines are ignored
         - strings cannot span over a single line
         - integers can be specified as:
            - decimal numbers ("100" is 100)
            - hexadecimal numbers ("0x100" is 256)
            - binary numbers ("0b100" is 4)
            - octal numbers ("0100" is 64)

        @type  filename: str
        @param filename: Name of the file to read.

        @rtype:  list
        @return: List of integers and strings read from the file.
        """
    count = 0
    result = list()
    fd = open(filename, 'r')
    for line in fd:
        count = count + 1
        if '#' in line:
            line = line[:line.find('#')]
        line = line.strip()
        if line:
            try:
                value = cls.integer(line)
            except ValueError:
                value = line
            result.append(value)
    return result
