'Collect a dict mapping the names of all ``DataSpec`` properties
on this class to the associated properties.
This method *always* traverses the class hierarchy and includes
properties defined on any parent classes.
Returns:
dict[str, DataSpec] : mapping of names and ``DataSpec`` properties'

@classmethod
def dataspecs_with_props(cls):

    return accumulate_dict_from_superclasses(cls, '__dataspecs__')
