single |
====================
``zope.interface``
====================
:alt: Latest Version
:alt: Supported Python versions
:alt: Documentation Status
This package is intended to be independently reusable in any Python
project. It is maintained by the [Zope Toolkit project
].
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
=========
6.0 (2023-03-17)
================
- Build Linux binary wheels for Python 3.11.
- Drop support for Python 2.7, 3.5, 3.6.
- Fix test deprecation warning on Python 3.11.
- Add preliminary support for Python 3.12 as of 3.12a5.
- Drop:
+ `zope.interface.implements`
+ `zope.interface.implementsOnly`
+ `zope.interface.classProvides`
5.5.2 (2022-11-17)
==================
- Add support for building arm64 wheels on macOS.
5.5.1 (2022-11-03)
==================
- Add support for final Python 3.11 release.
5.5.0 (2022-10-10)
==================
- Add support for Python 3.10 and 3.11 (as of 3.11.0rc2).
- Add missing Trove classifier showing support for Python 3.9.
- Add some more entries to ``zope.interface.interfaces.__all__``.
- Disable unsafe math optimizations in C code. See [pull request 262
].
5.4.0 (2021-04-15)
==================
- Make the C implementation of the __providedBy__ descriptor stop
ignoring all errors raised when accessing the instance's
__provides__. Now it behaves like the Python version and only
catches AttributeError. The previous behaviour could lead to
crashing the interpreter in cases of recursion and errors. See
[issue 239].
- Update the ``repr() and str()`` of various objects to be shorter
and more informative. In many cases, the ``repr()`` is now something
that can be evaluated to produce an equal object. For example, what
was previously printed as `` is now
shown as classImplements(list, IMutableSequence, IIterable)``. See
[issue 236].
- Make ``Declaration.__add__`` (as in ``implementedBy(Cls) +
ISomething``) try harder to preserve a consistent resolution order
when the two arguments share overlapping pieces of the interface
inheritance hierarchy. Previously, the right hand side was always
put at the end of the resolution order, which could easily produce
invalid orders. See [issue 193
].
5.3.0 (2020-03-21)
==================
- No changes from 5.3.0a1
5.3.0a1 (2021-03-18)
====================
|