@classmethod
def header_constructor(cls, data_to_print, header_separator='-',
    column_separator=' '):
    """
        Construct header of the table according to template.

        :param list data_to_print:
            The list of data to print into the header of the table.

        :param str header_separator:
            The separator to use between the table header and our data.

        :param str colomn_separator: The separator to use between each colomns.

        :return: The data to print in a list format.
        :rtype: list
        """
    header_data = []
    header_size = ''
    before_size = '%-'
    after_size = 's'
    if header_separator:
        header_separator_data = []
    length_data_to_print = len(data_to_print) - 1
    i = 0
    for data in data_to_print:
        size = data_to_print[data]
        header_data.append(data)
        header_size += before_size + str(size) + after_size
        if i < length_data_to_print:
            header_size += column_separator
        if header_separator:
            header_separator_data.append(header_separator * size)
        i += 1
    if header_separator:
        return [header_size % tuple(header_data), header_size % tuple(
            header_separator_data)]
    return [header_size % tuple(header_data)]
