def _check_other_entries(self, types):
    "Try to get the type of this entry from others in the Attribute\n\n        For zAttrs, checks if all other Entries are the same type, and at\n        least one doesn't match its zVar, i.e. Entry type dominates (otherwise\n        assumption is the Var type dominates).\n\n        For gAttrs, checks all other Entries, and gives priority to the\n        one that's earliest in the possible type list and exists in other\n        Entries.\n\n        This is only one component of Entry type guessing!\n\n        :param list types: CDF types that are candidates (match the data)\n        :return: The type discerned from other Entries, or None\n        "
    if (self.ENTRY_ == const.zENTRY_):
        cand_et = None
        one_var_diff = False
        for num in range((self.max_idx() + 1)):
            if (not self.has_entry(num)):
                continue
            vartype = self._cdf_file[num].type()
            entrytype = self.type(num)
            if (vartype != entrytype):
                one_var_diff = True
            if (cand_et is None):
                if (not (entrytype in types)):
                    return None
                cand_et = entrytype
            elif (cand_et != entrytype):
                return None
        if (one_var_diff and (cand_et is not None)):
            return cand_et
    else:
        entrytypes = [self.type(num) for num in range((self.max_idx() + 1)) if self.has_entry(num)]
        entrytypes = [et for et in entrytypes if (et in types)]
        if entrytypes:
            return types[min([types.index(et) for et in entrytypes])]
    return None
Try to get the type of this entry from others in the Attribute

For zAttrs, checks if all other Entries are the same type, and at
least one doesn't match its zVar, i.e. Entry type dominates (otherwise
assumption is the Var type dominates).

For gAttrs, checks all other Entries, and gives priority to the
one that's earliest in the possible type list and exists in other
Entries.

This is only one component of Entry type guessing!

:param list types: CDF types that are candidates (match the data)
:return: The type discerned from other Entries, or None
def _check_other_entries(self, types):
    "Try to get the type of this entry from others in the Attribute\n\n        For zAttrs, checks if all other Entries are the same type, and at\n        least one doesn't match its zVar, i.e. Entry type dominates (otherwise\n        assumption is the Var type dominates).\n\n        For gAttrs, checks all other Entries, and gives priority to the\n        one that's earliest in the possible type list and exists in other\n        Entries.\n\n        This is only one component of Entry type guessing!\n\n        :param list types: CDF types that are candidates (match the data)\n        :return: The type discerned from other Entries, or None\n        "
    if (self.ENTRY_ == const.zENTRY_):
        cand_et = None
        one_var_diff = False
        for num in range((self.max_idx() + 1)):
            if (not self.has_entry(num)):
                continue
            vartype = self._cdf_file[num].type()
            entrytype = self.type(num)
            if (vartype != entrytype):
                one_var_diff = True
            if (cand_et is None):
                if (not (entrytype in types)):
                    return None
                cand_et = entrytype
            elif (cand_et != entrytype):
                return None
        if (one_var_diff and (cand_et is not None)):
            return cand_et
    else:
        entrytypes = [self.type(num) for num in range((self.max_idx() + 1)) if self.has_entry(num)]
        entrytypes = [et for et in entrytypes if (et in types)]
        if entrytypes:
            return types[min([types.index(et) for et in entrytypes])]
    return None