New submission from Brian Petersen: First time issue reporter here. I really love PEP 487, but I'm finding the new __init_subclass__ functionality is not playing nicely with existing abstract class functionality.
For example, taking the Quest example given in PEP 487 but simply adding ABCMeta metaclass results in a runtime error: ``` class QuestBase(metaclass=abc.ABCMeta): # this is implicitly a @classmethod (see below for motivation) def __init_subclass__(cls, swallow, **kwargs): cls.swallow = swallow super().__init_subclass__(**kwargs) class Quest(QuestBase, swallow="african"): pass print(Quest.swallow) Traceback (most recent call last): File "credentials.py", line 23, in <module> class Quest(QuestBase, swallow="african"): TypeError: __new__() got an unexpected keyword argument 'swallow' ``` ---------- components: Library (Lib) messages: 290641 nosy: Brian Petersen priority: normal severity: normal status: open title: PEP487 __init_subclass__ incompatible with abc.ABCMeta versions: Python 3.6 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue29923> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com