def _sort(self, concepts, sort=None, language='<STR_LIT>', reverse=False):
sorted = copy.copy(concepts)<EOL>if sort:<EOL><INDENT>sorted.sort(key=methodcaller('<STR_LIT>', sort, language), reverse=reverse)<EOL><DEDENT>return sorted<EOL>
Returns a sorted version of a list of concepts. Will leave the original
list unsorted.

:param list concepts: A list of concepts and collections.
:param string sort: What to sort on: `id`, `label` or `sortlabel`
:param string language: Language to use when sorting on `label` or
    `sortlabel`.
:param boolean reverse: Reverse the sort order?
:rtype: list