A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2016-June/144851.html below:

[Python-Dev] PEP 492: __aiter__ should return async iterator directly instead of awaitable

[Python-Dev] PEP 492: __aiter__ should return async iterator directly instead of awaitable [Python-Dev] PEP 492: __aiter__ should return async iterator directly instead of awaitableYury Selivanov yselivanov.ml at gmail.com
Mon Jun 6 16:05:53 EDT 2016
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
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4