<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/zope-interface.git/src/zope/interface/interface.py, branch issue11</title>
<subtitle>github.com: zopefoundation/zope.interface.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/'/>
<entry>
<title>Fix repr of "Attribute" to look like before</title>
<updated>2020-02-16T14:49:31+00:00</updated>
<author>
<name>Jens W. Klein</name>
<email>jk@kleinundpartner.at</email>
</author>
<published>2020-02-15T22:04:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=823faaaea1d4e508aa799cf9f893457d2f4acb11'/>
<id>823faaaea1d4e508aa799cf9f893457d2f4acb11</id>
<content type='text'>
and as usual in Python.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
and as usual in Python.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make verification errors more readable and useful.</title>
<updated>2020-02-07T16:59:11+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-02-06T16:48:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=a825e5f29e98c8c84076600323ffe791531ac765'/>
<id>a825e5f29e98c8c84076600323ffe791531ac765</id>
<content type='text'>
Eliminate the trailing newlines and blank spaces (the code called them
"a stupid artifact").

Include the name of the defining interface (so the user can easily look up
any requirements on the attribute) and, for methods, the expected
signature (no more guessing about how many arguments are required!).

This is implemented by giving Attribute and Method useful reprs and strs.
Previously, they just had the defaults.

Fixes #170
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Eliminate the trailing newlines and blank spaces (the code called them
"a stupid artifact").

Include the name of the defining interface (so the user can easily look up
any requirements on the attribute) and, for methods, the expected
signature (no more guessing about how many arguments are required!).

This is implemented by giving Attribute and Method useful reprs and strs.
Previously, they just had the defaults.

Fixes #170
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix verification for methods of builtin types with pseudo-default arguments on Pypy</title>
<updated>2020-02-06T15:02:56+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-02-06T15:02:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=0b0e22727b52aa2e0f05884ce130524700163902'/>
<id>0b0e22727b52aa2e0f05884ce130524700163902</id>
<content type='text'>
On PyPy2, they are ignored (like on CPython), but on PyPy3 they can
actually be validated.

Fixes #118
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On PyPy2, they are ignored (like on CPython), but on PyPy3 they can
actually be validated.

Fixes #118
</pre>
</div>
</content>
</entry>
<entry>
<title>Add __all__ to all modules.</title>
<updated>2020-02-05T14:12:53+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-02-05T14:12:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=c4805da768863207b5dd182b3c0dd2aacc7be92f'/>
<id>c4805da768863207b5dd182b3c0dd2aacc7be92f</id>
<content type='text'>
Fixes #153

The items that went in each ``__all__`` are based on what is
documented:

 $ rg --no-filename 'import' docs/ -trst | tr -s "[:blank:]" | sort | uniq | grep zope
 &gt;&gt;&gt; from pprint import pprint
 &gt;&gt;&gt; from zope.interface import *
 &gt;&gt;&gt; from zope.interface import Interface
 &gt;&gt;&gt; from zope.interface import Interface, Attribute, implementer
 &gt;&gt;&gt; from zope.interface import alsoProvides
 &gt;&gt;&gt; from zope.interface import classImplements
 &gt;&gt;&gt; from zope.interface import classImplementsOnly
 &gt;&gt;&gt; from zope.interface import directlyProvidedBy
 &gt;&gt;&gt; from zope.interface import directlyProvides
 &gt;&gt;&gt; from zope.interface import implementedBy
 &gt;&gt;&gt; from zope.interface import implementer
 &gt;&gt;&gt; from zope.interface import implementer_only
 &gt;&gt;&gt; from zope.interface import noLongerProvides
 &gt;&gt;&gt; from zope.interface import providedBy
 &gt;&gt;&gt; from zope.interface import provider
 &gt;&gt;&gt; from zope.interface.adapter import AdapterRegistry
 &gt;&gt;&gt; from zope.interface.declarations import Declaration
 &gt;&gt;&gt; from zope.interface.declarations import InstanceDeclarations
 &gt;&gt;&gt; from zope.interface.declarations import ProvidesClass
 &gt;&gt;&gt; from zope.interface.declarations import named
 &gt;&gt;&gt; from zope.interface.exceptions import BrokenImplementation
 &gt;&gt;&gt; from zope.interface.exceptions import Invalid
 &gt;&gt;&gt; from zope.interface.interface import Specification
 &gt;&gt;&gt; from zope.interface.interface import adapter_hooks
 &gt;&gt;&gt; from zope.interface.verify import verifyObject
 &gt;&gt;&gt; import gc
 &gt;&gt;&gt; import zope.interface

And also some personal judgement about what the public API is that I'm
more than happy to have reviewed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #153

The items that went in each ``__all__`` are based on what is
documented:

 $ rg --no-filename 'import' docs/ -trst | tr -s "[:blank:]" | sort | uniq | grep zope
 &gt;&gt;&gt; from pprint import pprint
 &gt;&gt;&gt; from zope.interface import *
 &gt;&gt;&gt; from zope.interface import Interface
 &gt;&gt;&gt; from zope.interface import Interface, Attribute, implementer
 &gt;&gt;&gt; from zope.interface import alsoProvides
 &gt;&gt;&gt; from zope.interface import classImplements
 &gt;&gt;&gt; from zope.interface import classImplementsOnly
 &gt;&gt;&gt; from zope.interface import directlyProvidedBy
 &gt;&gt;&gt; from zope.interface import directlyProvides
 &gt;&gt;&gt; from zope.interface import implementedBy
 &gt;&gt;&gt; from zope.interface import implementer
 &gt;&gt;&gt; from zope.interface import implementer_only
 &gt;&gt;&gt; from zope.interface import noLongerProvides
 &gt;&gt;&gt; from zope.interface import providedBy
 &gt;&gt;&gt; from zope.interface import provider
 &gt;&gt;&gt; from zope.interface.adapter import AdapterRegistry
 &gt;&gt;&gt; from zope.interface.declarations import Declaration
 &gt;&gt;&gt; from zope.interface.declarations import InstanceDeclarations
 &gt;&gt;&gt; from zope.interface.declarations import ProvidesClass
 &gt;&gt;&gt; from zope.interface.declarations import named
 &gt;&gt;&gt; from zope.interface.exceptions import BrokenImplementation
 &gt;&gt;&gt; from zope.interface.exceptions import Invalid
 &gt;&gt;&gt; from zope.interface.interface import Specification
 &gt;&gt;&gt; from zope.interface.interface import adapter_hooks
 &gt;&gt;&gt; from zope.interface.verify import verifyObject
 &gt;&gt;&gt; import gc
 &gt;&gt;&gt; import zope.interface

And also some personal judgement about what the public API is that I'm
more than happy to have reviewed.
</pre>
</div>
</content>
</entry>
<entry>
<title>The _empty singleton has no-op subscribe/unsubscribe methods.</title>
<updated>2020-01-28T22:04:31+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-28T22:04:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=97997956d1a17a0cfb064dfe0487291e8f8ee181'/>
<id>97997956d1a17a0cfb064dfe0487291e8f8ee181</id>
<content type='text'>
Turns out they can be called in some very strange error cases. See #162 and #163 for details.

This should fix #162 (at least the provided test case, five.intid, passes now).

It also does enough work on #163 that (a) the test can be written and run in pure-python mode, which was needed to debug it and (b) five.intid runs in pure-python mode (well, with a bunch of other small hacks to Acquisition, ExtensionClass, DocumentTemplate and AccessControl), but I won't claim that it fully fixes #163. For one thing, there are no specific tests. For another, I see more such differences.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Turns out they can be called in some very strange error cases. See #162 and #163 for details.

This should fix #162 (at least the provided test case, five.intid, passes now).

It also does enough work on #163 that (a) the test can be written and run in pure-python mode, which was needed to debug it and (b) five.intid runs in pure-python mode (well, with a bunch of other small hacks to Acquisition, ExtensionClass, DocumentTemplate and AccessControl), but I won't claim that it fully fixes #163. For one thing, there are no specific tests. For another, I see more such differences.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove support for hashing uninitialized interfaces.</title>
<updated>2020-01-27T15:31:30+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-27T15:31:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=f41ebfdb0b432fd99e1c44c0a1d7fd54a637bdf8'/>
<id>f41ebfdb0b432fd99e1c44c0a1d7fd54a637bdf8</id>
<content type='text'>
Fixes #157
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #157
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid allocating space for tagged values unless they're used. This saves another few percent.</title>
<updated>2020-01-27T13:43:27+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-23T17:38:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=7a34a32a3b66073f91ffe978132ae71783a62630'/>
<id>7a34a32a3b66073f91ffe978132ae71783a62630</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Specifications with no dependents are common (4700 out of 7000 in this example), so avoid allocating a WeakKeyDictionary until needed.</title>
<updated>2020-01-27T13:40:36+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-23T16:57:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=7f6638cf5113f9f6ecb51116bbb72fdbc3f3ce06'/>
<id>7f6638cf5113f9f6ecb51116bbb72fdbc3f3ce06</id>
<content type='text'>
This saves another 2% or so.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This saves another 2% or so.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move Declaration, Specification and ClassProvides to __slots__.</title>
<updated>2020-01-27T13:40:35+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-01-23T16:24:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=ab0466e56c6328407c3839a3a392cb127dbdb282'/>
<id>ab0466e56c6328407c3839a3a392cb127dbdb282</id>
<content type='text'>
In a test of 6000 modules that load 2245 InterfaceClass objects and produce 2233 ClassProvides instances, this saves about 1% total memory usage in Python 2.7.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In a test of 6000 modules that load 2245 InterfaceClass objects and produce 2233 ClassProvides instances, this saves about 1% total memory usage in Python 2.7.
</pre>
</div>
</content>
</entry>
<entry>
<title>cache on volatile attribute in case class is persisted in ZODB</title>
<updated>2020-01-24T23:37:43+00:00</updated>
<author>
<name>Jens W. Klein</name>
<email>jk@kleinundpartner.at</email>
</author>
<published>2020-01-24T23:37:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=32726faad8ac4f131b55e5b6785c885f6f2eb1ef'/>
<id>32726faad8ac4f131b55e5b6785c885f6f2eb1ef</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
