From 79195ab05d3f1c4513e8bdd29ad0327612f1ffb5 Mon Sep 17 00:00:00 2001 From: Anthon van der Neut Date: Sat, 1 Sep 2018 17:54:16 +0200 Subject: add key and reverse parameter to CommentedSeq.sort() suggested via email by Jannik Klemm --- comments.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'comments.py') diff --git a/comments.py b/comments.py index 2ca2d79..9d51a29 100644 --- a/comments.py +++ b/comments.py @@ -496,10 +496,14 @@ class CommentedSeq(MutableSliceableSequence, CommentedBase): # type: (Any) -> Any return self._lst + other - def sort(self): - # type: () -> None - tmp_lst = sorted(zip(self._lst, range(len(self._lst)))) - self._lst = [x[0] for x in tmp_lst] + def sort(self, key=None, reverse=False): + # type: (Any, bool) -> None + if key is None: + tmp_lst = sorted(zip(self._lst, range(len(self._lst))), reverse=reverse) + self._lst = [x[0] for x in tmp_lst] + else: + tmp_lst = sorted(zip(map(key, self._lst), range(len(self._lst))), reverse=reverse) + self._lst = [self._lst[x[1]] for x in tmp_lst] itm = self.ca.items self.ca._items = {} for idx, x in enumerate(tmp_lst): -- cgit v1.2.1