code: def recursive_bases(self):
          
          if self._recursive_bases is None:
              to_go = self.bases[:]
              all_bases = []
              while to_go:
                  base = to_go.pop()
                  if base not in all_bases:
                      all_bases.append(base)
                      to_go.extend(base.related_class.bases)
              self._recursive_bases = all_bases
          return self._recursive_bases
docs: list of all :class:`base classes <hierarchy_info_t>`