Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow issubclass for protocols with class variables #822

Open
vnmabus opened this issue Jul 7, 2021 · 8 comments
Open

Allow issubclass for protocols with class variables #822

vnmabus opened this issue Jul 7, 2021 · 8 comments
Labels
topic: feature Discussions about new features for Python's type annotations

Comments

@vnmabus
Copy link

vnmabus commented Jul 7, 2021

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.

@gvanrossum
Copy link
Member

That looks reasonable. Could you submit a PR? Does this need changing in mypy too?

@vnmabus
Copy link
Author

vnmabus commented Jul 7, 2021

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
Copy link
Member

Maybe a project for @Fidget-Spinner? This would be a new feature in 3.11.

@Fidget-Spinner
Copy link
Member

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
Copy link
Member

uriyyo commented Jul 30, 2021

@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.

@Fidget-Spinner
Copy link
Member

@uriyyo sorry, I'm working on this. I will tell you if I need any help.

@uriyyo
Copy link
Member

uriyyo commented Jul 30, 2021

@Fidget-Spinner Great, I am waiting to see your implementation)

@Fidget-Spinner
Copy link
Member

PR for CPython is open at python/cpython#27883. Once that is merged, we can downstream it to typing_extensions.

@srittau srittau added the topic: feature Discussions about new features for Python's type annotations label Nov 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: feature Discussions about new features for Python's type annotations
Projects
None yet
Development

No branches or pull requests

5 participants