Jakub Stasiak
3d86d090dc
bpo-42230: Improve asyncio documentation regarding accepting sets vs iterables (GH-23073)
...
People call wait() and as_completed() with various non-set iterables,
a list should be the most common but there are others as well[1].
Considering typeshed also documents wait()[2] and as_completed()[3]
as accepting arbitrary iterables I think it's a good idea to document
the status quo better.
[1] https://github.com/aio-libs/aiokafka/pull/672
[2] 620989bac5/stdlib/3/asyncio/tasks.pyi (L161)
[3] 620989bac5/stdlib/3/asyncio/tasks.pyi (L40)
2020-11-02 12:56:35 +02:00
Vinay Sharma
d42528a3a2
bpo-37703: improve asyncio.gather documentation regarding cancellation (GH-15312)
...
These changes updates the doc to comprehensively mention the behaviour of gather.cancel()
Automerge-Triggered-By: @asvetlov
2020-07-20 01:42:57 -07:00
Rémi Lapeyre
004e64e805
bpo-40967: Remove deprecated asyncio.Task.current_task() and asyncio.Task.all_tasks() (GH-20874)
2020-07-01 20:41:21 -07:00
Kyle Stanley
2b201369b4
Fix asyncio.to_thread() documented return type (GH-20547)
...
When I wrote the documentation for `asyncio.to_thread()`, I mistakenly assumed that `return await loop.run_in_executor(...)` within an async def function would return a Future. In reality, it returns a coroutine.
This likely won't affect typical usage of `asyncio.to_thread()`, but it's important for the documentation to be correct here. In general, we also tend to avoid returning futures from high-level APIs in asyncio.
2020-05-31 00:07:04 -07:00
Bar Harel
13206b52d1
bpo-40405: Fix asyncio.as_completed docs (GH-19753)
...
* Fix as_completed docs to correctly state the function return value.
* Also, improves the general wording of the as_completed documentation.
Co-Authored-By: Rémi Lapeyre <remi.lapeyre@henki.fr>
Co-Authored-By: Kyle Stanley <aeros167@gmail.com>
Co-Authored-By: Yury Selivanov <yury@edgedb.com>
2020-05-23 19:14:31 -04:00
Kyle Stanley
0f56263e62
bpo-32309: Add support for contextvars in asyncio.to_thread() (GH-20278)
...
Allows contextvars from the main thread to be accessed in the separate thread used in `asyncio.to_thread()`. See the [discussion](https://github.com/python/cpython/pull/20143#discussion_r427808225 ) in GH-20143 for context.
Automerge-Triggered-By: @aeros
2020-05-20 22:20:43 -07:00
Kyle Stanley
cc2bbc2227
bpo-32309: Implement asyncio.to_thread() (GH-20143)
...
Implements `asyncio.to_thread`, a coroutine for asynchronously running IO-bound functions in a separate thread without blocking the event loop. See the discussion starting from [here](https://github.com/python/cpython/pull/18410#issuecomment-628930973 ) in GH-18410 for context.
Automerge-Triggered-By: @aeros
2020-05-18 20:03:28 -07:00
Chris Jerdonek
1ce5841eca
bpo-31033: Add a msg argument to Future.cancel() and Task.cancel() (GH-19979)
2020-05-15 16:55:50 -07:00
romasku
382a5635bd
bpo-40607: Reraise exception during task cancelation in asyncio.wait_for() (GH-20054)
...
Currently, if asyncio.wait_for() timeout expires, it cancels
inner future and then always raises TimeoutError. In case
those future is task, it can handle cancelation mannually,
and those process can lead to some other exception. Current
implementation silently loses thoses exception.
To resolve this, wait_for will check was the cancelation
successfull or not. In case there was exception, wait_for
will reraise it.
Co-authored-by: Roman Skurikhin <roman.skurikhin@cruxlab.com>
2020-05-15 13:12:05 -07:00
jack1142
de92769d47
bpo-34790: add version of removal of explicit passing of coros to `asyncio.wait`'s documentation ( #20008 )
2020-05-13 11:55:12 -07:00
Joel Rosdahl
9d74658f0a
bpo-40499: Mention that asyncio.wait() needs a non-empty aws set (GH-19900)
...
A similar formulation was added in bpo-21596
(db74d982d4
) but was lost in bpo-33649
(3faaa8857a
).
2020-05-04 14:56:00 -07:00
Kyle Stanley
f900064ac4
docs: Add asyncio source code links (GH-16640)
2019-10-10 19:18:46 -04:00
Kyle Stanley
e407013089
Fix and improve `asyncio.run()` docs (GH-16403)
2019-09-30 17:12:21 -07:00
Emmanuel Arias
17deb16883
bpo-38260: Add Docs on asyncio.run (GH-16337)
...
Add docs about return and raise exception on asyncio.run
https://bugs.python.org/issue38260
Automerge-Triggered-By: @asvetlov
2019-09-25 01:53:49 -07:00
Kyle Stanley
77af2290e5
Doc: Remove provisional note for asyncio.run() (GH-16310)
...
Based on a comment from @asvetlov https://github.com/python/cpython/pull/15735#discussion_r323619076 , this removes the provisional note for ``asyncio.run()`` in the documentation.
Automerge-Triggered-By: @1st1
2019-09-20 16:46:21 -07:00
Kyle Stanley
9fdc64cf12
bpo-34037: Fix test_asyncio failure and add loop.shutdown_default_executor() (GH-15735)
2019-09-19 15:47:22 +03:00
Andrew Svetlov
a488879cba
bpo-36373: Deprecate explicit loop in task and subprocess API (GH-16033)
2019-09-12 15:40:40 +03:00
Alex Grönholm
98ef92002e
bpo-36999: Add asyncio.Task.get_coro() (GH-13680)
...
https://bugs.python.org/issue36999
2019-05-30 08:30:09 -07:00
Matthias Bussonnier
d0ebf13e50
bpo-36932: use proper deprecation-removed directive (GH-13349)
...
.. And update some deprecation warnings with version numbers.
https://bugs.python.org/issue36932
2019-05-20 23:20:10 -07:00
Boštjan Mejak
1d5bdef550
Orthographical fix (GH-13418)
...
Add a missing comma.
2019-05-19 02:01:36 -07:00
Andrew Svetlov
68b34a7204
bpo-36921: Deprecate @coroutine for sake of async def (GH-13346)
...
The second attempt. Now deprecate `@coroutine` only, keep `yield from fut` as is.
https://bugs.python.org/issue36921
2019-05-16 07:52:10 -07:00
Vaibhav Gupta
3a81076bbf
bpo-35579: Fix typo in in asyncio-task documentation (GH-11321)
...
https://bugs.python.org/issue35579
https://bugs.python.org/issue35579
2018-12-26 06:47:16 -08:00
Mariatta
9f43fbbd9d
Use f-strings in asyncio-task code examples (GH-10035)
...
Replace str.format with f-strings in the code examples of asyncio-task documentation.
2018-10-25 00:37:12 +02:00
Hrvoje Nikšić
cd602b8af2
bpo-34476: Document that asyncio.sleep() always suspends. ( #9643 )
2018-10-01 13:09:38 +03:00
Yury Selivanov
59ee5b1293
bpo-34802: Fix asyncio.iscoroutine() docs (GH-9611)
2018-09-27 15:48:30 -04:00
Yury Selivanov
fad6af2744
asyncio/docs: Replace Python 4.0 -> 3.10 (GH-9579)
2018-09-25 17:44:52 -04:00
Yury Selivanov
996859a90d
bpo-34790: [docs] Passing coroutines to asyncio.wait() can be confusing. (GH-9543)
2018-09-25 14:51:21 -04:00
Yury Selivanov
db1a80e97a
bpo-33649: Fix gather() docs; fix title; few other nits. (GH-9475)
2018-09-21 16:23:15 -04:00
Yury Selivanov
e247b46cba
bpo-33649: More improvements (GH-9439)
2018-09-20 12:43:59 -04:00
Yury Selivanov
471503954a
bpo-33649: Add a high-level section about Futures; few quick fixes (GH-9403)
...
Co-authored-by: Elvis Pranskevichus <elvis@magic.io>
2018-09-18 17:55:44 -04:00
Yury Selivanov
b042cf10c6
bpo-33649: Fix markup; add another note that asyncio.run is 3.7+ (GH-9389)
2018-09-18 02:47:54 -04:00
Miguel Ángel García
9c53fa6ad9
Fix syntax error on Asyncio example in doc (GH-9387)
...
The `gather` method requires to close the parenthesis, but it is being closed twice.
2018-09-18 02:01:26 -04:00
Danny Hermes
7bfbda46f4
Change "set_after" reference to `say_after`. (GH-9384)
2018-09-18 00:49:21 -04:00
Elvis Pranskevichus
1fa2ec49be
bpo-33649: A copy-editing pass on asyncio documentation (GH-9376)
2018-09-17 19:16:44 -04:00
Yury Selivanov
394374e30c
bpo-33649: Add low-level APIs index. (GH-9364)
2018-09-17 15:35:24 -04:00
Yury Selivanov
7372c3bbef
bpo-33649: Add high-level APIs cheat-sheet (GH-9319)
2018-09-14 15:11:24 -07:00
Yury Selivanov
3faaa8857a
bpo-33649: Refresh Tasks and Futures pages ( #9314 )
...
* bpo-33649: Refresh Tasks and Futures pages
* Fixes
* Fix markup
2018-09-14 13:32:07 -07:00
Yury Selivanov
7c7605ff11
bpo-33649: First asyncio docs improvement pass (GH-9142)
...
Rewritten/updated sections:
* Event Loop APIs
* Transports & Protocols
* Streams
* Exceptions
* Policies
* Queues
* Subprocesses
* Platforms
2018-09-11 09:54:40 -07:00
Alex Grönholm
cca4eec3c0
bpo-34270: Make it possible to name asyncio tasks (GH-8547)
...
Co-authored-by: Antti Haapala <antti.haapala@anttipatterns.com>
2018-08-08 17:06:47 -04:00
Elvis Pranskevichus
dec947ca26
Fix typo introduced in GH-7217 ( #7230 )
2018-05-29 20:14:59 -04:00
Elvis Pranskevichus
f9aeca2085
bpo-23859: Document that asyncio.wait() does not cancel its futures ( #7217 )
...
Unlike `asyncio.wait_for()`, `asyncio.wait()` does not cancel the passed
futures when a timeout accurs.
2018-05-29 18:21:44 -04:00
Elvis Pranskevichus
e2b340ab41
bpo-32751: Wait for task cancellation in asyncio.wait_for() (GH-7216)
...
Currently, asyncio.wait_for(fut), upon reaching the timeout deadline,
cancels the future and returns immediately. This is problematic for
when *fut* is a Task, because it will be left running for an arbitrary
amount of time. This behavior is iself surprising and may lead to
related bugs such as the one described in bpo-33638:
condition = asyncio.Condition()
async with condition:
await asyncio.wait_for(condition.wait(), timeout=0.5)
Currently, instead of raising a TimeoutError, the above code will fail
with `RuntimeError: cannot wait on un-acquired lock`, because
`__aexit__` is reached _before_ `condition.wait()` finishes its
cancellation and re-acquires the condition lock.
To resolve this, make `wait_for` await for the task cancellation.
The tradeoff here is that the `timeout` promise may be broken if the
task decides to handle its cancellation in a slow way. This represents
a behavior change and should probably not be back-patched to 3.6 and
earlier.
2018-05-29 17:31:01 -04:00
Yury Selivanov
863b674909
bpo-32684: Fix gather to propagate cancel of itself with return_exceptions (GH-7209)
2018-05-29 17:20:02 -04:00
Yury Selivanov
416c1ebd98
bpo-32610: Fix asyncio.all_tasks() to return only pending tasks. (GH-7174)
2018-05-28 17:54:02 -04:00
Yury Selivanov
28b9178023
bpo-32436: Document PEP 567 changes to asyncio. (GH-7073)
2018-05-23 13:35:04 -04:00
Elvis Pranskevichus
63536bd286
bpo-32996: The bulk of What's New in Python 3.7 (GH-6978)
2018-05-19 23:15:06 -04:00
Yury Selivanov
d8d715f514
asyncio/docs: Mark asyncio.run() as provisional in 3.7. ( #6946 )
2018-05-17 13:44:00 -04:00
Andrew Svetlov
b21505e710
Fix docs markup for asyncio current_task() and all_tasks() ( #6089 )
2018-03-12 20:50:50 +02:00
Joongi Kim
13cfd57dcf
Fix missing coroutine declaration in the asyncio documentation. ( #5964 )
2018-03-03 18:43:54 +02:00
Yury Selivanov
ca9b36cd1a
bpo-32415: Add asyncio.Task.get_loop() and Future.get_loop() ( #4992 )
2017-12-23 15:04:15 -05:00