[Python-Dev] PEP 492: aiter should return async iterator directly instead of awaitable (original) (raw)
Yury Selivanov yselivanov.ml at gmail.com
Mon Jun 6 16:05:53 EDT 2016
- Previous message (by thread): [Python-Dev] PEP 492: __aiter__ should return async iterator directly instead of awaitable
- Next message (by thread): [Python-Dev] PEP 492: __aiter__ should return async iterator directly instead of awaitable
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2016-06-06 4:02 PM, Łukasz Langa wrote:
The proposed patch fixes the aiter in a backwards compatible way:
1. ceval/GETAITER opcode calls the aiter method. 2. If the returned object has an 'anext' method, GETAITER silently wraps it in an awaitable, which is equivalent to the following coroutine: async def wrapper(aiterresult): return aiterresult 3. If the returned object does not have an 'anext' method, a DeprecationWarning is raised. There’s a problem with this approach. It will force people to write deprecated code because you never know if your library is going to run on 3.5.0 or 3.5.1. Barry, Ubuntu wily, xenial and yakkety currently package 3.5.0 or 3.5.1. When 3.5.2 is going to get released, are they going to get it? I’m pretty sure wily isn’t and yakkety is but just wanted to confirm; especially with xenial being an LTS release.
Yes, I agree. OTOH, I don't see any other way of resolving this.
Another option would be to start raising the DeprecationWarning only in 3.6.
Yury
- Previous message (by thread): [Python-Dev] PEP 492: __aiter__ should return async iterator directly instead of awaitable
- Next message (by thread): [Python-Dev] PEP 492: __aiter__ should return async iterator directly instead of awaitable
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]