code: def accumulate_dict_from_superclasses(cls, propname):
      ''' Traverse the class hierarchy and accumulate the special dicts
      ``MetaHasProps`` stores on classes:
  
      Args:
          name (str) : name of the special attribute to collect.
  
              Typically meaningful values are: ``__dataspecs__``,
              ``__overridden_defaults__``
  
      '''
      cachename = "__cached_all" + propname
      # we MUST use cls.__dict__ NOT hasattr(). hasattr() would also look at base
      # classes, and the cache must be separate for each class
      if cachename not in cls.__dict__:
          d = dict()
          for c in inspect.getmro(cls):
              if issubclass(c, HasProps) and hasattr(c, propname):
                  base = getattr(c, propname)
                  for k,v in base.items():
                      if k not in d:
                          d[k] = v
          setattr(cls, cachename, d)
      return cls.__dict__[cachenamef accumulate_dict_from_superclasses(cls, propname):
      ''' Traverse the class hierarchy and accumulate the special dicts
      ``MetaHasProps`` stores on classes:
  
      Args:
          name (str) : name of the special attribute to collect.
  
              Typically meaningful values are: ``__dataspecs__``,
              ``__overridden_defaults__``
  
      '''
      cachename = "__cached_all" + propname
      # we MUST use cls.__dict__ NOT hasattr(). hasattr() would also look at base
      # classes, and the cache must be separate for each class
      if cachename not in cls.__dict__:
          d = dict()
          for c in inspect.getmro(cls):
              if issubclass(c, HasProps) and hasattr(c, propname):
                  base = getattr(c, propname)
                  for k,v in base.items():
                      if k not in d:
                          d[k] = v
          setattr(cls, cachename, d)
      return cls.__dict__[cachename]
docs: Traverse the class hierarchy and accumulate the special dicts
      ``MetaHasProps`` stores on classes:
  
      Args:
          name (str) : name of the special attribute to collect.
  
              Typically meaningful values are: ``__dataspecs__``,
              ``__overridden_defaults__``