summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Assure that `UNVERIFIABLE_RO` is actually used.config-with-c-codeMichael Howitz2021-11-241-0/+9
|
* Checking array.array non-strictly did not help on Windows.Michael Howitz2021-11-232-13/+17
| | | | So ignore it completely.
* "Fix" a test broken just on windows + allow to use posargs for tox test runs.Michael Howitz2021-11-233-2/+7
|
* Configuring for c-codeMichael Howitz2021-11-192-5/+1
|
* Configuring for c-codeMichael Howitz2021-11-192-2/+3
|
* Fix tests on Python 3.10.Michael Howitz2021-11-193-2/+10
|
* Configuring for c-codeMichael Howitz2021-11-1910-85/+84
|
* Merge pull request #248 from cjwatson/more-interfaces-allColin Watson2021-09-062-0/+7
|\ | | | | Add some more entries to zope.interface.interfaces.__all__
| * Add some more entries to zope.interface.interfaces.__all__Colin Watson2021-09-022-0/+7
|/ | | | | | | | | `ComponentLookupError`, `Invalid`, `Registered`, and `Unregistered` are all documented (https://zopeinterface.readthedocs.io/en/latest/api/components.html), so it seems odd not to list them in `__all__`. `ObjectEvent` isn't documented there, but it seems reasonable to export it as a base class for similar events.
* Merge pull request #244 from zopefoundation/use-pypi-tokenMarius Gedminas2021-06-162-4/+10
|\ | | | | Use a token for twine uploads from Appveyor
| * Use a token for twine uploads from AppveyorMarius Gedminas2021-06-162-4/+10
|/ | | | | (I cheated and edited both files manually instead of editing .meta.toml and re-running the config tool.)
* Configure with meta/config. (#243)Michael Howitz2021-06-0214-184/+387
| | | | * Add support for Python 3.9. * Improve coverage.
* Fix the documentation so it can be tested with ↵Michael Howitz2021-05-054-7/+11
| | | | | `ZOPE_INTERFACE_STRICT_IRO=1`. (#242) Closes #241.
* Back to development: 5.4.1Jason Madden2021-04-152-1/+7
|
* Preparing release 5.4.05.4.0Jason Madden2021-04-152-2/+2
|
* Merge pull request #240 from zopefoundation/issue239Jason Madden2021-04-154-10/+78
|\ | | | | Make C's __providedBy__ stop ignoring all errors and catch only AttributeError
| * Finish sentence in docstring. [skip ci]Jason Madden2021-04-151-1/+2
| |
| * Make C's __providedBy__ stop ignoring all errors and catch only AttributeError.issue239Jason Madden2021-04-134-10/+77
| | | | | | | | | | | | | | Fixes #239 There was a similar bug in the Python side where it would ignore a __provides__ of None, unlike the C implementation. I documented this in the code but not the CHANGES.rst because I can't imagine anyone relying on that.
* | Merge pull request #238 from zopefoundation/issue193Jason Madden2021-04-154-24/+101
|\ \ | |/ |/| Make Declaration.__add__ try harder to produce consistent resolution orders
| * Make Declaration.__add__ try harder to produce consistent resolution orders.issue193Jason Madden2021-04-014-24/+101
|/ | | | | | By moving things from the RHS to the front of the list if they already extend something from the LHS. Fixes #193
* Merge pull request #237 from zopefoundation/issue236Jason Madden2021-03-299-97/+444
|\ | | | | Update repr() and str() of some common objects.
| * Update repr() and str() of some common objects.issue236Jason Madden2021-03-259-97/+444
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ``<implementedBy builtins.list>`` is now shown as ``classImplements(list, IMutableSequence, IIterable)``. Fixes #236 Here's a before with ZOPE_INTERFACE_LOG_CHANGED_IRO=1 in BTrees: ``` Object <implementedBy builtins.list> has different legacy and C3 MROs: Legacy RO (len=11) C3 RO (len=11; inconsistent=no) ================================================================================================================================================== <implementedBy builtins.list> <implementedBy builtins.list> <ABCInterfaceClass zope.interface.common.collections.IMutableSequence> <ABCInterfaceClass zope.interface.common.collections.IMutableSequence> <ABCInterfaceClass zope.interface.common.collections.ISequence> <ABCInterfaceClass zope.interface.common.collections.ISequence> <ABCInterfaceClass zope.interface.common.collections.IReversible> <ABCInterfaceClass zope.interface.common.collections.IReversible> <ABCInterfaceClass zope.interface.common.collections.ICollection> <ABCInterfaceClass zope.interface.common.collections.ICollection> <ABCInterfaceClass zope.interface.common.collections.ISized> <ABCInterfaceClass zope.interface.common.collections.ISized> + <ABCInterfaceClass zope.interface.common.collections.IIterable> <ABCInterfaceClass zope.interface.common.collections.IContainer> <ABCInterfaceClass zope.interface.common.collections.IContainer> - <ABCInterfaceClass zope.interface.common.collections.IIterable> <ABCInterfaceClass zope.interface.common.ABCInterface> <ABCInterfaceClass zope.interface.common.ABCInterface> + <implementedBy builtins.object> <InterfaceClass zope.interface.Interface> <InterfaceClass zope.interface.Interface> - <implementedBy builtins.object> Object <ABCInterfaceClass zope.interface.common.mapping.IFullMapping> has different legacy and C3 MROs: Legacy RO (len=18) C3 RO (len=18; inconsistent=no) ================================================================================================================================================ <ABCInterfaceClass zope.interface.common.mapping.IFullMapping> <ABCInterfaceClass zope.interface.common.mapping.IFullMapping> <ABCInterfaceClass zope.interface.common.collections.IMutableMapping> <ABCInterfaceClass zope.interface.common.collections.IMutableMapping> <ABCInterfaceClass zope.interface.common.collections.IMapping> <ABCInterfaceClass zope.interface.common.collections.IMapping> <ABCInterfaceClass zope.interface.common.collections.ICollection> <ABCInterfaceClass zope.interface.common.collections.ICollection> - <ABCInterfaceClass zope.interface.common.collections.IIterable> <InterfaceClass zope.interface.common.mapping.IExtendedReadMapping> <InterfaceClass zope.interface.common.mapping.IExtendedReadMapping> <InterfaceClass zope.interface.common.mapping.IIterableMapping> <InterfaceClass zope.interface.common.mapping.IIterableMapping> <InterfaceClass zope.interface.common.mapping.IExtendedWriteMapping> <InterfaceClass zope.interface.common.mapping.IExtendedWriteMapping> <InterfaceClass zope.interface.common.mapping.IClonableMapping> <InterfaceClass zope.interface.common.mapping.IClonableMapping> <InterfaceClass zope.interface.common.mapping.IMapping> <InterfaceClass zope.interface.common.mapping.IMapping> <InterfaceClass zope.interface.common.mapping.IWriteMapping> <InterfaceClass zope.interface.common.mapping.IWriteMapping> <InterfaceClass zope.interface.common.mapping.IEnumerableMapping> <InterfaceClass zope.interface.common.mapping.IEnumerableMapping> <ABCInterfaceClass zope.interface.common.collections.ISized> <ABCInterfaceClass zope.interface.common.collections.ISized> + <ABCInterfaceClass zope.interface.common.collections.IIterable> <InterfaceClass zope.interface.common.mapping.IReadMapping> <InterfaceClass zope.interface.common.mapping.IReadMapping> <ABCInterfaceClass zope.interface.common.collections.IContainer> <ABCInterfaceClass zope.interface.common.collections.IContainer> <ABCInterfaceClass zope.interface.common.ABCInterface> <ABCInterfaceClass zope.interface.common.ABCInterface> <InterfaceClass zope.interface.common.mapping.IItemMapping> <InterfaceClass zope.interface.common.mapping.IItemMapping> <InterfaceClass zope.interface.Interface> <InterfaceClass zope.interface.Interface> Object <InterfaceClass BTrees.Interfaces.ISet> has different legacy and C3 MROs: Legacy RO (len=7) C3 RO (len=7; inconsistent=no) ==================================================================================================== <InterfaceClass BTrees.Interfaces.ISet> <InterfaceClass BTrees.Interfaces.ISet> <InterfaceClass BTrees.Interfaces.IKeySequence> <InterfaceClass BTrees.Interfaces.IKeySequence> - <InterfaceClass BTrees.Interfaces.ISized> <InterfaceClass BTrees.Interfaces.ISetMutable> <InterfaceClass BTrees.Interfaces.ISetMutable> <InterfaceClass BTrees.Interfaces.IKeyed> <InterfaceClass BTrees.Interfaces.IKeyed> <InterfaceClass BTrees.Interfaces.ICollection> <InterfaceClass BTrees.Interfaces.ICollection> + <InterfaceClass BTrees.Interfaces.ISized> <InterfaceClass zope.interface.Interface> <InterfaceClass zope.interface.Interface> ``` 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 <ABCInterfaceClass zope.interface.common.mapping.IFullMapping> 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 <InterfaceClass BTrees.Interfaces.ISet> 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 ```
* - prepare release 5.3.05.3.0Jens Vagelpohl2021-03-212-4/+4
|
* - ignore virtualenv artifactsJens Vagelpohl2021-03-211-0/+4
|
* Back to development: 5.3.0a2Jason Madden2021-03-182-1/+7
|
* Preparing release 5.3.0a15.3.0a1Jason Madden2021-03-182-3/+3
|
* Merge pull request #234 from zopefoundation/issue229-take2Jason Madden2021-03-184-3/+43
|\ | | | | Update documentation and Provides repr for better debugging.
| * Improve the tests for ProvidesClass.__repr__.Jason Madden2021-03-181-5/+11
| |
| * Update documentation and Provides repr for better debugging.Jason Madden2021-03-184-3/+37
|/ | | | | | Fixes #229. Replaces #232
* Merge pull request #235 from zopefoundation/issue207Jason Madden2021-03-184-6/+115
|\ | | | | Make Provides and ClassProvides ignore redundant interfaces like @implementer
| * Make Provides and ClassProvides ignore redundant interfaces like @implementerissue207Jason Madden2021-03-174-6/+115
| | | | | | | | cf #207
* | Merge pull request #233 from zopefoundation/docs-updateJason Madden2021-03-176-86/+164
|\ \ | |/ |/| Update the Adaptation docs to be more concrete.
| * Update docs/README.rst: Two expressions need two linesJason Madden2021-03-171-1/+2
| | | | | | Co-authored-by: Michael Howitz <mh@gocept.com>
| * Update the Adaptation docs to be more concrete.docs-updateJason Madden2021-03-176-86/+163
| | | | | | | | | | | | 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.
* | Merge pull request #231 from zopefoundation/issue230Jason Madden2021-03-176-7/+257
|\ \ | |/ |/| Add IAdapterRegistry.subscribed and Components.rebuildUtilityRegistryFromLocalCache
| * Tweak wrapping in subscribed() docstring.issue230Jason Madden2021-03-161-2/+2
| |
| * Add missing quote in docstring in src/zope/interface/registry.pyJason Madden2021-03-161-1/+1
| | | | | | Co-authored-by: Marius Gedminas <marius@gedmin.as>
| * Share code between registered and subscribed.Jason Madden2021-03-151-20/+20
| |
| * Add IAdapterRegistry.subscribed and ↵Jason Madden2021-03-156-4/+254
|/ | | | | | Components.rebuildUtilityRegistryFromLocalCache Fixes #230
* Merge pull request #228 from zopefoundation/issue224Jason Madden2021-03-156-33/+942
|\ | | | | Let subclasses of BaseAdapterRegistry customize the data structures.
| * Expand on some comments. [skip ci]Jason Madden2021-03-151-1/+14
| |
| * Move itertools import to module scope.issue224Jason Madden2021-03-153-32/+79
| | | | | | | | Also tweak docs.
| * Let subclasses of BaseAdapterRegistry customize the data structures.Jason Madden2021-03-035-30/+879
|/ | | | | | | | | | | | Add extensive tests for this. Fixes #224. Also adds test for, and fixes #227 Add BAR.rebuild() to fix the refcount issue, and to change datatypes. It works by using the new methods allRegistrations() and allSubscriptions() to re-create the data in new data structures. This makes fresh calls to subscribe() and register(). I went this way instead of trying to manually walk the data structures and create them because the logic in those methods is fully tested.
* Merge pull request #226 from zopefoundation/issue225Jason Madden2021-03-036-148/+456
|\ | | | | First pass at github actions.
| * Typo fixesissue225Jason Madden2021-03-013-6/+2
| |
| * manylinux2010 stopped shipping Python 2.7, so use a tagged version that ↵Jason Madden2021-02-261-3/+4
| | | | | | | | | | | | still has it. See https://github.com/pypa/manylinux/issues/428
| * First pass at github actions.Jason Madden2021-02-266-148/+459
|/ | | | | | | | | | | | | | | | | | | Fixes #225. Someone will need to add a `TWINE_PASSWORD` GitHub repository secret that is a token for `zope.eggbuilder` to upload to zope.interface. Builds and uploads manylinux32/64/aarch64 wheels. Builds and uploads Mac wheels. Builds the docs. Runs tests with the C extension and without the C extension. Reports coverage to coveralls. Has the start of an environment to do linting. Removes .travis.yml
* Back to development: 5.2.1Michael Howitz2020-11-052-1/+7
|
* Preparing release 5.2.05.2.0Michael Howitz2020-11-052-2/+2
|
* Add support for Python 3.9. (#222)Michael Howitz2020-11-057-217/+29
|