@classmethod<EOL><INDENT>def deserialize(cls, data):<DEDENT>
column_list = cls()<EOL>while data:<EOL><INDENT>tup, data = data[:<NUM_LIT:10>], data[<NUM_LIT:10>:]<EOL>column_type, length, prec, scale, title_len = struct.unpack("<STR_LIT>", tup)<EOL>title, data = data[:title_len], data[title_len:]<EOL>try:<EOL><INDENT>column_list.append((title, column_type, length, prec, scale))<EOL><DEDENT>except GiraffeTypeError as error:<EOL><INDENT>raise GiraffeEncodeError(error)<EOL><DEDENT><DEDENT>return column_list<EOL>
Deserializes giraffez Archive header. See
:meth:`~giraffez.types.Columns.serialize` for more information.

:param str data: data in giraffez Archive format, to be deserialized
:return: :class:`~giraffez.types.Columns` object decoded from data