Package: repoze.folder
repoze.folderrepoze.folderprovides a barebones ZODB folder implementation with
object event support.  Folders have a dictionary-like interface and
emit “object events” on the addition and removal of objects when
certain methods of this interface are exercised.Folder objects are based on BTree code, so as long as you persist
them, the folder should be able to contain many objects efficiently.Changes1.0 (2014-12-28)Add support for PyPy.Add support for Python 3.2, 3.3, and 3.4.Add support for testing on Travis.Drop support for Python 2.4 and 2.5.0.6.3 (2012-03-29)NoteThis release is the last which will maintain support for Python 2.4 /
Python 2.5.Add support for continuous integration usingtoxandjenkins.Add ‘setup.py dev’ alias (runssetup.py developplus installsnoseandcoverage).Move to GitHub.0.6.2 (2010-10-04)Fix iteration bug due to use of_orderas tuple.0.6.1 (2010-10-01)Fixed persistence bugs in ordering support when adding or removing items.0.6 (2010-09-30)Add support for ordering items in a folder.0.5 (2010/09/04)Makeremovereturn the removed object.Addpopmethod.0.4 (2009/06/15)100% test coverage.Add anaddmethod that does what__setitem__does.  It also
provides a flag namedsend_events, which by default is True.  If
it is False whenadd` is called, folder events(``IObjectWillBeAddedEventandIObjectAddedEvent) will not be
sent.Add aremovemethod that does what__delitem__does.  It
also provides a flag namedsend_events, which by default is
True.  If it is False whenadd` is called, folder events(``IObjectWillBeRemovedEventandIObjectRemovedEvent) will not
be sent.0.3.5 (2009/1/8)Add aBTrees.Lengthobject to folders that don’t already have
one during__setitem__and__delitem__(this is an
“evolution” step; having a Length object is useful for performance
reasons).0.3.4 (2009/1/8)Fix backwards compatibility foul (nearself._num_objects.change(1):AttributeError: 'NoneType' object has no attribute 'change').0.3.3 (2009/1/6)Add tests forunicodifyand make docs about to-Unicode
convenience conversion from byte strings (and error messages)
slightly clearer.Now no matter what is passed to the folder as constructor, we
try to turn it into an OOBTree (before it was set asdataon the
instance without any conversion).A__len__method was added torepoze.folder.Folderinstances.  It returns the number of subobjects in the folder.A_num_objectsattribute is set onto newly createdrepoze.folder.Folderinstances.  This is aBTrees.Length.Lengthobject.  We manage this length object in
order to supply a return value for the__len__method instead of
using the folder’s underlying OOBTree.__len__ method (querying a
btree for length can be arbitrarily expensive).  A_num_objectsclass attribute was added equalling None to provide a backward
compatibility cue for already-persisted objects which do not have a
meaningful Length attribute.The implementation no longer concerns itself with advertising a
modified event (IObjectModifiedEvent).0.3.2 (2008/12/13)Yeah.  0.3.1 was another brownbag, as we need to try to decode ASCII
to unicode before we use the utf-8 decoding.0.3.1 (2008/12/13)Mistakenly removed__parent__and__name__attributes from
folder implementation, making 0.3 a brownbag.0.3 (2008/12/13)Backwards IncompatibilitiesWhen a new object is added using__setitem__with the same name
as an existing object, a KeyError is now raised rather than the item
being silently replaced.API methods accepting aname(__setitem__,__getitem__,get,__contains__, and__delitem__) now attempt to
decode bytestrings to Unicode using the utf-8 encoding before
performing the action the method implies.Previously, it was possible to store either an ASCII bytestring or a
Unicode object as a key value.  Now all key values are converted to
Unicode before being stored.0.2.1 (2008/10/31)Remove__init__from IFolder interface.0.2 (2008/10/22)Update Sphinx docs, using interfacesAdd folder__name__to repr and str of folder in output.0.1 (2008/10/13)Initial release.