Mercurial > kallithea
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))