From 439ca8d379fdb3b0ea3b2f2beefd85aaa9b2cb0f Mon Sep 17 00:00:00 2001 From: Jason Penney Date: Thu, 31 Mar 2022 20:46:18 -0400 Subject: [PATCH 1/3] fix issues when selection is entire section but filter function expects a list - `Subtitles._get_selection()`: always return a list - `Subtitles._process_selection()`: always call `_get_selection()` for items to process --- scripts/sub-digest/subdigest.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/scripts/sub-digest/subdigest.py b/scripts/sub-digest/subdigest.py index 3f94ef8..8976fc5 100644 --- a/scripts/sub-digest/subdigest.py +++ b/scripts/sub-digest/subdigest.py @@ -117,7 +117,8 @@ def _find_line_expr(self, expr): def _get_selection(self): if self.selection is None: - return self._get_section() + # return copy of section contents as list + return [line for line in self._get_section()] return [line for i, line in enumerate(self._get_section()) if i in self.selection] @@ -130,15 +131,17 @@ def _get_nonselection(self): if i not in self.selection] def _process_selection(self, f): + lines = self._get_selection() + if self.selection is None: - f(self._get_section()) + indices = [i for i, line in enumerate(lines)] else: indices = sorted(self.selection) - lines = self._get_selection() - f(lines) - section = self._get_section() - for i, line in zip(indices, lines): - section[i] = line + + f(lines) + section = self._get_section() + for i, line in zip(indices, lines): + section[i] = line @filter def use_styles(self) -> Subtitles: From cb5ef38d16eee6cc469209bdc140fd3997b5b442 Mon Sep 17 00:00:00 2001 From: Jason Penney Date: Wed, 4 May 2022 12:29:44 +0000 Subject: [PATCH 2/3] suggestion from review feedback Co-authored-by: FichteFoll --- scripts/sub-digest/subdigest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sub-digest/subdigest.py b/scripts/sub-digest/subdigest.py index 8976fc5..f2e9b1a 100644 --- a/scripts/sub-digest/subdigest.py +++ b/scripts/sub-digest/subdigest.py @@ -118,7 +118,7 @@ def _find_line_expr(self, expr): def _get_selection(self): if self.selection is None: # return copy of section contents as list - return [line for line in self._get_section()] + return list(self._get_section()) return [line for i, line in enumerate(self._get_section()) if i in self.selection] From 0bb0a6fb92231cab93021b79005267b54e110d12 Mon Sep 17 00:00:00 2001 From: Jason Penney Date: Wed, 4 May 2022 12:29:57 +0000 Subject: [PATCH 3/3] suggestion from review feedback Co-authored-by: FichteFoll --- scripts/sub-digest/subdigest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/sub-digest/subdigest.py b/scripts/sub-digest/subdigest.py index f2e9b1a..cfc7f8c 100644 --- a/scripts/sub-digest/subdigest.py +++ b/scripts/sub-digest/subdigest.py @@ -134,7 +134,7 @@ def _process_selection(self, f): lines = self._get_selection() if self.selection is None: - indices = [i for i, line in enumerate(lines)] + indices = range(len(lines)) else: indices = sorted(self.selection)