# HG changeset patch # User Mads Kiilerich # Date 2019-12-22 13:32:44 # Node ID 838bdb265025bd6dfb665c9c7ce0d9ae952cb1ff # Parent 8a4a8020c38f45d44069e00d566fd4efeedd74a6 vcs: replace __getslice__ with slice handling in __getitem__ Needed for py3. diff --git a/kallithea/lib/vcs/backends/base.py b/kallithea/lib/vcs/backends/base.py --- a/kallithea/lib/vcs/backends/base.py +++ b/kallithea/lib/vcs/backends/base.py @@ -169,14 +169,9 @@ class BaseRepository(object): """ 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): diff --git a/kallithea/lib/vcs/nodes.py b/kallithea/lib/vcs/nodes.py --- a/kallithea/lib/vcs/nodes.py +++ b/kallithea/lib/vcs/nodes.py @@ -48,8 +48,9 @@ class NodeGeneratorBase(object): 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 @@ class RemovedFileNodesGenerator(NodeGene 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)