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
Allow issubclass for protocols with class variables #822
Currently issubclass cannot be used for runtime_checkable protocols with data members, because those attributes could be set in __init__. I propose to relax this restriction to allow protocols with ClassVar members, as those should be present in the class definition.
I do not think this needs to change in mypy, as the problem is using issubclass at runtime. I am also not familiar with the codebase, so I do not know how to made the PR.
@gvanrossum@Fidget-Spinner I can help with this feature if you need help. I am familiar with typing module so I think it won't be a problem to implement this feature.
Activity
gvanrossum commentedon Jul 7, 2021
That looks reasonable. Could you submit a PR? Does this need changing in mypy too?
vnmabus commentedon Jul 7, 2021
I do not think this needs to change in mypy, as the problem is using
issubclassat runtime. I am also not familiar with the codebase, so I do not know how to made the PR.gvanrossum commentedon Jul 7, 2021
Maybe a project for @Fidget-Spinner? This would be a new feature in 3.11.
Fidget-Spinner commentedon Jul 7, 2021
Sure, I'll take a shot at this. Currently I'm a little busy with other things in CPython, so I might not be able to work on this immediately.
We're not in a hurry (yet), 3.11's first alpha is in October 2021, and beta freeze in April 2022.
uriyyo commentedon Jul 30, 2021
@gvanrossum @Fidget-Spinner I can help with this feature if you need help. I am familiar with
typingmodule so I think it won't be a problem to implement this feature.Fidget-Spinner commentedon Jul 30, 2021
@uriyyo sorry, I'm working on this. I will tell you if I need any help.
uriyyo commentedon Jul 30, 2021
@Fidget-Spinner Great, I am waiting to see your implementation)
Fidget-Spinner commentedon Aug 22, 2021
PR for CPython is open at python/cpython#27883. Once that is merged, we can downstream it to
typing_extensions.