Issue 33654: asyncio: transports don't support switching between Protocol and BufferedProtocol (original) (raw)
asyncio.BufferedProtocol is a new Python 3.7 provisional API.
asyncio.Transport.set_protocol() doesn't support switching between Protocol and BufferedProtocol.
Because of (2), another new Python 3.7 API "loop.start_tls" doesn't support asyncio.BufferedProtocol at all.
The fix is straightforward and does not affect any existing APIs in Python 3.6 and lower. Since the patch adjusts the APIs a little bit, it would be great to merge this in 3.7.0.
However, since only the provisional APIs are changed, this can be theoretically merged to 3.7.1 too. It would be nice, though, to get this into 3.7.0. Ned, your thoughts?