code: def _get_bases_below_parent(
      cls: type, parent: type, bases=None
  ) -> Set[type]:
      if bases is None:
          bases = set()
  
      if parent not in cls.__bases__:
          for base in cls.__bases__:
              bases.update(_get_bases_below_parent(base, parent, bases))
      else:
          # don't support multiple inheritance when
          # inherting directly from the parent
          assert len(cls.__bases__) == 1
  
          bases.add(cls)
  
      return bases
  
imports: import dataclasses
  import logging
  from dataclasses import dataclass, fields
  from typing import Any, Dict, List, Optional, Sequence, Set, Tuple
  from llm_studio.src import possible_values
  from llm_studio.src.nesting import Dependency, Nesting
  from llm_studio.src.order import Order
  from llm_studio.src.tooltips import tooltips
label_desc: Use image node_id 1 for calling a global function with example usage: _get_bases_below_parent(cls, parent, bases) and returns: bases