nodes: 0, module; 1, function_definition; 2, function_name:values; 3, parameters; 4, block; 5, identifier:self; 6, expression_statement; 7, function_definition; 8, return_statement; 9, comment:"""
          Return a list themeables sorted in reverse based
          on the their depth in the inheritance hierarchy.
  
          The sorting is key applying and merging the themeables
          so that they do not clash i.e :class:`axis_line`
          applied before :class:`axis_line_x`.
          """; 10, function_name:key; 11, parameters; 12, block; 13, call; 14, identifier:th; 15, return_statement; 16, identifier:sorted; 17, argument_list; 18, call; 19, call; 20, keyword_argument; 21, keyword_argument; 22, identifier:len; 23, argument_list; 24, attribute; 25, argument_list; 26, identifier:key; 27, identifier:key; 28, identifier:reverse; 29, True; 30, attribute; 31, identifier:dict; 32, identifier:values; 33, identifier:self; 34, attribute; 35, identifier:__mro__; 36, identifier:th; 37, identifier:__class__
code: def values(self):
          """
          Return a list themeables sorted in reverse based
          on the their depth in the inheritance hierarchy.
  
          The sorting is key applying and merging the themeables
          so that they do not clash i.e :class:`axis_line`
          applied before :class:`axis_line_x`.
          """
          def key(th):
              return len(th.__class__.__mro__)
  
          return sorted(dict.values(self), key=key, reverse=True)