Commit 6905aa33 authored by Julien Muchembled's avatar Julien Muchembled

HBTreeFolder2: implement slicing of object{Ids,Items,Values} results

This is required for ERP5Site_checkDataWithScript script (erp5_core BT).
parent 363f93f3
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment