changeset 6494:c72fe7e3b17f

vcs: replace deprecated __getslice__ with __getitem__ __getslice__ has been deprecated since Python 2.0. The support for single item indexing is currently unused, but was trivial to implement (and needed for proper __getitem__ support).
author Søren Løvborg <sorenl@unity3d.com>
date Tue, 14 Feb 2017 21:14:40 +0100
parents fffb4e73700e
children 2e8a87a085c5
files kallithea/lib/vcs/backends/base.py
diffstat 1 files changed, 7 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/vcs/backends/base.py	Tue Feb 14 20:27:45 2017 +0100
+++ b/kallithea/lib/vcs/backends/base.py	Tue Feb 14 21:14:40 2017 +0100
@@ -1051,12 +1051,13 @@
         for rev in self.revs:
             yield self.repo.get_changeset(rev)
 
-    def __getslice__(self, i, j):
-        """
-        Returns a iterator of sliced repository
-        """
-        sliced_revs = self.revs[i:j]
-        return CollectionGenerator(self.repo, sliced_revs)
+    def __getitem__(self, what):
+        """Return either a single element by index, or a sliced collection."""
+        if isinstance(what, slice):
+            return CollectionGenerator(self.repo, self.revs[what])
+        else:
+            # single item
+            return self.repo.get_changeset(self.revs[what])
 
     def __repr__(self):
         return '<CollectionGenerator[len:%s]>' % (len(self))