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 Mark.Shannon
Recipients Mark.Shannon, abarry, mdk, serhiy.storchaka, sjpalt, vstinner
Date 2019-05-06.18:08:20
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
This failure appears to be a symptom of recursively traversing __bases__ rather scanning __mro__ in the implementation of type.__subclasses__
The MCACHE depends on type.__subclasses__ being correct and it is not correct for

python -i
>>> C = Meta("C", (), {})
>>> C.__mro__
(<class '__main__.C'>, <class '__main__.Foo'>, <class 'object'>)
>>> Foo.__subclasses__()
>>> C.__bases__
(<class 'object'>,)

Fixing this may need a change in the API for type.__subclasses__() to return all subclasses, as defined by __mro__, not just the bases.

A simpler, temporary fix might be to set Py_TPFLAGS_HAVE_VERSION_TAG to 0 for any class that has a custom mro()
Date User Action Args
2019-05-06 18:08:20Mark.Shannonsetrecipients: + Mark.Shannon, vstinner, serhiy.storchaka, abarry, mdk, sjpalt
2019-05-06 18:08:20Mark.Shannonsetmessageid: <>
2019-05-06 18:08:20Mark.Shannonlinkissue28866 messages
2019-05-06 18:08:20Mark.Shannoncreate