Metadata-Version: 2.1
Name: repoze.folder
Version: 1.0
Summary: A ZODB folder implementation with object events
Home-page: http://www.repoze.org
Author: Agendaless Consulting
Author-email: repoze-dev@lists.repoze.org
License: BSD-derived (http://www.repoze.org/LICENSE.txt)
Description: repoze.folder
        =============
        
        .. image:: https://travis-ci.org/repoze/repoze.folder.png?branch=master
                :target: https://travis-ci.org/repoze/repoze.folder
        
        .. image:: https://readthedocs.org/projects/repozefolder/badge/?version=latest
                :target: http://repozefolder.readthedocs.org/en/latest/
                :alt: Documentation Status
        
        ``repoze.folder`` provides 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.
        
        
        Changes
        =======
        
        1.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)
        ------------------
        
        .. note::
           
           This release is the last which will maintain support for Python 2.4 /
           Python 2.5.
        
        - Add support for continuous integration using ``tox`` and ``jenkins``.
        
        - Add 'setup.py dev' alias (runs ``setup.py develop`` plus installs
          ``nose`` and ``coverage``).
        
        - Move to GitHub.
        
        0.6.2 (2010-10-04)
        ------------------
        
        - Fix iteration bug due to use of ``_order`` as 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)
        ------------------
        
        - Make ``remove`` return the removed object.
        
        - Add ``pop`` method.
        
        0.4 (2009/06/15)
        ------------------
        
        - 100% test coverage.
        
        - Add an ``add`` method that does what ``__setitem__`` does.  It also
          provides a flag named ``send_events``, which by default is True.  If
          it is False when ``add` is called, folder events
          (``IObjectWillBeAddedEvent`` and ``IObjectAddedEvent``) will not be
          sent.
        
        - Add a ``remove`` method that does what ``__delitem__`` does.  It
          also provides a flag named ``send_events``, which by default is
          True.  If it is False when ``add` is called, folder events
          (``IObjectWillBeRemovedEvent`` and ``IObjectRemovedEvent``) will not
          be sent.
        
        0.3.5 (2009/1/8)
        ------------------
        
        - 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).
        
        0.3.4 (2009/1/8)
        ------------------
        
        - Fix backwards compatibility foul (near
          ``self._num_objects.change(1)``: ``AttributeError: 'NoneType' object
          has no attribute 'change'``).
        
        0.3.3 (2009/1/6)
        ------------------
        
        - 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 to ``repoze.folder.Folder``
          instances.  It returns the number of subobjects in the folder.
        
        - A ``_num_objects`` attribute is set onto newly created
          ``repoze.folder.Folder`` instances.  This is a
          ``BTrees.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``).
        
        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 Incompatibilities
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
        
        - 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.
        
        0.2.1 (2008/10/31)
        ------------------
        
        - Remove ``__init__`` from IFolder interface.
         
        0.2 (2008/10/22)
        ------------------
        
        - Update Sphinx docs, using interfaces
        
        - Add folder ``__name__`` to repr and str of folder in output.
        
        0.1 (2008/10/13)
        ------------------
        
        - Initial release.
        
Keywords: web repoze folder
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Provides-Extra: testing
Provides-Extra: docs
