Roundup Robot added the comment:
New changeset 8296f0119f20 by Yury Selivanov in branch '3.5':
Issue 24004: Fix DeprecationWarning in a unittest
https://hg.python.org/cpython/rev/8296f0119f20
New changeset 60f5091cbfbf by Yury Selivanov in branch 'default':
Issue 24004: Fix DeprecationWarning
Yury Selivanov added the comment:
Thanks, Martin!
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24004
___
___
Python-bugs-list mailing list
Martin Panter added the comment:
Yury, your last change causes DeprecationWarning:
[ 38/398] test_asyncio
/media/disk/home/proj/python/cpython/Lib/test/test_asyncio/test_pep492.py:119:
DeprecationWarning: Please use assertEqual instead.
self.assertEquals(coro.send(None), 'spam')
--
Changes by Yury Selivanov yseliva...@gmail.com:
--
resolution: fixed -
status: closed - pending
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24004
___
Yury Selivanov added the comment:
Why is the AwaitableABC type check needed, in addition to looking up the
relevant method? IIUC, the type check will just do a lookup of the same
method if the type hasn't been registered as Awaitable explicitly.
Because __await__ should be defined on the
Stefan Behnel added the comment:
Cython functions that return a generator aren't special in any way, so it's
actually correct that isgeneratorfunction() always returns False. I mean, I
could set the CO_COROUTINE flag on the code object that we fake, but that
wouldn't help much as Cython's
Stefan Behnel added the comment:
Hmm, I just noticed that this only started failing when I disabled the asyncio
module patching for 3.5beta1+, assuming that it now all works. A side effect of
that was that also the inspect module is no longer patched into returning True
from isgenerator() for
Stefan Behnel added the comment:
... except that the returned object may not actually be a Cython generator but
a GeneratorWrapper, now that the patch from issue 24316 is in place. :)
Then I guess we're back to the point where duck-typing and calling __await__()
is a good idea.
--
Yury Selivanov added the comment:
Stefan,
Then I guess we're back to the point where duck-typing and calling
__await__() is a good idea.
Please test the attached patch. I agree this is a good idea.
--
keywords: +patch
Added file: http://bugs.python.org/file39569/coroutine.patch
Stefan Behnel added the comment:
Works for me.
Why is the AwaitableABC type check needed, in addition to looking up the
relevant method? IIUC, the type check will just do a lookup of the same method
if the type hasn't been registered as Awaitable explicitly.
--
status: pending - open
Roundup Robot added the comment:
New changeset b7b73029c825 by Yury Selivanov in branch '3.4':
Issue 24004: Support Awaitables (pep 492) in @asyncio.coroutine decorator
https://hg.python.org/cpython/rev/b7b73029c825
New changeset d1959cafc68c by Yury Selivanov in branch '3.5':
Issue 24004:
Roundup Robot added the comment:
New changeset 5f1e24f083c7 by Yury Selivanov in branch '3.5':
Issue 24004: Add a unittest for @asyncio.coroutine supporting Awaitables
https://hg.python.org/cpython/rev/5f1e24f083c7
New changeset 9d261141eb0c by Yury Selivanov in branch 'default':
Issue 24004:
Changes by Yury Selivanov yseliva...@gmail.com:
--
resolution: - fixed
status: open - closed
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24004
___
Stefan Behnel added the comment:
I found one more place in asyncio.coroutines, around line 190 in the
coroutine() decorator:
if inspect.isgeneratorfunction(func):
coro = func
else:
@functools.wraps(func)
def coro(*args, **kw):
res = func(*args, **kw)
Yury Selivanov added the comment:
What inspect.isgeneratorfunction(func) returns for Cython generators?
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24004
___
Yury Selivanov added the comment:
This issue was resolved in
https://github.com/python/asyncio/commit/3a09a93277afc2cdb43badf92a2c85c2789813f6.
--
resolution: - fixed
stage: - resolved
status: open - closed
versions: -Python 3.4
___
Python
Stefan Behnel added the comment:
I was (silently) hoping that this patching would eventually not be necessary
anymore because the one place (currently inspect.isgenerator()) would be
adapted to check for the generator protocol rather than the generator type. But
that was going to go into a
Stefan Behnel added the comment:
I created issue 24018 for adding a Generator ABC to collections.abc.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24004
___
New submission from Stefan Behnel:
asyncio/coroutines.py contains this code:
_COROUTINE_TYPES = (types.GeneratorType, CoroWrapper)
def iscoroutine(obj):
Return True if obj is a coroutine object.
return isinstance(obj, _COROUTINE_TYPES)
In other places, it uses inspect.isgenerator()
Guido van Rossum added the comment:
Uh, wait. Who's patching anything? That breaks the warranty.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue24004
___
20 matches
Mail list logo