437 lines
16 KiB
Text
437 lines
16 KiB
Text
|
Metadata-Version: 1.1
|
||
|
Name: zope.interface
|
||
|
Version: 4.1.1
|
||
|
Summary: Interfaces for Python
|
||
|
Home-page: http://pypi.python.org/pypi/zope.interface
|
||
|
Author: Zope Foundation and Contributors
|
||
|
Author-email: zope-dev@zope.org
|
||
|
License: ZPL 2.1
|
||
|
Description: ``zope.interface`` README
|
||
|
=========================
|
||
|
|
||
|
This package is intended to be independently reusable in any Python
|
||
|
project. It is maintained by the `Zope Toolkit project
|
||
|
<http://docs.zope.org/zopetoolkit/>`_.
|
||
|
|
||
|
This package provides an implementation of "object interfaces" for Python.
|
||
|
Interfaces are a mechanism for labeling objects as conforming to a given
|
||
|
API or contract. So, this package can be considered as implementation of
|
||
|
the `Design By Contract`_ methodology support in Python.
|
||
|
|
||
|
.. _Design By Contract: http://en.wikipedia.org/wiki/Design_by_contract
|
||
|
|
||
|
For detailed documentation, please see http://docs.zope.org/zope.interface
|
||
|
|
||
|
``zope.interface Changelog``
|
||
|
============================
|
||
|
|
||
|
4.1.1 (2014-03-19)
|
||
|
------------------
|
||
|
|
||
|
- Added support for Python 3.4.
|
||
|
|
||
|
|
||
|
4.1.0 (2014-02-05)
|
||
|
------------------
|
||
|
|
||
|
- Updated ``boostrap.py`` to version 2.2.
|
||
|
|
||
|
- Added ``@named(name)`` declaration, that specifies the component name, so it
|
||
|
does not have to be passed in during registration.
|
||
|
|
||
|
|
||
|
4.0.5 (2013-02-28)
|
||
|
------------------
|
||
|
|
||
|
- Fixed a bug where a decorated method caused false positive failures on
|
||
|
``verifyClass()``.
|
||
|
|
||
|
|
||
|
4.0.4 (2013-02-21)
|
||
|
------------------
|
||
|
|
||
|
- Fixed a bug that was revealed by porting zope.traversing. During a loop, the
|
||
|
loop body modified a weakref dict causing a ``RuntimeError`` error.
|
||
|
|
||
|
4.0.3 (2012-12-31)
|
||
|
------------------
|
||
|
|
||
|
- Fleshed out PyPI Trove classifiers.
|
||
|
|
||
|
4.0.2 (2012-11-21)
|
||
|
------------------
|
||
|
|
||
|
- Added support for Python 3.3.
|
||
|
|
||
|
- Restored ability to install the package in the absence of ``setuptools``.
|
||
|
|
||
|
- LP #1055223: Fix test which depended on dictionary order and failed randomly
|
||
|
in Python 3.3.
|
||
|
|
||
|
4.0.1 (2012-05-22)
|
||
|
------------------
|
||
|
|
||
|
- Dropped explicit ``DeprecationWarnings`` for "class advice" APIS (these
|
||
|
APIs are still deprecated under Python 2.x, and still raise an exception
|
||
|
under Python 3.x, but no longer cause a warning to be emitted under
|
||
|
Python 2.x).
|
||
|
|
||
|
4.0.0 (2012-05-16)
|
||
|
------------------
|
||
|
|
||
|
- Automated build of Sphinx HTML docs and running doctest snippets via tox.
|
||
|
|
||
|
- Deprecated the "class advice" APIs from ``zope.interface.declarations``:
|
||
|
``implements``, ``implementsOnly``, and ``classProvides``. In their place,
|
||
|
prefer the equivalent class decorators: ``@implementer``,
|
||
|
``@implementer_only``, and ``@provider``. Code which uses the deprecated
|
||
|
APIs will not work as expected under Py3k.
|
||
|
|
||
|
- Removed use of '2to3' and associated fixers when installing under Py3k.
|
||
|
The code is now in a "compatible subset" which supports Python 2.6, 2.7,
|
||
|
and 3.2, including PyPy 1.8 (the version compatible with the 2.7 language
|
||
|
spec).
|
||
|
|
||
|
- Dropped explicit support for Python 2.4 / 2.5 / 3.1.
|
||
|
|
||
|
- Added support for PyPy.
|
||
|
|
||
|
- Added support for continuous integration using ``tox`` and ``jenkins``.
|
||
|
|
||
|
- Added 'setup.py dev' alias (runs ``setup.py develop`` plus installs
|
||
|
``nose`` and ``coverage``).
|
||
|
|
||
|
- Added 'setup.py docs' alias (installs ``Sphinx`` and dependencies).
|
||
|
|
||
|
- Replaced all unittest coverage previously accomplished via doctests with
|
||
|
unittests. The doctests have been moved into a ``docs`` section, managed
|
||
|
as a Sphinx collection.
|
||
|
|
||
|
- LP #910987: Ensure that the semantics of the ``lookup`` method of
|
||
|
``zope.interface.adapter.LookupBase`` are the same in both the C and
|
||
|
Python implementations.
|
||
|
|
||
|
- LP #900906: Avoid exceptions due to tne new ``__qualname__`` attribute
|
||
|
added in Python 3.3 (see PEP 3155 for rationale). Thanks to Antoine
|
||
|
Pitrou for the patch.
|
||
|
|
||
|
3.8.0 (2011-09-22)
|
||
|
------------------
|
||
|
|
||
|
- 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).
|
||
|
|
||
|
3.7.0 (2011-08-13)
|
||
|
------------------
|
||
|
|
||
|
- Move changes from 3.6.2 - 3.6.5 to a new 3.7.x release line.
|
||
|
|
||
|
3.6.7 (2011-08-20)
|
||
|
------------------
|
||
|
|
||
|
- Fix sporadic failures on x86-64 platforms in tests of rich comparisons
|
||
|
of interfaces.
|
||
|
|
||
|
3.6.6 (2011-08-13)
|
||
|
------------------
|
||
|
|
||
|
- LP #570942: Now correctly compare interfaces from different modules but
|
||
|
with the same names.
|
||
|
|
||
|
N.B.: This is a less intrusive / destabilizing fix than the one applied in
|
||
|
3.6.3: we only fix the underlying cmp-alike function, rather than adding
|
||
|
the other "rich comparison" functions.
|
||
|
|
||
|
- Revert to software as released with 3.6.1 for "stable" 3.6 release branch.
|
||
|
|
||
|
3.6.5 (2011-08-11)
|
||
|
------------------
|
||
|
|
||
|
- LP #811792: work around buggy behavior in some subclasses of
|
||
|
``zope.interface.interface.InterfaceClass``, which invoke ``__hash__``
|
||
|
before initializing ``__module__`` and ``__name__``. The workaround
|
||
|
returns a fixed constant hash in such cases, and issues a ``UserWarning``.
|
||
|
|
||
|
- LP #804832: Under PyPy, ``zope.interface`` should not build its C
|
||
|
extension. Also, prevent attempting to build it under Jython.
|
||
|
|
||
|
- Add a tox.ini for easier xplatform testing.
|
||
|
|
||
|
- Fix testing deprecation warnings issued when tested under Py3K.
|
||
|
|
||
|
3.6.4 (2011-07-04)
|
||
|
------------------
|
||
|
|
||
|
- LP 804951: InterfaceClass instances were unhashable under Python 3.x.
|
||
|
|
||
|
3.6.3 (2011-05-26)
|
||
|
------------------
|
||
|
|
||
|
- LP #570942: Now correctly compare interfaces from different modules but
|
||
|
with the same names.
|
||
|
|
||
|
3.6.2 (2011-05-17)
|
||
|
------------------
|
||
|
|
||
|
- Moved detailed documentation out-of-line from PyPI page, linking instead to
|
||
|
http://docs.zope.org/zope.interface .
|
||
|
|
||
|
- Fixes for small issues when running tests under Python 3.2 using
|
||
|
``zope.testrunner``.
|
||
|
|
||
|
- LP # 675064: Specify return value type for C optimizations module init
|
||
|
under Python 3: undeclared value caused warnings, and segfaults on some
|
||
|
64 bit architectures.
|
||
|
|
||
|
- setup.py now raises RuntimeError if you don't have Distutils installed when
|
||
|
running under Python 3.
|
||
|
|
||
|
3.6.1 (2010-05-03)
|
||
|
------------------
|
||
|
|
||
|
- A non-ASCII character in the changelog made 3.6.0 uninstallable on
|
||
|
Python 3 systems with another default encoding than UTF-8.
|
||
|
|
||
|
- Fixed compiler warnings under GCC 4.3.3.
|
||
|
|
||
|
3.6.0 (2010-04-29)
|
||
|
------------------
|
||
|
|
||
|
- LP #185974: Clear the cache used by ``Specificaton.get`` inside
|
||
|
``Specification.changed``. Thanks to Jacob Holm for the patch.
|
||
|
|
||
|
- Added support for Python 3.1. Contributors:
|
||
|
|
||
|
Lennart Regebro
|
||
|
Martin v Loewis
|
||
|
Thomas Lotze
|
||
|
Wolfgang Schnerring
|
||
|
|
||
|
The 3.1 support is completely backwards compatible. However, the implements
|
||
|
syntax used under Python 2.X does not work under 3.X, since it depends on
|
||
|
how metaclasses are implemented and this has changed. Instead it now supports
|
||
|
a decorator syntax (also under Python 2.X)::
|
||
|
|
||
|
class Foo:
|
||
|
implements(IFoo)
|
||
|
...
|
||
|
|
||
|
can now also be written::
|
||
|
|
||
|
@implementer(IFoo):
|
||
|
class Foo:
|
||
|
...
|
||
|
|
||
|
There are 2to3 fixers available to do this change automatically in the
|
||
|
zope.fixers package.
|
||
|
|
||
|
- Python 2.3 is no longer supported.
|
||
|
|
||
|
|
||
|
3.5.4 (2009-12-23)
|
||
|
------------------
|
||
|
|
||
|
- Use the standard Python doctest module instead of zope.testing.doctest, which
|
||
|
has been deprecated.
|
||
|
|
||
|
|
||
|
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.
|
||
|
|
||
|
|
||
|
3.3.0 (2007/01/03)
|
||
|
------------------
|
||
|
|
||
|
New Features
|
||
|
++++++++++++
|
||
|
|
||
|
- The adapter-lookup algorithim was refactored to make it
|
||
|
much simpler and faster.
|
||
|
|
||
|
Also, more of the adapter-lookup logic is implemented in C, making
|
||
|
debugging of application code easier, since there is less
|
||
|
infrastructre code to step through.
|
||
|
|
||
|
- We now treat objects without interface declarations as if they
|
||
|
declared that they provide zope.interface.Interface.
|
||
|
|
||
|
- There are a number of richer new adapter-registration interfaces
|
||
|
that provide greater control and introspection.
|
||
|
|
||
|
- Added a new interface decorator to zope.interface that allows the
|
||
|
setting of tagged values on an interface at definition time (see
|
||
|
zope.interface.taggedValue).
|
||
|
|
||
|
Bug Fixes
|
||
|
+++++++++
|
||
|
|
||
|
- A bug in multi-adapter lookup sometimes caused incorrect adapters to
|
||
|
be returned.
|
||
|
|
||
|
|
||
|
3.2.0.2 (2006-04-15)
|
||
|
--------------------
|
||
|
|
||
|
- Fix packaging bug: 'package_dir' must be a *relative* path.
|
||
|
|
||
|
|
||
|
3.2.0.1 (2006-04-14)
|
||
|
--------------------
|
||
|
|
||
|
- Packaging change: suppress inclusion of 'setup.cfg' in 'sdist' builds.
|
||
|
|
||
|
|
||
|
3.2.0 (2006-01-05)
|
||
|
------------------
|
||
|
|
||
|
- Corresponds to the verison of the zope.interface package shipped as part of
|
||
|
the Zope 3.2.0 release.
|
||
|
|
||
|
|
||
|
3.1.0 (2005-10-03)
|
||
|
------------------
|
||
|
|
||
|
- Corresponds to the verison of the zope.interface package shipped as part of
|
||
|
the Zope 3.1.0 release.
|
||
|
|
||
|
- Made attribute resolution order consistent with component lookup order,
|
||
|
i.e. new-style class MRO semantics.
|
||
|
|
||
|
- Deprecated 'isImplementedBy' and 'isImplementedByInstancesOf' APIs in
|
||
|
favor of 'implementedBy' and 'providedBy'.
|
||
|
|
||
|
|
||
|
3.0.1 (2005-07-27)
|
||
|
------------------
|
||
|
|
||
|
- Corresponds to the verison of the zope.interface package shipped as part of
|
||
|
the Zope X3.0.1 release.
|
||
|
|
||
|
- Fixed a bug reported by James Knight, which caused adapter registries
|
||
|
to fail occasionally to reflect declaration changes.
|
||
|
|
||
|
|
||
|
3.0.0 (2004-11-07)
|
||
|
------------------
|
||
|
|
||
|
- Corresponds to the verison of the zope.interface package shipped as part of
|
||
|
the Zope X3.0.0 release.
|
||
|
|
||
|
Platform: UNKNOWN
|
||
|
Classifier: Development Status :: 5 - Production/Stable
|
||
|
Classifier: Intended Audience :: Developers
|
||
|
Classifier: License :: OSI Approved :: Zope Public License
|
||
|
Classifier: Operating System :: OS Independent
|
||
|
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: Framework :: Zope3
|
||
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|