code: def sort_subtrees(self, *subtrees):
          
          subtrees_desc_height = sorted(subtrees,
                                        key=methodcaller('node_height', self),
                                        reverse=True)
          return sorted(subtrees_desc_height,
                        key=methodcaller('get_position', self))
docs: sort the given subtrees (of type DGParentedTree) based on their
          linear position in this RSTTree. If two subtrees have the same
          linear position in the RSTTree (i.e. one is a child of the other),
          they are sorted by their height in reverse order (i.e. the child
          appears before its parent).