diff --git a/src/hdmf/spec/spec.py b/src/hdmf/spec/spec.py index bbd97b592..0e15cb92c 100644 --- a/src/hdmf/spec/spec.py +++ b/src/hdmf/spec/spec.py @@ -1045,24 +1045,20 @@ def is_inherited_spec(self, **kwargs): return self.is_inherited_type(spec_name) elif spec_name in self.__target_types: return self.is_inherited_target_type(spec_name) + elif super().is_inherited_spec(spec): # attribute spec + return True else: - # attribute spec - if super().is_inherited_spec(spec): - return True + parent_name = spec.parent.name + if parent_name is None: + parent_name = spec.parent.data_type + if isinstance(spec.parent, DatasetSpec): + if (parent_name in self.__datasets and self.is_inherited_dataset(parent_name) and + self.__datasets[parent_name].get_attribute(spec_name) is not None): + return True else: - parent_name = spec.parent.name - if parent_name is None: - parent_name = spec.parent.data_type - if isinstance(spec.parent, DatasetSpec): - if parent_name in self.__datasets: - if self.is_inherited_dataset(parent_name): - if self.__datasets[parent_name].get_attribute(spec_name) is not None: - return True - else: - if parent_name in self.__groups: - if self.is_inherited_group(parent_name): - if self.__groups[parent_name].get_attribute(spec_name) is not None: - return True + if (parent_name in self.__groups and self.is_inherited_group(parent_name) and : + self.__groups[parent_name].get_attribute(spec_name) is not None): + return True return False @docval({'name': 'spec', 'type': Spec, 'doc': 'the specification to check'})