Title: Documentation for coroutine objects
Type: Stage:
Components: Documentation Versions: Python 3.7
Status: open Resolution:
Dependencies: Superseder:
Assigned To: docs@python Nosy List: docs@python, hniksic, xtreak, yselivanov
Priority: normal Keywords:

Created on 2018-08-27 08:44 by hniksic, last changed 2018-09-18 10:37 by xtreak.

Messages (4)
msg324157 - (view) Author: Hrvoje Nikšić (hniksic) * Date: 2018-08-27 08:44
Coroutine objects have public methods such as send, close, and throw, which do not appear to be documented. For example, at a StackOverflow user asks how to abort an already created (but not submitted) coroutine without a RuntimeWarning, with the answer being to use the close() method. The user asked where does one find the close method.

Currently methods only appear to be documented in PEP 492, referring to generator documentation for details. The glossary entry for coroutine (object) links to PEP 492 and to the async def statement. Various places in the documentation, e.g. the index, link to but that page is mostly concerned with the usage of coroutines within asyncio, where the methods on individual coroutine objects should not be used.

I would expect to find documentation on coroutine objects under built-in types, .

In comparison, generator-iterator methods are documented in the language reference:
msg324171 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2018-08-27 13:06
Is this what you are referring to that has docs for send, close and throw in coroutine objects ? 
Coroutine object docs :

If the above is the one then I think we can improve on the visibility by linking it from other pages since it doesn't show up with Google for 'coroutine close'. I had to use Docs folder in source code and sphinx search in with 'coroutine close' to get there.

msg324173 - (view) Author: Hrvoje Nikšić (hniksic) * Date: 2018-08-27 13:22
That's exactly it, thanks! I have no idea how I missed it, despite looking (I thought) carefully.

But yes, they should be linked from . Just as currently there is that links to , there could be a #coroutine-types that links to

Another place to link is - it currently does link to the reference, but only to the "async def" syntax.

Since is linked from many places, it might make sense to mention that *calling* a coroutine immediately returns a coroutine object, with a link to
msg325627 - (view) Author: Karthikeyan Singaravelan (xtreak) * (Python committer) Date: 2018-09-18 10:37
Since there is work on asyncio docs overhaul I just want to bring this to your attention since I don't know if this has already been resolved with the merged PRs to master and your thoughts on this.

Date User Action Args
2018-09-18 10:37:01xtreaksetnosy: + yselivanov
messages: + msg325627
2018-08-27 13:22:24hniksicsetmessages: + msg324173
2018-08-27 13:06:53xtreaksetmessages: + msg324171
2018-08-27 12:58:06xtreaksetnosy: + xtreak
2018-08-27 08:44:48hniksiccreate