diff options
author | Anthon van der Neut <anthon@mnt.org> | 2018-09-01 17:54:16 +0200 |
---|---|---|
committer | Anthon van der Neut <anthon@mnt.org> | 2018-09-01 17:54:16 +0200 |
commit | 79195ab05d3f1c4513e8bdd29ad0327612f1ffb5 (patch) | |
tree | dcca91c514ffc0645c59fd795d4de6d537189308 /comments.py | |
parent | 94d2de64fbbe298365c42246e801e366aaaa9a60 (diff) | |
download | ruamel.yaml-79195ab05d3f1c4513e8bdd29ad0327612f1ffb5.tar.gz |
add key and reverse parameter to CommentedSeq.sort()
suggested via email by Jannik Klemm
Diffstat (limited to 'comments.py')
-rw-r--r-- | comments.py | 12 |
1 files changed, 8 insertions, 4 deletions
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): |