[Checkins] [zopefoundation/zope.interface] b38575: Use C3 (mostly) to compute IRO.

Jason Madden noreply at github.com
Tue Mar 10 17:37:12 CET 2020


  Branch: refs/heads/issue21
  Home:   https://github.com/zopefoundation/zope.interface
  Commit: b385754584d25f7683a0780731fc186727d41499
      https://github.com/zopefoundation/zope.interface/commit/b385754584d25f7683a0780731fc186727d41499
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M CHANGES.rst
    M docs/api/declarations.rst
    M src/zope/interface/common/mapping.py
    M src/zope/interface/declarations.py
    M src/zope/interface/ro.py
    M src/zope/interface/tests/test_declarations.py
    M src/zope/interface/tests/test_ro.py

  Log Message:
  -----------
  Use C3 (mostly) to compute IRO.

Fixes #21

The 'mostly' is because interfaces are used in cases that C3 forbids; when there's a conflict, we move forward by adding the simple legacy base to the list at the conflicting location and continuing.

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


  Commit: 5c649ff3afe1cd631a2555c60c0151ac67795121
      https://github.com/zopefoundation/zope.interface/commit/5c649ff3afe1cd631a2555c60c0151ac67795121
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M src/zope/interface/declarations.py
    M src/zope/interface/interface.py
    M src/zope/interface/registry.py
    M src/zope/interface/ro.py
    M src/zope/interface/tests/test_declarations.py

  Log Message:
  -----------
  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.


  Commit: 9e273f11cddda5f5eb44ad8a684ebf97e5cb48f4
      https://github.com/zopefoundation/zope.interface/commit/9e273f11cddda5f5eb44ad8a684ebf97e5cb48f4
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M src/zope/interface/common/__init__.py
    M src/zope/interface/common/builtins.py
    M src/zope/interface/common/collections.py
    M src/zope/interface/common/tests/__init__.py
    M src/zope/interface/common/tests/test_collections.py
    M src/zope/interface/declarations.py
    M src/zope/interface/ro.py
    M src/zope/interface/tests/test_ro.py

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


  Commit: ff7896861e01956c2ff73c1c20d5f1dd96988f25
      https://github.com/zopefoundation/zope.interface/commit/ff7896861e01956c2ff73c1c20d5f1dd96988f25
  Author: Jason Madden <jamadden at gmail.com>
  Date:   2020-03-10 (Tue, 10 Mar 2020)

  Changed paths:
    M docs/api/index.rst
    A docs/api/ro.rst
    M src/zope/interface/ro.py
    M src/zope/interface/tests/test_ro.py

  Log Message:
  -----------
  Refactor and document. Warning control is now implemented.


Compare: https://github.com/zopefoundation/zope.interface/compare/2349c39c801b...ff7896861e01


More information about the checkins mailing list