New submission from Shantanu <hauntsani...@gmail.com>:

In the post PEP 585 world, it seems like a bit of a stumbling block for 
builtins.callable to not able to be parametrised (in a runtime context). Post 
PEP 604, I'd expect typing.Callable to be the most used typing import after 
typing.Any, so much of PEP 585's rationale should apply to this case too.

Concretely, one way to implement this would be to turn callable into a type 
whose __new__ returns a bool and which implements __class_getitem__. We could 
throw in an __instancecheck__ so that `isinstance(x, callable) == callable(x)`.


PS: Despite being code that crashes instantly, I was still able to find some 
instances of `isinstance(x, callable)` on popular Github projects: 
https://grep.app/search?q=isinstance%5C%28.%2A%2C%20callable%5C%29&regexp=true&case=true

----------
messages: 379169
nosy: hauntsaninja
priority: normal
severity: normal
status: open
title: Make builtins.callable "generic"
type: enhancement
versions: Python 3.10

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue42102>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to