<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/zope-interface.git/src/zope, branch issue236</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>Update repr() and str() of some common objects.</title>
<updated>2021-03-25T15:30:47+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-25T15:30:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=ce8f66f8bf4ebffca7cdf95dbb8c5add02251e91'/>
<id>ce8f66f8bf4ebffca7cdf95dbb8c5add02251e91</id>
<content type='text'>
Only InterfaceClass got a str, so it now has a distinction. Other objects only got updated reprs.

Note: This may potentially break some doctests.

In many cases, the ``repr()`` is now something that can be evaluated
to produce an equal object. For example, what was previously printed
as ``&lt;implementedBy builtins.list&gt;`` is now shown as
``classImplements(list, IMutableSequence, IIterable)``.

Fixes #236

Here's a before with ZOPE_INTERFACE_LOG_CHANGED_IRO=1 in BTrees:
```
Object &lt;implementedBy builtins.list&gt; has different legacy and C3 MROs:
  Legacy RO (len=11)                                                        C3 RO (len=11; inconsistent=no)
  ==================================================================================================================================================
    &lt;implementedBy builtins.list&gt;                                             &lt;implementedBy builtins.list&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IMutableSequence&gt;    &lt;ABCInterfaceClass zope.interface.common.collections.IMutableSequence&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ISequence&gt;           &lt;ABCInterfaceClass zope.interface.common.collections.ISequence&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IReversible&gt;         &lt;ABCInterfaceClass zope.interface.common.collections.IReversible&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ICollection&gt;         &lt;ABCInterfaceClass zope.interface.common.collections.ICollection&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ISized&gt;              &lt;ABCInterfaceClass zope.interface.common.collections.ISized&gt;
                                                                            + &lt;ABCInterfaceClass zope.interface.common.collections.IIterable&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IContainer&gt;          &lt;ABCInterfaceClass zope.interface.common.collections.IContainer&gt;
  - &lt;ABCInterfaceClass zope.interface.common.collections.IIterable&gt;
    &lt;ABCInterfaceClass zope.interface.common.ABCInterface&gt;                    &lt;ABCInterfaceClass zope.interface.common.ABCInterface&gt;
                                                                            + &lt;implementedBy builtins.object&gt;
    &lt;InterfaceClass zope.interface.Interface&gt;                                 &lt;InterfaceClass zope.interface.Interface&gt;
  - &lt;implementedBy builtins.object&gt;
Object &lt;ABCInterfaceClass zope.interface.common.mapping.IFullMapping&gt; has different legacy and C3 MROs:
  Legacy RO (len=18)                                                       C3 RO (len=18; inconsistent=no)
  ================================================================================================================================================
    &lt;ABCInterfaceClass zope.interface.common.mapping.IFullMapping&gt;           &lt;ABCInterfaceClass zope.interface.common.mapping.IFullMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IMutableMapping&gt;    &lt;ABCInterfaceClass zope.interface.common.collections.IMutableMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IMapping&gt;           &lt;ABCInterfaceClass zope.interface.common.collections.IMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ICollection&gt;        &lt;ABCInterfaceClass zope.interface.common.collections.ICollection&gt;
  - &lt;ABCInterfaceClass zope.interface.common.collections.IIterable&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IExtendedReadMapping&gt;      &lt;InterfaceClass zope.interface.common.mapping.IExtendedReadMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IIterableMapping&gt;          &lt;InterfaceClass zope.interface.common.mapping.IIterableMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IExtendedWriteMapping&gt;     &lt;InterfaceClass zope.interface.common.mapping.IExtendedWriteMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IClonableMapping&gt;          &lt;InterfaceClass zope.interface.common.mapping.IClonableMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IMapping&gt;                  &lt;InterfaceClass zope.interface.common.mapping.IMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IWriteMapping&gt;             &lt;InterfaceClass zope.interface.common.mapping.IWriteMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IEnumerableMapping&gt;        &lt;InterfaceClass zope.interface.common.mapping.IEnumerableMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ISized&gt;             &lt;ABCInterfaceClass zope.interface.common.collections.ISized&gt;
                                                                           + &lt;ABCInterfaceClass zope.interface.common.collections.IIterable&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IReadMapping&gt;              &lt;InterfaceClass zope.interface.common.mapping.IReadMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IContainer&gt;         &lt;ABCInterfaceClass zope.interface.common.collections.IContainer&gt;
    &lt;ABCInterfaceClass zope.interface.common.ABCInterface&gt;                   &lt;ABCInterfaceClass zope.interface.common.ABCInterface&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IItemMapping&gt;              &lt;InterfaceClass zope.interface.common.mapping.IItemMapping&gt;
    &lt;InterfaceClass zope.interface.Interface&gt;                                &lt;InterfaceClass zope.interface.Interface&gt;
Object &lt;InterfaceClass BTrees.Interfaces.ISet&gt; has different legacy and C3 MROs:
  Legacy RO (len=7)                                  C3 RO (len=7; inconsistent=no)
  ====================================================================================================
    &lt;InterfaceClass BTrees.Interfaces.ISet&gt;            &lt;InterfaceClass BTrees.Interfaces.ISet&gt;
    &lt;InterfaceClass BTrees.Interfaces.IKeySequence&gt;    &lt;InterfaceClass BTrees.Interfaces.IKeySequence&gt;
  - &lt;InterfaceClass BTrees.Interfaces.ISized&gt;
    &lt;InterfaceClass BTrees.Interfaces.ISetMutable&gt;     &lt;InterfaceClass BTrees.Interfaces.ISetMutable&gt;
    &lt;InterfaceClass BTrees.Interfaces.IKeyed&gt;          &lt;InterfaceClass BTrees.Interfaces.IKeyed&gt;
    &lt;InterfaceClass BTrees.Interfaces.ICollection&gt;     &lt;InterfaceClass BTrees.Interfaces.ICollection&gt;
                                                     + &lt;InterfaceClass BTrees.Interfaces.ISized&gt;
    &lt;InterfaceClass zope.interface.Interface&gt;          &lt;InterfaceClass zope.interface.Interface&gt;
```

And here's after:

```
Object classImplements(list, IMutableSequence, IIterable) has different legacy and C3 MROs:
  Legacy RO (len=11)                                    C3 RO (len=11; inconsistent=no)
  ==========================================================================================================
    classImplements(list, IMutableSequence, IIterable)    classImplements(list, IMutableSequence, IIterable)
    zope.interface.common.collections.IMutableSequence    zope.interface.common.collections.IMutableSequence
    zope.interface.common.collections.ISequence           zope.interface.common.collections.ISequence
    zope.interface.common.collections.IReversible         zope.interface.common.collections.IReversible
    zope.interface.common.collections.ICollection         zope.interface.common.collections.ICollection
    zope.interface.common.collections.ISized              zope.interface.common.collections.ISized
                                                        + zope.interface.common.collections.IIterable
    zope.interface.common.collections.IContainer          zope.interface.common.collections.IContainer
  - zope.interface.common.collections.IIterable
    zope.interface.common.ABCInterface                    zope.interface.common.ABCInterface
                                                        + classImplements(object)
    zope.interface.Interface                              zope.interface.Interface
  - classImplements(object)
Object &lt;ABCInterfaceClass zope.interface.common.mapping.IFullMapping&gt; has different legacy and C3 MROs:
  Legacy RO (len=18)                                     C3 RO (len=18; inconsistent=no)
  ============================================================================================================
    zope.interface.common.mapping.IFullMapping             zope.interface.common.mapping.IFullMapping
    zope.interface.common.collections.IMutableMapping      zope.interface.common.collections.IMutableMapping
    zope.interface.common.collections.IMapping             zope.interface.common.collections.IMapping
    zope.interface.common.collections.ICollection          zope.interface.common.collections.ICollection
  - zope.interface.common.collections.IIterable
    zope.interface.common.mapping.IExtendedReadMapping     zope.interface.common.mapping.IExtendedReadMapping
    zope.interface.common.mapping.IIterableMapping         zope.interface.common.mapping.IIterableMapping
    zope.interface.common.mapping.IExtendedWriteMapping    zope.interface.common.mapping.IExtendedWriteMapping
    zope.interface.common.mapping.IClonableMapping         zope.interface.common.mapping.IClonableMapping
    zope.interface.common.mapping.IMapping                 zope.interface.common.mapping.IMapping
    zope.interface.common.mapping.IWriteMapping            zope.interface.common.mapping.IWriteMapping
    zope.interface.common.mapping.IEnumerableMapping       zope.interface.common.mapping.IEnumerableMapping
    zope.interface.common.collections.ISized               zope.interface.common.collections.ISized
                                                         + zope.interface.common.collections.IIterable
    zope.interface.common.mapping.IReadMapping             zope.interface.common.mapping.IReadMapping
    zope.interface.common.collections.IContainer           zope.interface.common.collections.IContainer
    zope.interface.common.ABCInterface                     zope.interface.common.ABCInterface
    zope.interface.common.mapping.IItemMapping             zope.interface.common.mapping.IItemMapping
    zope.interface.Interface                               zope.interface.Interface
Object &lt;InterfaceClass BTrees.Interfaces.ISet&gt; has different legacy and C3 MROs:
  Legacy RO (len=7)                 C3 RO (len=7; inconsistent=no)
  ==================================================================
    BTrees.Interfaces.ISet            BTrees.Interfaces.ISet
    BTrees.Interfaces.IKeySequence    BTrees.Interfaces.IKeySequence
  - BTrees.Interfaces.ISized
    BTrees.Interfaces.ISetMutable     BTrees.Interfaces.ISetMutable
    BTrees.Interfaces.IKeyed          BTrees.Interfaces.IKeyed
    BTrees.Interfaces.ICollection     BTrees.Interfaces.ICollection
                                    + BTrees.Interfaces.ISized
    zope.interface.Interface          zope.interface.Interface
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Only InterfaceClass got a str, so it now has a distinction. Other objects only got updated reprs.

Note: This may potentially break some doctests.

In many cases, the ``repr()`` is now something that can be evaluated
to produce an equal object. For example, what was previously printed
as ``&lt;implementedBy builtins.list&gt;`` is now shown as
``classImplements(list, IMutableSequence, IIterable)``.

Fixes #236

Here's a before with ZOPE_INTERFACE_LOG_CHANGED_IRO=1 in BTrees:
```
Object &lt;implementedBy builtins.list&gt; has different legacy and C3 MROs:
  Legacy RO (len=11)                                                        C3 RO (len=11; inconsistent=no)
  ==================================================================================================================================================
    &lt;implementedBy builtins.list&gt;                                             &lt;implementedBy builtins.list&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IMutableSequence&gt;    &lt;ABCInterfaceClass zope.interface.common.collections.IMutableSequence&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ISequence&gt;           &lt;ABCInterfaceClass zope.interface.common.collections.ISequence&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IReversible&gt;         &lt;ABCInterfaceClass zope.interface.common.collections.IReversible&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ICollection&gt;         &lt;ABCInterfaceClass zope.interface.common.collections.ICollection&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ISized&gt;              &lt;ABCInterfaceClass zope.interface.common.collections.ISized&gt;
                                                                            + &lt;ABCInterfaceClass zope.interface.common.collections.IIterable&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IContainer&gt;          &lt;ABCInterfaceClass zope.interface.common.collections.IContainer&gt;
  - &lt;ABCInterfaceClass zope.interface.common.collections.IIterable&gt;
    &lt;ABCInterfaceClass zope.interface.common.ABCInterface&gt;                    &lt;ABCInterfaceClass zope.interface.common.ABCInterface&gt;
                                                                            + &lt;implementedBy builtins.object&gt;
    &lt;InterfaceClass zope.interface.Interface&gt;                                 &lt;InterfaceClass zope.interface.Interface&gt;
  - &lt;implementedBy builtins.object&gt;
Object &lt;ABCInterfaceClass zope.interface.common.mapping.IFullMapping&gt; has different legacy and C3 MROs:
  Legacy RO (len=18)                                                       C3 RO (len=18; inconsistent=no)
  ================================================================================================================================================
    &lt;ABCInterfaceClass zope.interface.common.mapping.IFullMapping&gt;           &lt;ABCInterfaceClass zope.interface.common.mapping.IFullMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IMutableMapping&gt;    &lt;ABCInterfaceClass zope.interface.common.collections.IMutableMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IMapping&gt;           &lt;ABCInterfaceClass zope.interface.common.collections.IMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ICollection&gt;        &lt;ABCInterfaceClass zope.interface.common.collections.ICollection&gt;
  - &lt;ABCInterfaceClass zope.interface.common.collections.IIterable&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IExtendedReadMapping&gt;      &lt;InterfaceClass zope.interface.common.mapping.IExtendedReadMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IIterableMapping&gt;          &lt;InterfaceClass zope.interface.common.mapping.IIterableMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IExtendedWriteMapping&gt;     &lt;InterfaceClass zope.interface.common.mapping.IExtendedWriteMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IClonableMapping&gt;          &lt;InterfaceClass zope.interface.common.mapping.IClonableMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IMapping&gt;                  &lt;InterfaceClass zope.interface.common.mapping.IMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IWriteMapping&gt;             &lt;InterfaceClass zope.interface.common.mapping.IWriteMapping&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IEnumerableMapping&gt;        &lt;InterfaceClass zope.interface.common.mapping.IEnumerableMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.ISized&gt;             &lt;ABCInterfaceClass zope.interface.common.collections.ISized&gt;
                                                                           + &lt;ABCInterfaceClass zope.interface.common.collections.IIterable&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IReadMapping&gt;              &lt;InterfaceClass zope.interface.common.mapping.IReadMapping&gt;
    &lt;ABCInterfaceClass zope.interface.common.collections.IContainer&gt;         &lt;ABCInterfaceClass zope.interface.common.collections.IContainer&gt;
    &lt;ABCInterfaceClass zope.interface.common.ABCInterface&gt;                   &lt;ABCInterfaceClass zope.interface.common.ABCInterface&gt;
    &lt;InterfaceClass zope.interface.common.mapping.IItemMapping&gt;              &lt;InterfaceClass zope.interface.common.mapping.IItemMapping&gt;
    &lt;InterfaceClass zope.interface.Interface&gt;                                &lt;InterfaceClass zope.interface.Interface&gt;
Object &lt;InterfaceClass BTrees.Interfaces.ISet&gt; has different legacy and C3 MROs:
  Legacy RO (len=7)                                  C3 RO (len=7; inconsistent=no)
  ====================================================================================================
    &lt;InterfaceClass BTrees.Interfaces.ISet&gt;            &lt;InterfaceClass BTrees.Interfaces.ISet&gt;
    &lt;InterfaceClass BTrees.Interfaces.IKeySequence&gt;    &lt;InterfaceClass BTrees.Interfaces.IKeySequence&gt;
  - &lt;InterfaceClass BTrees.Interfaces.ISized&gt;
    &lt;InterfaceClass BTrees.Interfaces.ISetMutable&gt;     &lt;InterfaceClass BTrees.Interfaces.ISetMutable&gt;
    &lt;InterfaceClass BTrees.Interfaces.IKeyed&gt;          &lt;InterfaceClass BTrees.Interfaces.IKeyed&gt;
    &lt;InterfaceClass BTrees.Interfaces.ICollection&gt;     &lt;InterfaceClass BTrees.Interfaces.ICollection&gt;
                                                     + &lt;InterfaceClass BTrees.Interfaces.ISized&gt;
    &lt;InterfaceClass zope.interface.Interface&gt;          &lt;InterfaceClass zope.interface.Interface&gt;
```

And here's after:

```
Object classImplements(list, IMutableSequence, IIterable) has different legacy and C3 MROs:
  Legacy RO (len=11)                                    C3 RO (len=11; inconsistent=no)
  ==========================================================================================================
    classImplements(list, IMutableSequence, IIterable)    classImplements(list, IMutableSequence, IIterable)
    zope.interface.common.collections.IMutableSequence    zope.interface.common.collections.IMutableSequence
    zope.interface.common.collections.ISequence           zope.interface.common.collections.ISequence
    zope.interface.common.collections.IReversible         zope.interface.common.collections.IReversible
    zope.interface.common.collections.ICollection         zope.interface.common.collections.ICollection
    zope.interface.common.collections.ISized              zope.interface.common.collections.ISized
                                                        + zope.interface.common.collections.IIterable
    zope.interface.common.collections.IContainer          zope.interface.common.collections.IContainer
  - zope.interface.common.collections.IIterable
    zope.interface.common.ABCInterface                    zope.interface.common.ABCInterface
                                                        + classImplements(object)
    zope.interface.Interface                              zope.interface.Interface
  - classImplements(object)
Object &lt;ABCInterfaceClass zope.interface.common.mapping.IFullMapping&gt; has different legacy and C3 MROs:
  Legacy RO (len=18)                                     C3 RO (len=18; inconsistent=no)
  ============================================================================================================
    zope.interface.common.mapping.IFullMapping             zope.interface.common.mapping.IFullMapping
    zope.interface.common.collections.IMutableMapping      zope.interface.common.collections.IMutableMapping
    zope.interface.common.collections.IMapping             zope.interface.common.collections.IMapping
    zope.interface.common.collections.ICollection          zope.interface.common.collections.ICollection
  - zope.interface.common.collections.IIterable
    zope.interface.common.mapping.IExtendedReadMapping     zope.interface.common.mapping.IExtendedReadMapping
    zope.interface.common.mapping.IIterableMapping         zope.interface.common.mapping.IIterableMapping
    zope.interface.common.mapping.IExtendedWriteMapping    zope.interface.common.mapping.IExtendedWriteMapping
    zope.interface.common.mapping.IClonableMapping         zope.interface.common.mapping.IClonableMapping
    zope.interface.common.mapping.IMapping                 zope.interface.common.mapping.IMapping
    zope.interface.common.mapping.IWriteMapping            zope.interface.common.mapping.IWriteMapping
    zope.interface.common.mapping.IEnumerableMapping       zope.interface.common.mapping.IEnumerableMapping
    zope.interface.common.collections.ISized               zope.interface.common.collections.ISized
                                                         + zope.interface.common.collections.IIterable
    zope.interface.common.mapping.IReadMapping             zope.interface.common.mapping.IReadMapping
    zope.interface.common.collections.IContainer           zope.interface.common.collections.IContainer
    zope.interface.common.ABCInterface                     zope.interface.common.ABCInterface
    zope.interface.common.mapping.IItemMapping             zope.interface.common.mapping.IItemMapping
    zope.interface.Interface                               zope.interface.Interface
Object &lt;InterfaceClass BTrees.Interfaces.ISet&gt; has different legacy and C3 MROs:
  Legacy RO (len=7)                 C3 RO (len=7; inconsistent=no)
  ==================================================================
    BTrees.Interfaces.ISet            BTrees.Interfaces.ISet
    BTrees.Interfaces.IKeySequence    BTrees.Interfaces.IKeySequence
  - BTrees.Interfaces.ISized
    BTrees.Interfaces.ISetMutable     BTrees.Interfaces.ISetMutable
    BTrees.Interfaces.IKeyed          BTrees.Interfaces.IKeyed
    BTrees.Interfaces.ICollection     BTrees.Interfaces.ICollection
                                    + BTrees.Interfaces.ISized
    zope.interface.Interface          zope.interface.Interface
```
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve the tests for ProvidesClass.__repr__.</title>
<updated>2021-03-18T11:00:14+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-18T11:00:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=f46bc4f788dd573e655899c8d7943e031e90286d'/>
<id>f46bc4f788dd573e655899c8d7943e031e90286d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update documentation and Provides repr for better debugging.</title>
<updated>2021-03-18T10:17:52+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-17T15:01:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=45c97ab85d86c867df1ed1d3f813c8fc7fad2649'/>
<id>45c97ab85d86c867df1ed1d3f813c8fc7fad2649</id>
<content type='text'>
Fixes #229.

Replaces #232
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #229.

Replaces #232
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #235 from zopefoundation/issue207</title>
<updated>2021-03-18T10:14:10+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-18T10:14:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=cfe4075488f3b18a46d406e5cac7be012b7a9404'/>
<id>cfe4075488f3b18a46d406e5cac7be012b7a9404</id>
<content type='text'>
Make Provides and ClassProvides ignore redundant interfaces like @implementer</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make Provides and ClassProvides ignore redundant interfaces like @implementer</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #233 from zopefoundation/docs-update</title>
<updated>2021-03-17T16:43:08+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-17T16:43:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=7a9fcddc22afa138244bb0664a8a792381b412f4'/>
<id>7a9fcddc22afa138244bb0664a8a792381b412f4</id>
<content type='text'>
Update the Adaptation docs to be more concrete.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update the Adaptation docs to be more concrete.</pre>
</div>
</content>
</entry>
<entry>
<title>Make Provides and ClassProvides ignore redundant interfaces like @implementer</title>
<updated>2021-03-17T16:11:19+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-17T16:11:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=45b9294e9d3b8c679df0ae029de6b1792b183782'/>
<id>45b9294e9d3b8c679df0ae029de6b1792b183782</id>
<content type='text'>
cf #207
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cf #207
</pre>
</div>
</content>
</entry>
<entry>
<title>Update the Adaptation docs to be more concrete.</title>
<updated>2021-03-17T12:39:49+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-17T12:35:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=488a317abdfa2a1fa04efd2f2d8d22a433beaaf8'/>
<id>488a317abdfa2a1fa04efd2f2d8d22a433beaaf8</id>
<content type='text'>
This should help provide better motivating use cases. Examples inspired by https://glyph.twistedmatrix.com/2021/03/interfaces-and-protocols.html

Also some minor typo fixes and updates to comments.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should help provide better motivating use cases. Examples inspired by https://glyph.twistedmatrix.com/2021/03/interfaces-and-protocols.html

Also some minor typo fixes and updates to comments.
</pre>
</div>
</content>
</entry>
<entry>
<title>Tweak wrapping in subscribed() docstring.</title>
<updated>2021-03-16T13:40:02+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-16T13:40:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=8728a3efad1d6b6e6509bd2783e57fbfc6d8b64e'/>
<id>8728a3efad1d6b6e6509bd2783e57fbfc6d8b64e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add missing quote in docstring in src/zope/interface/registry.py</title>
<updated>2021-03-16T13:33:48+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-16T13:33:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=8534bdc961c685f43c885dd6176669a938634e0c'/>
<id>8534bdc961c685f43c885dd6176669a938634e0c</id>
<content type='text'>
Co-authored-by: Marius Gedminas &lt;marius@gedmin.as&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Marius Gedminas &lt;marius@gedmin.as&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Share code between registered and subscribed.</title>
<updated>2021-03-15T15:04:09+00:00</updated>
<author>
<name>Jason Madden</name>
<email>jamadden@gmail.com</email>
</author>
<published>2021-03-15T15:04:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/zope-interface.git/commit/?id=820b9b0299727b47960588b5d09d39e3911f7066'/>
<id>820b9b0299727b47960588b5d09d39e3911f7066</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
