[Python-Dev] PEP 492: __aiter__ should return async iterator directly instead of awaitable
Yury Selivanov
yselivanov.ml at gmail.com
Mon Jun 6 16:05:53 EDT 2016
More information about the Python-Dev mailing list
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/GET_AITER opcode calls the __aiter__ method. >> >> 2. If the returned object has an '__anext__' method, GET_AITER >> silently wraps it in an awaitable, which is equivalent to the >> following coroutine: >> >> async def wrapper(aiter_result): >> return aiter_result >> >> 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 ]
More information about the Python-Dev mailing list