changeset 8052:838bdb265025

vcs: replace __getslice__ with slice handling in __getitem__ Needed for py3.
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 22 Dec 2019 13:32:44 +0100
parents 8a4a8020c38f
children 39ba3ee88c7c
files kallithea/lib/vcs/backends/base.py kallithea/lib/vcs/nodes.py
diffstat 2 files changed, 8 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/vcs/backends/base.py	Thu Dec 26 04:51:47 2019 +0100
+++ b/kallithea/lib/vcs/backends/base.py	Sun Dec 22 13:32:44 2019 +0100
@@ -169,14 +169,9 @@
         """
         raise NotImplementedError
 
-    def __getslice__(self, i, j):
-        """
-        Returns a iterator of sliced repository
-        """
-        for rev in self.revisions[i:j]:
-            yield self.get_changeset(rev)
-
     def __getitem__(self, key):
+        if isinstance(key, slice):
+            return (self.get_changeset(rev) for rev in self.revisions[key])
         return self.get_changeset(key)
 
     def count(self):
--- a/kallithea/lib/vcs/nodes.py	Thu Dec 26 04:51:47 2019 +0100
+++ b/kallithea/lib/vcs/nodes.py	Sun Dec 22 13:32:44 2019 +0100
@@ -48,8 +48,9 @@
     def __call__(self):
         return [n for n in self]
 
-    def __getslice__(self, i, j):
-        for p in self.current_paths[i:j]:
+    def __getitem__(self, key):
+        assert isinstance(key, slice), key
+        for p in self.current_paths[key]:
             yield self.cs.get_node(p)
 
     def __len__(self):
@@ -82,8 +83,9 @@
         for p in self.current_paths:
             yield RemovedFileNode(path=p)
 
-    def __getslice__(self, i, j):
-        for p in self.current_paths[i:j]:
+    def __getitem__(self, key):
+        assert isinstance(key, slice), key
+        for p in self.current_paths[key]:
             yield RemovedFileNode(path=p)