- 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.
Note
This release is the last which will maintain support for Python 2.4 / Python 2.5.
- Add support for continuous integration using
tox
andjenkins
. - Add 'setup.py dev' alias (runs
setup.py develop
plus installsnose
andcoverage
). - Move to GitHub.
- Fix iteration bug due to use of
_order
as tuple.
- Fixed persistence bugs in ordering support when adding or removing items.
- Add support for ordering items in a folder.
- Make
remove
return the removed object. - Add
pop
method.
- 100% test coverage.
- Add an
add
method 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 (
IObjectWillBeAddedEventand
IObjectAddedEvent``) will not be sent. - Add a
remove
method 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 (
IObjectWillBeRemovedEventand
IObjectRemovedEvent``) will not be sent.
- Add a
BTrees.Length
object 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).
- Fix backwards compatibility foul (near
self._num_objects.change(1)
:AttributeError: 'NoneType' object has no attribute 'change'
).
- Add tests for
unicodify
and 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 as
data
on the instance without any conversion). - A
__len__
method was added torepoze.folder.Folder
instances. It returns the number of subobjects in the folder. - A
_num_objects
attribute is set onto newly createdrepoze.folder.Folder
instances. This is aBTrees.Length.Length
object. 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_objects
class 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
).
- Yeah. 0.3.1 was another brownbag, as we need to try to decode ASCII to unicode before we use the utf-8 decoding.
- Mistakenly removed
__parent__
and__name__
attributes from folder implementation, making 0.3 a brownbag.
- When 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 a
name
(__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.
- Remove
__init__
from IFolder interface.
- Update Sphinx docs, using interfaces
- Add folder
__name__
to repr and str of folder in output.
- Initial release.