Skip to content

Commit 2fd652d

Browse files
committed
New SVN branch for merging from LP.
2 parents 9a67b97 + 1722b56 commit 2fd652d

60 files changed

Lines changed: 15653 additions & 6 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGES.txt

Lines changed: 311 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,311 @@
1+
``zope.interface Changelog``
2+
============================
3+
4+
3.8.1 (unreleased)
5+
------------------
6+
7+
- LP #900906: Avoid exceptions due to tne new ``__qualname__`` attribute
8+
added in Python 3.3 (see PEP 3155 for rationale). Thanks to Antoine
9+
Pitrou for the patch.
10+
11+
3.8.0 (2011-09-22)
12+
------------------
13+
14+
- New module ``zope.interface.registry``. This is code moved from
15+
``zope.component.registry`` which implements a basic nonperistent component
16+
registry as ``zope.interface.registry.Components``. This class was moved
17+
from ``zope.component`` to make porting systems (such as Pyramid) that rely
18+
only on a basic component registry to Python 3 possible without needing to
19+
port the entirety of the ``zope.component`` package. Backwards
20+
compatibility import shims have been left behind in ``zope.component``, so
21+
this change will not break any existing code.
22+
23+
- New ``tests_require`` dependency: ``zope.event`` to test events sent by
24+
Components implementation. The ``zope.interface`` package does not have a
25+
hard dependency on ``zope.event``, but if ``zope.event`` is importable, it
26+
will send component registration events when methods of an instance of
27+
``zope.interface.registry.Components`` are called.
28+
29+
- New interfaces added to support ``zope.interface.registry.Components``
30+
addition: ``ComponentLookupError``, ``Invalid``, ``IObjectEvent``,
31+
``ObjectEvent``, ``IComponentLookup``, ``IRegistration``,
32+
``IUtilityRegistration``, ``IAdapterRegistration``,
33+
``ISubscriptionAdapterRegistration``, ``IHandlerRegistration``,
34+
``IRegistrationEvent``, ``RegistrationEvent``, ``IRegistered``,
35+
``Registered``, ``IUnregistered``, ``Unregistered``,
36+
``IComponentRegistry``, and ``IComponents``.
37+
38+
- No longer Python 2.4 compatible (tested under 2.5, 2.6, 2.7, and 3.2).
39+
40+
3.7.0 (2011-08-13)
41+
------------------
42+
43+
- Move changes from 3.6.2 - 3.6.5 to a new 3.7.x release line.
44+
45+
3.6.7 (2011-08-20)
46+
------------------
47+
48+
- Fix sporadic failures on x86-64 platforms in tests of rich comparisons
49+
of interfaces.
50+
51+
3.6.6 (2011-08-13)
52+
------------------
53+
54+
- LP #570942: Now correctly compare interfaces from different modules but
55+
with the same names.
56+
57+
N.B.: This is a less intrusive / destabilizing fix than the one applied in
58+
3.6.3: we only fix the underlying cmp-alike function, rather than adding
59+
the other "rich comparison" functions.
60+
61+
- Revert to software as released with 3.6.1 for "stable" 3.6 release branch.
62+
63+
3.6.5 (2011-08-11)
64+
------------------
65+
66+
- LP #811792: work around buggy behavior in some subclasses of
67+
``zope.interface.interface.InterfaceClass``, which invoke ``__hash__``
68+
before initializing ``__module__`` and ``__name__``. The workaround
69+
returns a fixed constant hash in such cases, and issues a ``UserWarning``.
70+
71+
- LP #804832: Under PyPy, ``zope.interface`` should not build its C
72+
extension. Also, prevent attempting to build it under Jython.
73+
74+
- Add a tox.ini for easier xplatform testing.
75+
76+
- Fix testing deprecation warnings issued when tested under Py3K.
77+
78+
3.6.4 (2011-07-04)
79+
------------------
80+
81+
- LP 804951: InterfaceClass instances were unhashable under Python 3.x.
82+
83+
3.6.3 (2011-05-26)
84+
------------------
85+
86+
- LP #570942: Now correctly compare interfaces from different modules but
87+
with the same names.
88+
89+
3.6.2 (2011-05-17)
90+
------------------
91+
92+
- Moved detailed documentation out-of-line from PyPI page, linking instead to
93+
http://docs.zope.org/zope.interface .
94+
95+
- Fixes for small issues when running tests under Python 3.2 using
96+
``zope.testrunner``.
97+
98+
- LP # 675064: Specify return value type for C optimizations module init
99+
under Python 3: undeclared value caused warnings, and segfaults on some
100+
64 bit architectures.
101+
102+
- setup.py now raises RuntimeError if you don't have Distutils installed when
103+
running under Python 3.
104+
105+
3.6.1 (2010-05-03)
106+
------------------
107+
108+
- A non-ASCII character in the changelog made 3.6.0 uninstallable on
109+
Python 3 systems with another default encoding than UTF-8.
110+
111+
- Fixed compiler warnings under GCC 4.3.3.
112+
113+
3.6.0 (2010-04-29)
114+
------------------
115+
116+
- LP #185974: Clear the cache used by ``Specificaton.get`` inside
117+
``Specification.changed``. Thanks to Jacob Holm for the patch.
118+
119+
- Added support for Python 3.1. Contributors:
120+
121+
Lennart Regebro
122+
Martin v Loewis
123+
Thomas Lotze
124+
Wolfgang Schnerring
125+
126+
The 3.1 support is completely backwards compatible. However, the implements
127+
syntax used under Python 2.X does not work under 3.X, since it depends on
128+
how metaclasses are implemented and this has changed. Instead it now supports
129+
a decorator syntax (also under Python 2.X)::
130+
131+
class Foo:
132+
implements(IFoo)
133+
...
134+
135+
can now also be written::
136+
137+
@implementer(IFoo):
138+
class Foo:
139+
...
140+
141+
There are 2to3 fixers available to do this change automatically in the
142+
zope.fixers package.
143+
144+
- Python 2.3 is no longer supported.
145+
146+
147+
3.5.4 (2009-12-23)
148+
------------------
149+
150+
- Use the standard Python doctest module instead of zope.testing.doctest, which
151+
has been deprecated.
152+
153+
154+
3.5.3 (2009-12-08)
155+
------------------
156+
157+
- Fix an edge case: make providedBy() work when a class has '__provides__' in
158+
its __slots__ (see http://thread.gmane.org/gmane.comp.web.zope.devel/22490)
159+
160+
161+
3.5.2 (2009-07-01)
162+
------------------
163+
164+
- BaseAdapterRegistry.unregister, unsubscribe: Remove empty portions of
165+
the data structures when something is removed. This avoids leaving
166+
references to global objects (interfaces) that may be slated for
167+
removal from the calling application.
168+
169+
170+
3.5.1 (2009-03-18)
171+
------------------
172+
173+
- verifyObject: use getattr instead of hasattr to test for object attributes
174+
in order to let exceptions other than AttributeError raised by properties
175+
propagate to the caller
176+
177+
- Add Sphinx-based documentation building to the package buildout
178+
configuration. Use the ``bin/docs`` command after buildout.
179+
180+
- Improve package description a bit. Unify changelog entries formatting.
181+
182+
- Change package's mailing list address to zope-dev at zope.org as
183+
zope3-dev at zope.org is now retired.
184+
185+
186+
3.5.0 (2008-10-26)
187+
------------------
188+
189+
- Fixed declaration of _zope_interface_coptimizations, it's not a top level
190+
package.
191+
192+
- Add a DocTestSuite for odd.py module, so their tests are run.
193+
194+
- Allow to bootstrap on Jython.
195+
196+
- Fix https://bugs.launchpad.net/zope3/3.3/+bug/98388: ISpecification
197+
was missing a declaration for __iro__.
198+
199+
- Added optional code optimizations support, which allows the building
200+
of C code optimizations to fail (Jython).
201+
202+
- Replaced `_flatten` with a non-recursive implementation, effectively making
203+
it 3x faster.
204+
205+
206+
3.4.1 (2007-10-02)
207+
------------------
208+
209+
- Fixed a setup bug that prevented installation from source on systems
210+
without setuptools.
211+
212+
213+
3.4.0 (2007-07-19)
214+
------------------
215+
216+
- Final release for 3.4.0.
217+
218+
219+
3.4.0b3 (2007-05-22)
220+
--------------------
221+
222+
223+
- Objects with picky custom comparison methods couldn't be added to
224+
component registries. Now, when checking whether an object is
225+
already registered, identity comparison is used.
226+
227+
228+
3.3.0.1 (2007-01-03)
229+
--------------------
230+
231+
- Made a reference to OverflowWarning, which disappeared in Python
232+
2.5, conditional.
233+
234+
235+
3.3.0 (2007/01/03)
236+
------------------
237+
238+
New Features
239+
++++++++++++
240+
241+
- The adapter-lookup algorithim was refactored to make it
242+
much simpler and faster.
243+
244+
Also, more of the adapter-lookup logic is implemented in C, making
245+
debugging of application code easier, since there is less
246+
infrastructre code to step through.
247+
248+
- We now treat objects without interface declarations as if they
249+
declared that they provide zope.interface.Interface.
250+
251+
- There are a number of richer new adapter-registration interfaces
252+
that provide greater control and introspection.
253+
254+
- Added a new interface decorator to zope.interface that allows the
255+
setting of tagged values on an interface at definition time (see
256+
zope.interface.taggedValue).
257+
258+
Bug Fixes
259+
+++++++++
260+
261+
- A bug in multi-adapter lookup sometimes caused incorrect adapters to
262+
be returned.
263+
264+
265+
3.2.0.2 (2006-04-15)
266+
--------------------
267+
268+
- Fix packaging bug: 'package_dir' must be a *relative* path.
269+
270+
271+
3.2.0.1 (2006-04-14)
272+
--------------------
273+
274+
- Packaging change: suppress inclusion of 'setup.cfg' in 'sdist' builds.
275+
276+
277+
3.2.0 (2006-01-05)
278+
------------------
279+
280+
- Corresponds to the verison of the zope.interface package shipped as part of
281+
the Zope 3.2.0 release.
282+
283+
284+
3.1.0 (2005-10-03)
285+
------------------
286+
287+
- Corresponds to the verison of the zope.interface package shipped as part of
288+
the Zope 3.1.0 release.
289+
290+
- Made attribute resolution order consistent with component lookup order,
291+
i.e. new-style class MRO semantics.
292+
293+
- Deprecated 'isImplementedBy' and 'isImplementedByInstancesOf' APIs in
294+
favor of 'implementedBy' and 'providedBy'.
295+
296+
297+
3.0.1 (2005-07-27)
298+
------------------
299+
300+
- Corresponds to the verison of the zope.interface package shipped as part of
301+
the Zope X3.0.1 release.
302+
303+
- Fixed a bug reported by James Knight, which caused adapter registries
304+
to fail occasionally to reflect declaration changes.
305+
306+
307+
3.0.0 (2004-11-07)
308+
------------------
309+
310+
- Corresponds to the verison of the zope.interface package shipped as part of
311+
the Zope X3.0.0 release.

COPYRIGHT.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Zope Foundation and Contributors

LICENSE.txt

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
Zope Public License (ZPL) Version 2.1
2+
3+
A copyright notice accompanies this license document that identifies the
4+
copyright holders.
5+
6+
This license has been certified as open source. It has also been designated as
7+
GPL compatible by the Free Software Foundation (FSF).
8+
9+
Redistribution and use in source and binary forms, with or without
10+
modification, are permitted provided that the following conditions are met:
11+
12+
1. Redistributions in source code must retain the accompanying copyright
13+
notice, this list of conditions, and the following disclaimer.
14+
15+
2. Redistributions in binary form must reproduce the accompanying copyright
16+
notice, this list of conditions, and the following disclaimer in the
17+
documentation and/or other materials provided with the distribution.
18+
19+
3. Names of the copyright holders must not be used to endorse or promote
20+
products derived from this software without prior written permission from the
21+
copyright holders.
22+
23+
4. The right to distribute this software or to use it for any purpose does not
24+
give you the right to use Servicemarks (sm) or Trademarks (tm) of the
25+
copyright
26+
holders. Use of them is covered by separate agreement with the copyright
27+
holders.
28+
29+
5. If any files are modified, you must cause the modified files to carry
30+
prominent notices stating that you changed the files and the date of any
31+
change.
32+
33+
Disclaimer
34+
35+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
36+
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37+
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
38+
EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
39+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
40+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
41+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
42+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
43+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
44+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

README.txt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
Please see the Launchpad branch for this work: tracking the revisions
2-
is much easier for me to do there:
1+
``zope.interface`` README
2+
=========================
33

4-
Check it out:
4+
This package is intended to be independently reusable in any Python
5+
project. It is maintained by the `Zope Toolkit project
6+
<http://docs.zope.org/zopetoolkit/>`_.
57

6-
$ bzr co lp:~tseaver/zope.interface/better_unittests
8+
This package provides an implementation of "object interfaces" for Python.
9+
Interfaces are a mechanism for labeling objects as conforming to a given
10+
API or contract. So, this package can be considered as implementation of
11+
the `Design By Contract`_ methodology support in Python.
712

8-
Browse it:
13+
.. _Design By Contract: http://en.wikipedia.org/wiki/Design_by_contract
914

10-
https://code.launchpad.net/~tseaver/zope.interface/better_unittests
15+
For detailed documentation, please see http://docs.zope.org/zope.interface

0 commit comments

Comments
 (0)