@classmethod
def is_compatible(cls, d):
    """
        Checks the dictionary contains the correct header information for the data class.

        Returns True if the correct class, group, version and type attributes are defined,
        False is returned otherwise.

        :param d: Dictionary containing serialised class data.
        :returns: True if compatible, False otherwise.
        """
    try:
        data_class = d['_class']
        group = d['_group']
        version = d['_version']
    except KeyError:
        return False
    return (data_class == cls.CLASS and group == cls.GROUP and version ==
        cls.VERSION)
