Metadata-Version: 2.1
Name: zope.interface
Version: 4.6.0
Summary: Interfaces for Python
Home-page: https://github.com/zopefoundation/zope.interface
Author: Zope Foundation and Contributors
Author-email: zope-dev@zope.org
License: ZPL 2.1
Keywords: interface,components,plugins
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.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Framework :: Zope :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Requires-Dist: setuptools
Provides-Extra: docs
Requires-Dist: Sphinx ; extra == 'docs'
Requires-Dist: repoze.sphinx.autointerface ; extra == 'docs'
Provides-Extra: test
Requires-Dist: zope.event ; extra == 'test'
Provides-Extra: testing
Requires-Dist: zope.event ; extra == 'testing'
Requires-Dist: nose ; extra == 'testing'
Requires-Dist: coverage ; extra == 'testing'
``zope.interface``
==================
.. image:: https://img.shields.io/pypi/v/zope.interface.svg
:target: https://pypi.python.org/pypi/zope.interface/
:alt: Latest Version
.. image:: https://img.shields.io/pypi/pyversions/zope.interface.svg
:target: https://pypi.org/project/zope.interface/
:alt: Supported Python versions
.. image:: https://travis-ci.org/zopefoundation/zope.interface.svg?branch=master
:target: https://travis-ci.org/zopefoundation/zope.interface
.. image:: https://readthedocs.org/projects/zopeinterface/badge/?version=latest
:target: https://zopeinterface.readthedocs.io/en/latest/
:alt: Documentation Status
This package is intended to be independently reusable in any Python
project. It is maintained by the `Zope Toolkit project
<https://zopetoolkit.readthedocs.io/>`_.
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 https://zopeinterface.readthedocs.io/en/latest/
Changes
=======
4.6.0 (2018-10-23)
------------------
- Add support for Python 3.7
- Fix ``verifyObject`` for class objects with staticmethods on
Python 3. See `issue 126
<https://github.com/zopefoundation/zope.interface/issues/126>`_.
4.5.0 (2018-04-19)
------------------
- Drop support for 3.3, avoid accidental dependence breakage via setup.py.
See `PR 110 <https://github.com/zopefoundation/zope.interface/pull/110>`_.
- Allow registering and unregistering instance methods as listeners.
See `issue 12 <https://github.com/zopefoundation/zope.interface/issues/12>`_
and `PR 102 <https://github.com/zopefoundation/zope.interface/pull/102>`_.
- Synchronize and simplify zope/__init__.py. See `issue 114
<https://github.com/zopefoundation/zope.interface/issues/114>`_
4.4.3 (2017-09-22)
------------------
- Avoid exceptions when the ``__annotations__`` attribute is added to
interface definitions with Python 3.x type hints. See `issue 98
<https://github.com/zopefoundation/zope.interface/issues/98>`_.
- Fix the possibility of a rare crash in the C extension when
deallocating items. See `issue 100
<https://github.com/zopefoundation/zope.interface/issues/100>`_.
4.4.2 (2017-06-14)
------------------
- Fix a regression storing
``zope.component.persistentregistry.PersistentRegistry`` instances.
See `issue 85 <https://github.com/zopefoundation/zope.interface/issues/85>`_.
- Fix a regression that could lead to the utility registration cache
of ``Components`` getting out of sync. See `issue 93
<https://github.com/zopefoundation/zope.interface/issues/93>`_.
4.4.1 (2017-05-13)
------------------
- Simplify the caching of utility-registration data. In addition to
simplification, avoids spurious test failures when checking for
leaks in tests with persistent registries. See `pull 84
<https://github.com/zopefoundation/zope.interface/pull/84>`_.
- Raise ``ValueError`` when non-text names are passed to adapter registry
methods: prevents corruption of lookup caches.
4.4.0 (2017-04-21)
------------------
- Avoid a warning from the C compiler.
(https://github.com/zopefoundation/zope.interface/issues/71)
- Add support for Python 3.6.
4.3.3 (2016-12-13)
------------------
- Correct typos and ReST formatting errors in documentation.
- Add API documentation for the adapter registry.
- Ensure that the ``LICENSE.txt`` file is included in built wheels.
- Fix C optimizations broken on Py3k. See the Python bug at:
http://bugs.python.org/issue15657
(https://github.com/zopefoundation/zope.interface/issues/60)
4.3.2 (2016-09-05)
------------------
- Fix equality testing of ``implementedBy`` objects and proxies.
(https://github.com/zopefoundation/zope.interface/issues/55)
4.3.1 (2016-08-31)
------------------
- Support Components subclasses that are not hashable.
(https://github.com/zopefoundation/zope.interface/issues/53)
4.3.0 (2016-08-31)
------------------
- Add the ability to sort the objects returned by ``implementedBy``.
This is compatible with the way interface classes sort so they can
be used together in ordered containers like BTrees.
(https://github.com/zopefoundation/zope.interface/issues/42)
- Make ``setuptools`` a hard dependency of ``setup.py``.
(https://github.com/zopefoundation/zope.interface/issues/13)
- Change a linear algorithm (O(n)) in ``Components.registerUtility`` and
``Components.unregisterUtility`` into a dictionary lookup (O(1)) for
hashable components. This substantially improves the time taken to
manipulate utilities in large registries at the cost of some
additional memory usage. (https://github.com/zopefoundation/zope.interface/issues/46)
4.2.0 (2016-06-10)
------------------
- Add support for Python 3.5
- Drop support for Python 2.6 and 3.2.
4.1.3 (2015-10-05)
------------------
- Fix installation without a C compiler on Python 3.5
(https://github.com/zopefoundation/zope.interface/issues/24).
4.1.2 (2014-12-27)
------------------
- Add support for PyPy3.
- Remove unittest assertions deprecated in Python3.x.
- Add ``zope.interface.document.asReStructuredText``, which formats the
generated text for an interface using ReST double-backtick markers.
4.1.1 (2014-03-19)
------------------
- Add support for Python 3.4.
4.1.0 (2014-02-05)
------------------
- Update ``boostrap.py`` to version 2.2.
- Add ``@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)
------------------
- Fix a bug where a decorated method caused false positive failures on
``verifyClass()``.
4.0.4 (2013-02-21)
------------------
- Fix 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)
------------------
- Add 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)
------------------
- Drop 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.
- Deprecate 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.
- Remove 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).
- Drop explicit support for Python 2.4 / 2.5 / 3.1.
- Add support for PyPy.
- Add support for continuous integration using ``tox`` and ``jenkins``.
- Add 'setup.py dev' alias (runs ``setup.py develop`` plus installs
``nose`` and ``coverage``).
- Add 'setup.py docs' alias (installs ``Sphinx`` and dependencies).
- Replace 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.
Loading ...