Skip to content

Commit

Permalink
UFBTree
Browse files Browse the repository at this point in the history
  • Loading branch information
jamadden committed Feb 14, 2020
1 parent da991d2 commit 24d0bc5
Show file tree
Hide file tree
Showing 4 changed files with 325 additions and 302 deletions.
43 changes: 31 additions & 12 deletions BTrees/Interfaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -470,31 +470,47 @@ class IBTreeFamily(Interface):
minint = Attribute('The minimum signed integer storable in this family')


class IIntegerObjectBTreeModule(IBTreeModule, IMerge):
"""keys, or set values, are integers; values are objects.
class _IMergeBTreeModule(IBTreeModule, IMerge):
family = Attribute('The IBTreeFamily of this module')


class IIntegerObjectBTreeModule(_IMergeBTreeModule):
"""keys, or set values, are signed integers; values are objects.
describes IOBTree and LOBTree"""

family = Attribute('The IBTreeFamily of this module')

class IUnsignedObjectBTreeModule(_IMergeBTreeModule):
"""
As for `IIntegerObjectBTreeModule` with unsigned integers.
"""


class IObjectIntegerBTreeModule(IBTreeModule, IIMerge):
"""keys, or set values, are objects; values are integers.
class IObjectIntegerBTreeModule(_IMergeBTreeModule):
"""keys, or set values, are objects; values are signed integers.
Object keys (and set values) must sort reliably (for instance, *not* on
object id)! Homogenous key types recommended.
describes OIBTree and LOBTree"""

family = Attribute('The IBTreeFamily of this module')

class IObjectUnsignedBTreeModule(_IMergeBTreeModule):
"""
As for `IObjectIntegerBTreeModule` with unsigned integers.
"""


class IIntegerIntegerBTreeModule(IBTreeModule, IIMerge, IMergeIntegerKey):
"""keys, or set values, are integers; values are also integers.
class IIntegerIntegerBTreeModule(_IMergeBTreeModule, IMergeIntegerKey):
"""keys, or set values, are signed integers; values are also signed integers.
describes IIBTree and LLBTree"""

family = Attribute('The IBTreeFamily of this module')

class IUnsignedUnsignedBTreeModule(_IMergeBTreeModule, IMergeIntegerKey):
"""
As for `IIntegerIntegerBTreeModule` with unsigned integers.
"""


class IObjectObjectBTreeModule(IBTreeModule, IMerge):
Expand All @@ -509,12 +525,15 @@ class IObjectObjectBTreeModule(IBTreeModule, IMerge):
# the OO flavor of BTrees.


class IIntegerFloatBTreeModule(IBTreeModule, IMerge):
"""keys, or set values, are integers; values are floats.
class IIntegerFloatBTreeModule(_IMergeBTreeModule):
"""keys, or set values, are signed integers; values are floats.
describes IFBTree and LFBTree"""

family = Attribute('The IBTreeFamily of this module')
class IUnsignedFloatBTreeModule(_IMergeBTreeModule):
"""
As for `IIntegerFloatBTreeModule` with unsigned integers.
"""


try:
Expand Down
2 changes: 1 addition & 1 deletion BTrees/UFBTree.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
##############################################################################

__all__ = ('Bucket', 'Set', 'BTree', 'TreeSet',
'IFBucket', 'IFSet', 'IFBTree', 'IFTreeSet',
'UFBucket', 'UFSet', 'UFBTree', 'UFTreeSet',
'union', 'intersection', 'difference',
'weightedUnion', 'weightedIntersection', 'multiunion',
)
Expand Down

0 comments on commit 24d0bc5

Please sign in to comment.