code: def ordered_symbols(self):
          
          key_func = lambda s: [isinstance(s, sympy.Derivative),
                             isinstance(s, sympy.Derivative) and s.derivative_count]
          symbols = []
          for symbol in toposort(self.connectivity_mapping):
              symbols.extend(sorted(symbol, key=key_func))
  
          return symbols
docs: :return: list of all symbols in this model, topologically sorted so they
              can be evaluated in the correct order.
  
              Within each group of equal priority symbols, we sort by the order of
              the derivative.