From 6905aa33402bd93a6260e7f0b8f548dd642398b3 Mon Sep 17 00:00:00 2001 From: Julien Muchembled <jm@nexedi.com> Date: Sun, 15 Sep 2013 16:12:22 +0200 Subject: [PATCH] HBTreeFolder2: implement slicing of object{Ids,Items,Values} results This is required for ERP5Site_checkDataWithScript script (erp5_core BT). --- product/HBTreeFolder2/HBTreeFolder2.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/product/HBTreeFolder2/HBTreeFolder2.py b/product/HBTreeFolder2/HBTreeFolder2.py index 3b7d91a5cd..3ce2b7e8d3 100644 --- a/product/HBTreeFolder2/HBTreeFolder2.py +++ b/product/HBTreeFolder2/HBTreeFolder2.py @@ -97,6 +97,8 @@ class HBTreeObjectIds(object): return self._keys() def __getitem__(self, item): + if isinstance(item, slice): + return map(self.__getitem__, xrange(*item.indices(self._count()))) if item < 0: item += self._count() i = self._index @@ -119,6 +121,8 @@ class HBTreeObjectItems(HBTreeObjectIds): return ((x, getOb(x)) for x in self._keys()) def __getitem__(self, item): + if isinstance(item, slice): + return map(self.__getitem__, xrange(*item.indices(self._count()))) object_id = HBTreeObjectIds.__getitem__(self, item) return object_id, self._tree._getOb(object_id) ContainerAssertions[HBTreeObjectItems] = 1 @@ -130,6 +134,8 @@ class HBTreeObjectValues(HBTreeObjectIds): return (getOb(x) for x in self._keys()) def __getitem__(self, item): + if isinstance(item, slice): + return map(self.__getitem__, xrange(*item.indices(self._count()))) return self._tree._getOb(HBTreeObjectIds.__getitem__(self, item)) ContainerAssertions[HBTreeObjectValues] = 1 -- 2.30.9