Victor Stinner
a9acbe82e7
Closes #21886 , #21447 : Fix a race condition in asyncio when setting the result
...
of a Future with call_soon(). Add an helper, a private method, to set the
result only if the future was not cancelled.
2014-07-05 15:29:41 +02:00
Victor Stinner
2dba23af71
asyncio: sync with Tulip
...
* _UnixSubprocessTransport: fix file mode of stdin. Open stdin in write mode,
not in read mode
* Examples: close the event loop at exit
* More reliable CoroWrapper.__del__. If the constructor is interrupted by
KeyboardInterrupt or the coroutine objet is destroyed lately, some the
_source_traceback attribute doesn't exist anymore.
* repr(Task): include also the future the task is waiting for
2014-07-03 00:59:00 +02:00
Victor Stinner
98b6391fd4
Issue #21163 : BaseEventLoop.run_until_complete() and test_utils.run_briefly()
...
don't log the "destroy pending task" message anymore. The log is redundant for
run_until_complete() and useless in run_briefly().
2014-06-30 14:51:04 +02:00
Victor Stinner
f951d28ac8
asyncio: sync with Tulip, add a new asyncio.coroutines module
2014-06-29 00:46:45 +02:00
Victor Stinner
80f53aa9a0
asyncio, Tulip issue 137: In debug mode, save traceback where Future, Task and
...
Handle objects are created. Pass the traceback to call_exception_handler() in
the 'source_traceback' key.
The traceback is truncated to hide internal calls in asyncio, show only the
traceback from user code.
Add tests for the new source_traceback, and a test for the 'Future/Task
exception was never retrieved' log.
2014-06-27 13:52:20 +02:00
Victor Stinner
bbd96c6f47
asyncio, Tulip issue 137: In debug mode, add the traceback where the coroutine
...
object was created to the "coroutine ... was never yield from" log
2014-06-27 12:28:41 +02:00
Victor Stinner
975735f729
asyncio, Tulip issue 177: Rewite repr() of Future, Task, Handle and TimerHandle
...
- Uniformize repr() output to format "<Class ...>"
- On Python 3.5+, repr(Task) uses the qualified name instead of the short name
of the coroutine
2014-06-25 21:41:58 +02:00
Victor Stinner
df29c4a83d
asyncio: repr(Task) now also contains the line number even if the coroutine is
...
done: use the first line number of the code object instead of the current line
number of the generator frame.
The name of the coroutine is not enough because many coroutines may have the
same name. It's a common case in asyncio tests for example.
2014-06-24 22:57:14 +02:00
Victor Stinner
a02f81ff17
asyncio: Log an error if a Task is destroyed while it is still pending
2014-06-24 22:37:53 +02:00
Victor Stinner
8d3e02ef5a
asyncio: Set __qualname__ attribute of CoroWrapper in @coroutine decorator on
...
Python 3.5
- Drop __slots__ optimization of CoroWrapper to be able to set the __qualname__
attribute.
- Add tests on __name__, __qualname__ and __module__ of a coroutine function
and coroutine object.
- Fix test_tasks when run in debug mode (PYTHONASYNCIODEBUG env var set) on
Python 3.3 or 3.4
2014-06-18 01:14:59 +02:00
Victor Stinner
bc434e2052
asyncio: Task.__repr__() now also handles CoroWrapper
2014-06-17 00:26:36 +02:00
Victor Stinner
307bccc6ff
asyncio: Tulip issue 173: Enhance repr(Handle) and repr(Task)
...
repr(Handle) is shorter for function: "foo" instead of "<function foo at
0x...>". It now also includes the source of the callback, filename and line
number where it was defined, if available.
repr(Task) now also includes the current position in the code, filename and
line number, if available. If the coroutine (generator) is done, the line
number is omitted and "done" is added.
2014-06-12 18:39:26 +02:00
Victor Stinner
db74d982d4
Issue #21596 : asyncio.wait(): mention that the sequence of futures must not
...
be empty.
2014-06-10 11:16:05 +02:00
Victor Stinner
8d21357fb5
Issue #21601 : Document asyncio.Task.cancel(). Initial patch written by Vajrasky
...
Kok.
2014-06-02 23:06:46 +02:00
Guido van Rossum
94ba146d11
asyncio: Add __weakref__ slots to Handle and CoroWrapper. Upstream issue #166 .
2014-04-27 10:44:22 -07:00
Guido van Rossum
83c1ddda46
asyncio: Be careful accessing instance variables in __del__ ( closes #21340 ).
2014-04-27 10:33:58 -07:00
Guido van Rossum
0cbc76880f
asyncio: Add gi_{frame,running,code} properties to CoroWrapper (upstream #163 ).
2014-04-15 12:06:34 -07:00
Yury Selivanov
09cc169a03
asyncio.tasks: Make sure CoroWrapper.send proxies one argument correctly
...
Issue #21209 .
2014-04-15 12:01:16 -04:00
Yury Selivanov
f15f7484bb
asyncio.tasks: Fix CoroWrapper to workaround yield-from bug in CPython < 3.4.1
...
Closes issue #21209 .
2014-04-14 22:21:52 -04:00
Victor Stinner
4bd652a276
asyncio: Document Task.cancel() properly.
2014-04-07 11:18:06 +02:00
Victor Stinner
d74ac82df9
asyncio, Tulip issue 158: Task._step() now also sets self to None if an
...
exception is raised. self is set to None to break a reference cycle.
2014-03-04 23:07:08 +01:00
Victor Stinner
da492a8c39
asyncio: remove unused imports and unused variables noticed by pyflakes
2014-02-20 10:37:27 +01:00
Victor Stinner
7ef60cd8c2
asyncio, Tulip issue #136 : Add get/set_debug() methods to BaseEventLoopTests.
...
Add also a PYTHONASYNCIODEBUG environment variable to debug coroutines since
Python startup, to be able to debug coroutines defined directly in the asyncio
module.
2014-02-19 23:15:02 +01:00
Yury Selivanov
b0b0e628ee
asyncio: Fix spelling and typos.
...
Thanks to Vajrasky Kok for discovering some of them.
2014-02-18 22:27:48 -05:00
Guido van Rossum
b58f053e48
asyncio: Change as_completed() to use a Queue, to avoid O(N**2) behavior. Fixes issue #20566 .
2014-02-12 17:58:19 -08:00
Victor Stinner
eb74876e99
asyncio, Tulip issue 131: as_completed() and wait() now raises a TypeError if
...
the list of futures is not a list but a Future, Task or coroutine object
2014-02-11 11:54:08 +01:00
Yury Selivanov
622be340fd
asyncio.tasks: Fix as_completed, gather & wait to work with duplicate coroutines
2014-02-06 22:06:16 -05:00
Yury Selivanov
f317cb7a20
asyncio.tasks.gather: Fix docstring
2014-02-06 12:03:53 -05:00
Guido van Rossum
48c66c3dd8
asyncio: wait_for() now accepts None as timeout (Victor Stinner).
2014-01-29 14:30:38 -08:00
Victor Stinner
421e49b5c1
asyncio: wait_for() now cancels the future on timeout. Patch written by Gustavo
...
Carneiro.
2014-01-23 17:40:59 +01:00
Guido van Rossum
e1f554490d
asyncio: Reincarnate CoroWrapper's docstring as a comment.
2014-01-16 11:05:23 -08:00
Victor Stinner
bac7793b5b
asyncio: Fix CoroWrapper (fix my previous commit)
...
Add __name__ and __doc__ to __slots__
2014-01-16 01:55:29 +01:00
Victor Stinner
4d7a29c5de
asyncio: Fix a typo in CoroWrapper
...
__slot__ => __slots__
2014-01-16 01:38:24 +01:00
Guido van Rossum
68816ef058
Export asyncio.iscoroutine[function].
2013-12-28 08:06:40 -10:00
Guido van Rossum
1a605ed5a3
asyncio: Add Task.current_task() class method.
2013-12-06 12:57:40 -08:00
Guido van Rossum
de3a1363a9
asyncio: Add 'shield' to __all__.
2013-11-29 09:29:00 -08:00
Guido van Rossum
2b430b8720
asyncio: Fold some long lines.
2013-11-01 14:13:30 -07:00
Guido van Rossum
fc29e0f37e
Rename the logger to plain "logger".
2013-10-17 15:39:45 -07:00
Guido van Rossum
27b7c7ebf1
Initial checkin of asyncio package (== Tulip, == PEP 3156).
2013-10-17 13:40:50 -07:00