[New-bugs-announce] [issue29923] PEP487 __init_subclass__ incompatible with abc.ABCMeta

Brian Petersen report at bugs.python.org
Mon Mar 27 16:15:16 EDT 2017


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 <report at bugs.python.org>
<http://bugs.python.org/issue29923>
_______________________________________


More information about the New-bugs-announce mailing list