This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author rhettinger
Recipients Austin Bingham, christian.heimes, gvanrossum, mark.dickinson, rhettinger, robert_smallshire, serhiy.storchaka, tim.peters
Date 2020-10-05.16:32:46
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1601915566.98.0.288386923286.issue26680@roundup.psfhosted.org>
In-reply-to
Content
> I would have assumed that it's only making a promise that it 
> registers all the methods and properties marked *abstract* in
> the ABC. Do you have references to back up the stronger statement?

The isn't some weird or incidental promise.  It is the fundamental reason that abstract base classes exist at all (and not just in Python).

From PEP 3119: "Each test carries with it a set of promises: it contains a promise about the general behavior of the class, and a promise as to what other class methods will be available."

From PEP 3119: "In addition, the ABCs define a minimal set of methods that establish the characteristic behavior of the type. Code that discriminates objects based on their ABC type can trust that those methods will always be present."

> we need to either (a) revert PR 6121 and then re-do the changes,
> without the changes to numbers.py, or (b) make a second PR to undo
> the numbers.py changes.

Given that (b) can't be done in the short-run, I recommend option (a) so that there is a single clean patch and to make sure this doesn't leak into a release.  The PR changed 19 files, so the longer we wait the harder it will be to revert cleanly.
History
Date User Action Args
2020-10-05 16:32:47rhettingersetrecipients: + rhettinger, gvanrossum, tim.peters, mark.dickinson, christian.heimes, serhiy.storchaka, robert_smallshire, Austin Bingham
2020-10-05 16:32:46rhettingersetmessageid: <1601915566.98.0.288386923286.issue26680@roundup.psfhosted.org>
2020-10-05 16:32:46rhettingerlinkissue26680 messages
2020-10-05 16:32:46rhettingercreate