Skip to main content

Interfaces for Python

Project description

zope.interface README

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.

For detailed documentation, please see http://docs.zope.org/zope.interface

zope.interface Changelog

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)

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.

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zope.interface-4.0.5.zip (173.4 kB view details)

Uploaded Source

Built Distributions

zope.interface-4.0.5.win-amd64-py3.3.exe (358.2 kB view details)

Uploaded Source

zope.interface-4.0.5.win-amd64-py3.2.exe (360.2 kB view details)

Uploaded Source

zope.interface-4.0.5.win-amd64-py2.7.exe (359.9 kB view details)

Uploaded Source

zope.interface-4.0.5.win-amd64-py2.6.exe (359.9 kB view details)

Uploaded Source

zope.interface-4.0.5.win32-py3.3.exe (326.3 kB view details)

Uploaded Source

zope.interface-4.0.5.win32-py3.2.exe (331.4 kB view details)

Uploaded Source

zope.interface-4.0.5.win32-py2.7.exe (331.7 kB view details)

Uploaded Source

zope.interface-4.0.5.win32-py2.6.exe (331.7 kB view details)

Uploaded Source

zope.interface-4.0.5-py3.3-win-amd64.egg (297.8 kB view details)

Uploaded Egg

zope.interface-4.0.5-py3.3-win32.egg (296.9 kB view details)

Uploaded Egg

zope.interface-4.0.5-py3.2-win-amd64.egg (279.9 kB view details)

Uploaded Egg

zope.interface-4.0.5-py3.2-win32.egg (278.9 kB view details)

Uploaded Egg

zope.interface-4.0.5-py2.7-win-amd64.egg (274.1 kB view details)

Uploaded Egg

zope.interface-4.0.5-py2.7-win32.egg (273.2 kB view details)

Uploaded Egg

zope.interface-4.0.5-py2.6-win-amd64.egg (275.0 kB view details)

Uploaded Egg

zope.interface-4.0.5-py2.6-win32.egg (274.0 kB view details)

Uploaded Egg

File details

Details for the file zope.interface-4.0.5.zip.

File metadata

  • Download URL: zope.interface-4.0.5.zip
  • Upload date:
  • Size: 173.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for zope.interface-4.0.5.zip
Algorithm Hash digest
SHA256 1a7c84716bbd9981915b64a81d8a3f076a5934a8c8df4224655469b3564940cc
MD5 caf26025ae1b02da124a58340e423dfe
BLAKE2b-256 7cca17ae9e9dfae46271dcaba16a1f69d75870da09ab52896516c8354014fbed

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5.win-amd64-py3.3.exe.

File metadata

File hashes

Hashes for zope.interface-4.0.5.win-amd64-py3.3.exe
Algorithm Hash digest
SHA256 aa563ea58a8e0068b1fea5c2a5cf981d0a38edcf75868aa49f7b9404d2252246
MD5 69424402e0ed5fc193218ed062818055
BLAKE2b-256 96deddca2625015bd692b8336dd95a28427107bdb43f4db8de77ddc12ba0d698

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5.win-amd64-py3.2.exe.

File metadata

File hashes

Hashes for zope.interface-4.0.5.win-amd64-py3.2.exe
Algorithm Hash digest
SHA256 f2eda5c8cd3e8023b084de3509b9402409d71e85242bb29d0cc3b15e16a31358
MD5 881ee194d4924ea440154c09e75824f7
BLAKE2b-256 f5fce2403b1e229ddbf8acaf35521865783fdea6a911ec54737eb84a83f19acd

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5.win-amd64-py2.7.exe.

File metadata

File hashes

Hashes for zope.interface-4.0.5.win-amd64-py2.7.exe
Algorithm Hash digest
SHA256 d8c47963d6e7a9fdffc458c221cc932bd1fea86a7f27249f2715a3e2f6fc1bf3
MD5 45770c7e5123674b8f39eba75d8386b9
BLAKE2b-256 bf9ab3a962f7a0818fbecfa565c94340d5e44a8185f7e1dac07281dce9641740

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5.win-amd64-py2.6.exe.

File metadata

File hashes

Hashes for zope.interface-4.0.5.win-amd64-py2.6.exe
Algorithm Hash digest
SHA256 4b527064fe6e098e58b9f07059745de7ef2439eb1d0bf2783fecce2edafbe4a2
MD5 cce495b9a80d24161c62fb922092e895
BLAKE2b-256 d313539e8c0550995a77529b8454ee957ddcc8c97f137a6cfd79adfd2a37344a

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5.win32-py3.3.exe.

File metadata

File hashes

Hashes for zope.interface-4.0.5.win32-py3.3.exe
Algorithm Hash digest
SHA256 0c9cb7651b827d9cb13fad0284e09a1778890c35dec76cc4d7e11975e4db27ff
MD5 4b3703e93cdb290a26a0334124de89f8
BLAKE2b-256 3c3f3c30f130531b24fcec783fbfd457a1dc71f805d3ee28f8672cb012cfb5af

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5.win32-py3.2.exe.

File metadata

File hashes

Hashes for zope.interface-4.0.5.win32-py3.2.exe
Algorithm Hash digest
SHA256 4f581a6b38951ffb63bc798e64a68d5eae2ed02674ce74051287534d1e718e30
MD5 d45a24a56ee07202de10765e8c3d1e8d
BLAKE2b-256 60bb9f16ae656c0a1a3cf658ef78070f78c8bc70d4d7552a59c274f8506ef963

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5.win32-py2.7.exe.

File metadata

File hashes

Hashes for zope.interface-4.0.5.win32-py2.7.exe
Algorithm Hash digest
SHA256 fde0228271e80110669fabeb8d865cad76ae50e5045238de11d28f0babb0a7dc
MD5 0fe8cccbbc244a23bbce79ba133f0405
BLAKE2b-256 cafb8dab537846b34ca865c0d427218b4a149dd31e8690164311eab5f4aa91d8

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5.win32-py2.6.exe.

File metadata

File hashes

Hashes for zope.interface-4.0.5.win32-py2.6.exe
Algorithm Hash digest
SHA256 dafcebacc739289ca8e5c0e7a5d5d8762c9b8a429f04fe605082e9fd36790f87
MD5 7f9be2c324b796c552423035eb5433e1
BLAKE2b-256 9c6f59b41ea17ba8deb9dfb1e8bca621a77de778b8740ef5d119bc605564aa05

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5-py3.3-win-amd64.egg.

File metadata

File hashes

Hashes for zope.interface-4.0.5-py3.3-win-amd64.egg
Algorithm Hash digest
SHA256 7aa59a22fea7f9709f422305fba97fe726b2d9d02b1a70575753485700719bdf
MD5 9bd1bc00b1700b36163aa24ce2660daf
BLAKE2b-256 d8869386a8b71a1d7f2359bc5f4ec1277fe638ad14553e8737fa2b1b417c5529

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5-py3.3-win32.egg.

File metadata

File hashes

Hashes for zope.interface-4.0.5-py3.3-win32.egg
Algorithm Hash digest
SHA256 b5254f01290cd865845101a297c861422741cebe1a01fa4729fe996a7d6d1b13
MD5 9ffd772a3a493e92a42907c067b40321
BLAKE2b-256 56858fe1e7641d67066c9b149c62981c3f19808b28b8eef67bf623842de9b0bc

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5-py3.2-win-amd64.egg.

File metadata

File hashes

Hashes for zope.interface-4.0.5-py3.2-win-amd64.egg
Algorithm Hash digest
SHA256 0169b3ae586cb536cbf52805fb32c5f523077b1fea6ff1e74aff1d7efc8c5fdc
MD5 4284b0846ce00785ad171b9214f93090
BLAKE2b-256 4cccccbfc27ac342057c91e264181e7d9136fdfb061fc9f1344b99a14f4da359

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5-py3.2-win32.egg.

File metadata

File hashes

Hashes for zope.interface-4.0.5-py3.2-win32.egg
Algorithm Hash digest
SHA256 4b453d12784149c247903553802b7559e810c427d4d6c4cf5d1595541cbbc403
MD5 996d063bcbf7d5970ccc7f568de07a7e
BLAKE2b-256 baddc72ec0a8ec83ea9401b0d56895fff10ddf1eec97473116e939d4460ad0aa

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5-py2.7-win-amd64.egg.

File metadata

File hashes

Hashes for zope.interface-4.0.5-py2.7-win-amd64.egg
Algorithm Hash digest
SHA256 05d5df02bccb1b461ee871c72e677e5225b738b568a1f5a8558b0757c0e0f17e
MD5 9cfa352b4236951317f67b3f57a98bbc
BLAKE2b-256 7c9741857cc88d05cff798d87ef60773c4d7682102992a609b439015740ec36b

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5-py2.7-win32.egg.

File metadata

File hashes

Hashes for zope.interface-4.0.5-py2.7-win32.egg
Algorithm Hash digest
SHA256 4c0941e82190715d1a0046d165a826d2162c751f5bb8867feb78c3a036a734ae
MD5 baa9afbe523cd23fb8f4d02305a78aaa
BLAKE2b-256 059d21a7f3e0104fbde152ee7ec0cbad5f8e7cf9319f892b6b0e2cb914389957

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5-py2.6-win-amd64.egg.

File metadata

File hashes

Hashes for zope.interface-4.0.5-py2.6-win-amd64.egg
Algorithm Hash digest
SHA256 ab3d16b6550d25e0b1234ad270fcb4007c754777c81714eee6de2a3bee093328
MD5 1e75b9198d9caf7df3c817ae52eaabfb
BLAKE2b-256 ba1f1114aa1a03c3bbc68cf4ea2b4efd410aafaff038e3170bed5aa0151a3f0f

See more details on using hashes here.

File details

Details for the file zope.interface-4.0.5-py2.6-win32.egg.

File metadata

File hashes

Hashes for zope.interface-4.0.5-py2.6-win32.egg
Algorithm Hash digest
SHA256 458ffdb8e3efb4bac97e7d904c8fb51d0bbb86c194005541e3ac3560853e8cb9
MD5 31a6d2146a1d420187720b5f3c53a03d
BLAKE2b-256 fe3906e4b971edeb18adf8a0b58beef87b652a128532ef2ad1eb0f7fde10beb3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page