You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Impossible to specify a metaclass for a Generic class #3720
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
Activity
ilevkivskyi commentedon Jul 14, 2017
I think this should be in
typingrather than here. (Also this is unfortunately not an easy problem.)rowillia commentedon Jul 14, 2017
Thanks @ilevkivskyi , moving over there.