class_docstr: This class is not only important to extend `tree.Class`, it is also a
  important for descriptors (if the descriptor methods are evaluated or not).
code: def py__mro__(self):
      def add(cls):
          if cls not in mro:
              mro.append(cls)
  
      mro = [self]
      # TODO Do a proper mro resolution. Currently we are just listing
      # classes. However, it's a complicated algorithm.
      for lazy_cls in self.py__bases__():
          # TODO there's multiple different mro paths possible if this yields
          # multiple possibilities. Could be changed to be more correct.
          for cls in lazy_cls.infer():
              # TODO detect for TypeError: duplicate base class str,
              # e.g.  `class X(str, str): pass`
              try:
                  mro_method = cls.py__mro__
              except AttributeError:
                  # TODO add a TypeError like:
                  """
                  >>> class Y(lambda: test): pass
                  Traceback (most recent call last):
                    File "<stdin>", line 1, in <module>
                  TypeError: function() argument 1 must be code, not str
                  >>> class Y(1): pass
                  Traceback (most recent call last):
                    File "<stdin>", line 1, in <module>
                  TypeError: int() takes at most 2 arguments (3 given)
                  """
                  pass
              else:
                  add(cls)
                  for cls_new in mro_method():
                      add(cls_new)
      return tuple(mro)
  
imports: from jedi._compatibility import use_metaclass
  from jedi.parser_utils import get_parent_scope
  from jedi.evaluate.cache import evaluator_method_cache, CachedMetaClass
  from jedi.evaluate import compiled
  from jedi.evaluate.lazy_context import LazyKnownContext
  from jedi.evaluate.filters import ParserTreeFilter, TreeNameDefinition, ContextName
  from jedi.evaluate.base_context import ContextSet, iterator_to_context_set, TreeContext
label_desc: Use image node_id 1 for calling the ClassContext obj's underlying member method code with example usage: obj.py__mro__() and returns: tuple