* New module ``zope.interface.registry``. This is code moved from
``zope.component.registry`` which implements a basic nonperistent component
registry as ``zope.interface.registry.Components``. This class was moved
from ``zope.component`` to make porting systems (such as Pyramid) that rely
only on a basic component registry to Python 3 possible without needing to
port the entirety of the ``zope.component`` package. Backwards
compatibility import shims have been left behind in ``zope.component``, so
this change will not break any existing code.
* New ``tests_require`` dependency: ``zope.event`` to test events sent by
Components implementation. The ``zope.interface`` package does not have a
hard dependency on ``zope.event``, but if ``zope.event`` is importable, it
will send component registration events when methods of an instance of
``zope.interface.registry.Components`` are called.
* New interfaces added to support ``zope.interface.registry.Components``
addition: ``ComponentLookupError``, ``Invalid``, ``IObjectEvent``,
``ObjectEvent``, ``IComponentLookup``, ``IRegistration``,
``IUtilityRegistration``, ``IAdapterRegistration``,
``ISubscriptionAdapterRegistration``, ``IHandlerRegistration``,
``IRegistrationEvent``, ``RegistrationEvent``, ``IRegistered``,
``Registered``, ``IUnregistered``, ``Unregistered``,
``IComponentRegistry``, and ``IComponents``.
* No longer Python 2.4 compatible (tested under 2.5, 2.6, 2.7, and 3.2).
Based on PR#42668 by Wen Heping.
CHANGES
*******
==================
3.5.3 (2009-12-08)
==================
- Fix an edge case: make providedBy() work when a class has '__provides__' in
its __slots__ (see http://thread.gmane.org/gmane.comp.web.zope.devel/22490)
==================
3.5.2 (2009-07-01)
==================
- BaseAdapterRegistry.unregister, unsubscribe: Remove empty portions of
the data structures when something is removed. This avoids leaving
references to global objects (interfaces) that may be slated for
removal from the calling application.
==================
3.5.1 (2009-03-18)
==================
- verifyObject: use getattr instead of hasattr to test for object attributes
in order to let exceptions other than AttributeError raised by properties
propagate to the caller
- Add Sphinx-based documentation building to the package buildout
configuration. Use the ``bin/docs`` command after buildout.
- Improve package description a bit. Unify changelog entries formatting.
- Change package's mailing list address to zope-dev at zope.org as
zope3-dev at zope.org is now retired.
==================
3.5.0 (2008-10-26)
==================
- Fixed declaration of _zope_interface_coptimizations, it's not a top level
package.
- Add a DocTestSuite for odd.py module, so their tests are run.
- Allow to bootstrap on Jython.
- Fix https://bugs.launchpad.net/zope3/3.3/+bug/98388: ISpecification
was missing a declaration for __iro__.
- Added optional code optimizations support, which allows the building
of C code optimizations to fail (Jython).
- Replaced `_flatten` with a non-recursive implementation, effectively making
it 3x faster.
==================
3.4.1 (2007-10-02)
==================
- Fixed a setup bug that prevented installation from source on systems
without setuptools.
==================
3.4.0 (2007-07-19)
==================
- Final release for 3.4.0.
====================
3.4.0b3 (2007-05-22)
====================
- Objects with picky custom comparison methods couldn't be added to
component registries. Now, when checking whether an object is
already registered, identity comparison is used.
====================
3.3.0.1 (2007-01-03)
====================
- Made a reference to OverflowWarning, which disappeared in Python
2.5, conditional.
Use eggs instead of distutils.
Remove patch-aa as it no longer applies.
Add licenses/zpl and add zpl to mk/license.mk:DEFAULT_ACCEPTABLE_LICENSES.
Patch posted to pkgsrc-users@ and okayed by agc@.
- assume that Python 2.4 and 2.5 are compatible and allow checking for
fallout.
- remove PYTHON_VERSIONS_COMPATIBLE that are obsoleted by the 2.3+
default. Modify the others to deal with the removals.