* Make @implementer(*iface) and classImplements(cls, *iface) ignore redundant interfaces. If the class already implements an interface through inheritance, it is no longer redeclared specifically for cls. This solves many instances of inconsistent resolution orders, while still allowing the interface to be declared for readability and maintenance purposes. See issue 199.
* Remove all bare except: statements. Previously, when accessing special attributes such as __provides__, __providedBy__, __class__ and __conform__, this package wrapped such access in a bare except: statement, meaning that many errors could pass silently; typically this would result in a fallback path being taken and sometimes (like with providedBy()) the result would be non-sensical. This is especially true when those attributes are implemented with descriptors. Now, only AttributeError is caught. This makes errors more obvious.
* In addition, ZODB errors like POSKeyError could now be propagated where previously they would ignored by this package.
* Require that the second argument (bases) to InterfaceClass is a tuple. This only matters when directly using InterfaceClass to create new interfaces dynamically. Previously, an individual interface was allowed, but did not work correctly. Now it is consistent with type and requires a tuple.
* Let interfaces define custom __adapt__ methods. This implements the other side of the PEP 246 adaptation protocol: objects being adapted could already implement __conform__ if they know about the interface, and now interfaces can implement __adapt__ if they know about particular objects. There is no performance penalty for interfaces that do not supply custom __adapt__ methods.
* Make the internal singleton object returned by APIs like implementedBy and directlyProvidedBy for objects that implement or provide no interfaces more immutable. Previously an internal cache could be mutated. See issue 204.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-zope.interface?expand=0&rev=42
* Allow registering and unregistering instance methods as listeners. See issue 12 and PR 102.
* Synchronize and simplify zope/__init__.py. See issue 114
* Avoid exceptions when the __annotations__ attribute is added to interface definitions with Python 3.x type hints. See issue 98.
* Fix the possibility of a rare crash in the C extension when deallocating items. See issue 100.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-zope.interface?expand=0&rev=31
- Simplyfied spec file
- Update to version 3.7.0:
* LP #570942: Now correctly compare interfaces from different modules
but with the same names.
* 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.
* LP 804951: InterfaceClass instances were unhashable under Python 3.x.
* LP #570942: Now correctly compare interfaces from different modules
but with the same names.
- add documentation files: COPYRIGHT.txt CHANGES.txt LICENSE.txt
- update to 3.6.1
* 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.
* Python 2.3 is no longer supported.
* Use the standard Python doctest module instead of
zope.testing.doctest, which has been deprecated.
* Allow to bootstrap on Jython.
- re-packaged with py2pack
* now builds on all RPM-based distros
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-zope.interface?expand=0&rev=1