Closed
Description
Below is a contrived example. In the real world I might not actually control the metaclass for Foo
or I may be inheriting from some other class that also has a metaclass.
from typing import Generic, TypeVar
class FooMeta(type):
pass
_T = TypeVar('_T')
class Foo(Generic[_T], metaclass=FooMeta):
pass
This passes MyPy just fine, but fails at runtime with:
$ python3.6 test_generics.py
Traceback (most recent call last):
File "test_generics.py", line 8, in <module>
class Foo(Generic[_T], metaclass=FooMeta):
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
Moved from python/mypy#3720
Metadata
Metadata
Assignees
Labels
No labels