Commit e1e5860a authored by Levin Zimmermann's avatar Levin Zimmermann

erp5_wendelin: Cleanup

parent a311d424
...@@ -35,7 +35,8 @@ from Products.ERP5Type import Permissions, PropertySheet ...@@ -35,7 +35,8 @@ from Products.ERP5Type import Permissions, PropertySheet
from erp5.component.module.BTreeData import PersistentString from erp5.component.module.BTreeData import PersistentString
from erp5.component.module.Log import log from erp5.component.module.Log import log
class IndexSequence:
class IndexSequence(object):
""" """
A Sequence base class for data bucket stream following the A Sequence base class for data bucket stream following the
BTree.IReadSequence Interface BTree.IReadSequence Interface
...@@ -58,6 +59,7 @@ class IndexSequence: ...@@ -58,6 +59,7 @@ class IndexSequence:
sub_index_sequence = self.index_sequence[index1:index2] sub_index_sequence = self.index_sequence[index1:index2]
return self.__class__(self.data_bucket_stream, sub_index_sequence) return self.__class__(self.data_bucket_stream, sub_index_sequence)
class IndexKeySequence(IndexSequence): class IndexKeySequence(IndexSequence):
""" """
A Sequence class to get a value sequence for data bucket stream A Sequence class to get a value sequence for data bucket stream
...@@ -68,76 +70,8 @@ class IndexKeySequence(IndexSequence): ...@@ -68,76 +70,8 @@ class IndexKeySequence(IndexSequence):
""" """
bucket_index, bucket_key = self.index_sequence[index] bucket_index, bucket_key = self.index_sequence[index]
return (bucket_index, bucket_key) return (bucket_index, bucket_key)
class IndexValueSequence(IndexSequence):
"""
A Sequence class to get a value sequence for data bucket stream
"""
def __getitem__(self, index):
"""Return the value at the given index.
An IndexError is raised if the index cannot be found.
"""
bucket_key = self.index_sequence[index]
return self.data_bucket_stream.getBucketByKey(bucket_key)
class IndexItemSequence(IndexSequence):
"""
A Sequence class to get a index item sequence for data bucket stream
"""
def __getitem__(self, index):
"""Return the value at the given index.
An IndexError is raised if the index cannot be found.
"""
bucket_index, bucket_key = self.index_sequence[index]
return (bucket_index, self.data_bucket_stream.getBucketByKey(bucket_key))
class IndexKeyItemSequence(IndexSequence):
"""
A Sequence class to get a index key item sequence for data bucket stream
"""
def __getitem__(self, index):
"""Return the value at the given index.
An IndexError is raised if the index cannot be found.
"""
bucket_index, bucket_key = self.index_sequence[index]
return (bucket_index, bucket_key,
self.data_bucket_stream.getBucketByKey(bucket_key))
class IndexSequence:
"""
A Sequence base class for data bucket stream following the
BTree.IReadSequence Interface
"""
def __init__(self, data_bucket_stream, index_sequence):
self.data_bucket_stream = data_bucket_stream
self.index_sequence = index_sequence
def __getitem__(self, index):
"""Return the value at the given index.
An IndexError is raised if the index cannot be found.
"""
raise NotImplementedError
def __getslice__(self, index1, index2):
"""Return a subsequence from the original sequence.
The subsequence includes the items from index1 up to, but not
including, index2.
"""
sub_index_sequence = self.index_sequence[index1:index2]
return self.__class__(self.data_bucket_stream, sub_index_sequence)
class IndexKeySequence(IndexSequence):
"""
A Sequence class to get a value sequence for data bucket stream
"""
def __getitem__(self, index):
"""Return the value at the given index.
An IndexError is raised if the index cannot be found.
"""
bucket_index, bucket_key = self.index_sequence[index]
return (bucket_index, bucket_key)
class IndexValueSequence(IndexSequence): class IndexValueSequence(IndexSequence):
""" """
A Sequence class to get a value sequence for data bucket stream A Sequence class to get a value sequence for data bucket stream
...@@ -148,7 +82,8 @@ class IndexValueSequence(IndexSequence): ...@@ -148,7 +82,8 @@ class IndexValueSequence(IndexSequence):
""" """
bucket_key = self.index_sequence[index] bucket_key = self.index_sequence[index]
return self.data_bucket_stream.getBucketByKey(bucket_key) return self.data_bucket_stream.getBucketByKey(bucket_key)
class IndexItemSequence(IndexSequence): class IndexItemSequence(IndexSequence):
""" """
A Sequence class to get a index item sequence for data bucket stream A Sequence class to get a index item sequence for data bucket stream
...@@ -173,6 +108,7 @@ class IndexKeyItemSequence(IndexSequence): ...@@ -173,6 +108,7 @@ class IndexKeyItemSequence(IndexSequence):
return (bucket_index, bucket_key, return (bucket_index, bucket_key,
self.data_bucket_stream.getBucketByKey(bucket_key)) self.data_bucket_stream.getBucketByKey(bucket_key))
class DataBucketStream(Document): class DataBucketStream(Document):
""" """
Represents data stored in many small files inside a "stream". Represents data stored in many small files inside a "stream".
...@@ -188,9 +124,10 @@ class DataBucketStream(Document): ...@@ -188,9 +124,10 @@ class DataBucketStream(Document):
security.declareObjectProtected(Permissions.AccessContentsInformation) security.declareObjectProtected(Permissions.AccessContentsInformation)
# Declarative properties # Declarative properties
property_sheets = ( PropertySheet.CategoryCore property_sheets = (
, PropertySheet.SortIndex PropertySheet.CategoryCore,
) PropertySheet.SortIndex
)
def __init__(self, id, **kw): def __init__(self, id, **kw):
self.initBucketTree() self.initBucketTree()
...@@ -419,32 +356,6 @@ class DataBucketStream(Document): ...@@ -419,32 +356,6 @@ class DataBucketStream(Document):
sequence = sequence[:count] sequence = sequence[:count]
return IndexKeyItemSequence(self, sequence) return IndexKeyItemSequence(self, sequence)
def getBucketIndexItemSequenceByIndex(self, start_index=None, stop_index=None,
count=None, exclude_start_index=False, exclude_stop_index=False):
"""
Get a lazy sequence of bucket items
"""
sequence = self._long_index_tree.items(min=start_index, max=stop_index,
excludemin=exclude_start_index,
excludemax=exclude_stop_index)
if count is not None:
sequence = sequence[:count]
return IndexItemSequence(self, sequence)
def getBucketIndexKeyItemSequenceByIndex(self, start_index=None,
stop_index=None, count=None,
exclude_start_index=False,
exclude_stop_index=False):
"""
Get a lazy sequence of bucket items
"""
sequence = self._long_index_tree.items(min=start_index, max=stop_index,
excludemin=exclude_start_index,
excludemax=exclude_stop_index)
if count is not None:
sequence = sequence[:count]
return IndexKeyItemSequence(self, sequence)
def getItemList(self): def getItemList(self):
""" """
Return a list of all key, value pairs Return a list of all key, value pairs
......
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