docs: def remove_parents(bases):
      """ removes the parent classes if one base is subclass of
          another"""
      if len(bases) < 2:
          return bases
      remove_i = []
      bases = list(bases)
      for i, base in enumerate(bases):
          for j, other in enumerate(bases):
              # print(i, j, base, other, remove_i)
              if j != i and (issubclass(other, base) or base == other):
                  remove_i.append(i)
      remove_i = set(remove_i)
      remove_i = [i for i in remove_i]
      remove_i.sort(reverse=True)
      for index in remove_i:
          try:
              del bases[index]
          except IndexError:
              print("Unable to delete base: ", bases)
      return bases