<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/zope-interface.git/src/zope/interface/ro.py, branch issue21</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>Use C3 (mostly) to compute IRO.</title>
<updated>2020-03-15T14:56:14+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2020-03-05T20:38:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=024f6432270afd021da2d9fff5c3f496f788e54d'/>
<id>024f6432270afd021da2d9fff5c3f496f788e54d</id>
<content type='text'>
Fixes #21

The 'mostly' is because interfaces are used in cases that C3 forbids;
when there's a conflict, we fallback to the legacy algorithm. It turns
out there are few conflicts (13K out of 149K total orderings in Plone).

I hoped the fix for #8 might shake out automatically, but it didn't.

Optimize the extremely common case of a __bases__ of length one.

In the benchmark, 4/5 of the interfaces and related objects have a base of length one.

Fix the bad IROs in the bundled ABC interfaces, and implement a way to get warnings or errors.

In running plone/buildout.coredev and tracking the RO requests, the
stats for equal, not equal, and inconsistent-so-fallback, I got
{'ros': 148868, 'eq': 138461, 'ne': 10407, 'inconsistent': 12934}

Add the interface module to the Attribute str.

This was extremely helpful tracking down the Plone problem; IDate is defined in multiple modules.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #21

The 'mostly' is because interfaces are used in cases that C3 forbids;
when there's a conflict, we fallback to the legacy algorithm. It turns
out there are few conflicts (13K out of 149K total orderings in Plone).

I hoped the fix for #8 might shake out automatically, but it didn't.

Optimize the extremely common case of a __bases__ of length one.

In the benchmark, 4/5 of the interfaces and related objects have a base of length one.

Fix the bad IROs in the bundled ABC interfaces, and implement a way to get warnings or errors.

In running plone/buildout.coredev and tracking the RO requests, the
stats for equal, not equal, and inconsistent-so-fallback, I got
{'ros': 148868, 'eq': 138461, 'ne': 10407, 'inconsistent': 12934}

Add the interface module to the Attribute str.

This was extremely helpful tracking down the Plone problem; IDate is defined in multiple modules.
</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>100% branch coverage for 'zope.interface.ro'.</title>
<updated>2014-12-08T18:14:30+00:00</updated>
<author>
<name>Tres Seaver</name>
<email>tseaver@palladion.com</email>
</author>
<published>2014-12-08T18:11:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=859cdddeb89613c2ab8474e1723e641b10d1a5d8'/>
<id>859cdddeb89613c2ab8474e1723e641b10d1a5d8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge from LP branch.</title>
<updated>2012-03-26T20:56:58+00:00</updated>
<author>
<name>Tres Seaver</name>
<email>tseaver@palladion.com</email>
</author>
<published>2012-03-26T20:56:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=bc4d8bc1569c9d4dc28c62272a5acbaebc04cdfe'/>
<id>bc4d8bc1569c9d4dc28c62272a5acbaebc04cdfe</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove CVS-era Id fossils.</title>
<updated>2010-06-03T16:56:13+00:00</updated>
<author>
<name>Tres Seaver</name>
<email>tseaver@palladion.com</email>
</author>
<published>2010-06-03T16:56:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=75e5debaf21d8468fb4e8c6f2efd59b4638b6eb5'/>
<id>75e5debaf21d8468fb4e8c6f2efd59b4638b6eb5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Comply with repository policy.</title>
<updated>2010-04-06T02:59:44+00:00</updated>
<author>
<name>Tres Seaver</name>
<email>tseaver@palladion.com</email>
</author>
<published>2010-04-06T02:59:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=f59f3bdb55f07cf7111fd6a469eb43f7ede560f0'/>
<id>f59f3bdb55f07cf7111fd6a469eb43f7ede560f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert incorrect copyright header update.</title>
<updated>2009-12-17T08:33:30+00:00</updated>
<author>
<name>Christian Theune</name>
<email>ct@gocept.com</email>
</author>
<published>2009-12-17T08:33:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=58f7b0c1cec4d3c30af2f16e24511ee5522129ea'/>
<id>58f7b0c1cec4d3c30af2f16e24511ee5522129ea</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Updating copyright header after transfer of ownership to the Zope Foundation</title>
<updated>2009-11-02T08:33:25+00:00</updated>
<author>
<name>Christian Theune</name>
<email>ct@gocept.com</email>
</author>
<published>2009-11-02T08:33:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=20af1ea9ef24a918389cdbfd5e4392caef44fe93'/>
<id>20af1ea9ef24a918389cdbfd5e4392caef44fe93</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>clean up some comments and some whitespace</title>
<updated>2009-10-31T12:51:57+00:00</updated>
<author>
<name>Gary Poster</name>
<email>gary@modernsongs.com</email>
</author>
<published>2009-10-31T12:51:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=ae7507a28784bac06de67034bd905d8aebd54dd1'/>
<id>ae7507a28784bac06de67034bd905d8aebd54dd1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>replaced `_flatten` with a non-recursive implementation, effectively making it  3x faster</title>
<updated>2007-11-01T15:39:18+00:00</updated>
<author>
<name>Andreas Zeidler</name>
<email>az@zitc.de</email>
</author>
<published>2007-11-01T15:39:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=74f17bede36778d6b083194397d1bc3cb9f247d7'/>
<id>74f17bede36778d6b083194397d1bc3cb9f247d7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
