Hello all,

We’d like to make a last call for discussion on PEP 677: Callable Type Syntax 
[1] before sending this to the Steering Council.

For context, PEP 677 proposes an arrow-like callable syntax for python:
```
(int, str) -> bool # equivalent to Callable[[int, str], bool]
```

Thanks everyone for comments on our earlier thread [2]. We made some changes to 
the PEP, but not the proposal itself, in response to that discussion:
 - More discussion about readability of return types and parentheses
 - Noting that complex code might be improved by using TypeAliases
 - Discussion of additional ideas in the Rejected Alternatives section

Many of the concerns in the previous thread are about whether new callable 
syntax is worth the implementation complexity, which is an important question. 
We’ve seen demand for this from regular typed Python users. And given that 
Callable is one of the most used and complicated type annotations, we at 
typing-sig favor new syntax.

We have considered the feedback here and in typing-sig and feel that the syntax 
in the PEP is a reasonable tradeoff between usability and simplicity.

One concern raised was that the `async` portion of the proposed syntax may not 
be worthwhile, even if the rest of the proposal is. We considered removing it, 
but several heavy users of async pointed out [3] that:
 - For authors of large, typed async codebases, this syntax would be very 
helpful
 - For everyone else there’s minimal readability cost, because async callables
   will almost never come up.

As a result, we decided to leave it in for now, but would be happy to remove it 
if the SC would prefer that.

If there are no other concerns, we'd like to move forward and submit it to the 
SC.

Cheers,
Steven

-------
[1] PEP 677: https://www.python.org/dev/peps/pep-0677/
[2] Previous RFC thread in python-dev: 
https://mail.python.org/archives/list/python-dev@python.org/thread/OGACYN2X7RX2GHAUP2AKRPT6DP432VCN/
 
[3] Discussion in typing-sig about removing `async` keyword: 
https://mail.python.org/archives/list/typing-...@python.org/thread/RFZOSCJHDS66MOVQO6XMVVX43VEKJJBW/
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at 
https://mail.python.org/archives/list/python-dev@python.org/message/GQB36XDSPIJBAPBQCYVNVPGXS4W2NZA2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to