parthtamu/rag-code-assistant
0
1<!DOCTYPE html>2 3<html lang="en" data-content_root="../">4 <head>5 <meta charset="utf-8" />6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />7<meta property="og:title" content="Low-level API Index" />8<meta property="og:type" content="website" />9<meta property="og:url" content="https://docs.python.org/3/library/asyncio-llapi-index.html" />10<meta property="og:site_name" content="Python documentation" />11<meta property="og:description" content="This page lists all low-level asyncio APIs. Obtaining the Event Loop:,, asyncio.get_running_loop(), The preferred function to get the running event loop.,, asyncio.get_event_loop(), Get an event lo..." />12<meta property="og:image:width" content="1146" />13<meta property="og:image:height" content="600" />14<meta property="og:image" content="https://docs.python.org/3.15/_images/social_previews/summary_library_asyncio-llapi-index_a52b074a.png" />15<meta property="og:image:alt" content="This page lists all low-level asyncio APIs. Obtaining the Event Loop:,, asyncio.get_running_loop(), The preferred function to get the running event loop.,, asyncio.get_event_loop(), Get an event lo..." />16<meta name="description" content="This page lists all low-level asyncio APIs. Obtaining the Event Loop:,, asyncio.get_running_loop(), The preferred function to get the running event loop.,, asyncio.get_event_loop(), Get an event lo..." />17<meta name="twitter:card" content="summary_large_image" />18<meta name="theme-color" content="#3776ab">19 20 <title>Low-level API Index — Python 3.15.0a6 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">21 22 <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />23 <link rel="stylesheet" type="text/css" href="../_static/classic.css?v=234b1a7c" />24 <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=89a2f22a" />25 <link rel="stylesheet" type="text/css" href="../_static/profiling-sampling-visualization.css?v=0c2600ae" />26 <link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=5349f25f" />27 28 <script src="../_static/documentation_options.js?v=6b7c9ff5"></script>29 <script src="../_static/doctools.js?v=9bcbadda"></script>30 <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>31 <script src="../_static/profiling-sampling-visualization.js?v=9811ed04"></script>32 33 <script src="../_static/sidebar.js"></script>34 35 <link rel="search" type="application/opensearchdescription+xml"36 title="Search within Python 3.15.0a6 documentation"37 href="../_static/opensearch.xml"/>38 <link rel="author" title="About these documents" href="../about.html" />39 <link rel="index" title="Index" href="../genindex.html" />40 <link rel="search" title="Search" href="../search.html" />41 <link rel="copyright" title="Copyright" href="../copyright.html" />42 <link rel="next" title="Developing with asyncio" href="asyncio-dev.html" />43 <link rel="prev" title="High-level API Index" href="asyncio-api-index.html" />44 45 46 <script defer file-types="bz2,epub,zip" data-domain="docs.python.org" src="https://analytics.python.org/js/script.file-downloads.outbound-links.js"></script>47 48 <link rel="canonical" href="https://docs.python.org/3/library/asyncio-llapi-index.html">49 50 51 52 53 <style>54 @media only screen {55 table.full-width-table {56 width: 100%;57 }58 }59 </style>60<link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">61 <link rel="shortcut icon" type="image/png" href="../_static/py.svg">62 <script type="text/javascript" src="../_static/copybutton.js"></script>63 <script type="text/javascript" src="../_static/menu.js"></script>64 <script type="text/javascript" src="../_static/search-focus.js"></script>65 <script type="text/javascript" src="../_static/themetoggle.js"></script> 66 <script type="text/javascript" src="../_static/rtd_switcher.js"></script>67 <meta name="readthedocs-addons-api-version" content="1">68 69 </head>70<body>71<div class="mobile-nav">72 <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"73 aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu">74 <nav class="nav-content" role="navigation">75 <label for="menuToggler" class="toggler__label">76 <span></span>77 </label>78 <span class="nav-items-wrapper">79 <a href="https://www.python.org/" class="nav-logo">80 <img src="../_static/py.svg" alt="Python logo">81 </a>82 <span class="version_switcher_placeholder"></span>83 <form role="search" class="search" action="../search.html" method="get">84 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">85 <path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>86 </svg>87 <input placeholder="Quick search" aria-label="Quick search" type="search" name="q">88 <input type="submit" value="Go">89 </form>90 </span>91 </nav>92 <div class="menu-wrapper">93 <nav class="menu" role="navigation" aria-label="main navigation">94 <div class="language_switcher_placeholder"></div>95 96<label class="theme-selector-label">97 Theme98 <select class="theme-selector" oninput="activateTheme(this.value)">99 <option value="auto" selected>Auto</option>100 <option value="light">Light</option>101 <option value="dark">Dark</option>102 </select>103</label>104 <div>105 <h3><a href="../contents.html">Table of Contents</a></h3>106 <ul>107<li><a class="reference internal" href="#">Low-level API Index</a><ul>108<li><a class="reference internal" href="#obtaining-the-event-loop">Obtaining the Event Loop</a></li>109<li><a class="reference internal" href="#event-loop-methods">Event Loop Methods</a></li>110<li><a class="reference internal" href="#transports">Transports</a></li>111<li><a class="reference internal" href="#protocols">Protocols</a></li>112<li><a class="reference internal" href="#event-loop-policies">Event Loop Policies</a></li>113</ul>114</li>115</ul>116 117 </div>118 <div>119 <h4>Previous topic</h4>120 <p class="topless"><a href="asyncio-api-index.html"121 title="previous chapter">High-level API Index</a></p>122 </div>123 <div>124 <h4>Next topic</h4>125 <p class="topless"><a href="asyncio-dev.html"126 title="next chapter">Developing with asyncio</a></p>127 </div>128 <script>129 document.addEventListener('DOMContentLoaded', () => {130 const title = document.querySelector('meta[property="og:title"]').content;131 const elements = document.querySelectorAll('.improvepage');132 const pageurl = window.location.href.split('?')[0];133 elements.forEach(element => {134 const url = new URL(element.href.split('?')[0].replace("-nojs", ""));135 url.searchParams.set('pagetitle', title);136 url.searchParams.set('pageurl', pageurl);137 url.searchParams.set('pagesource', "library/asyncio-llapi-index.rst");138 element.href = url.toString();139 });140 });141 </script>142 <div role="note" aria-label="source link">143 <h3>This page</h3>144 <ul class="this-page-menu">145 <li><a href="../bugs.html">Report a bug</a></li>146 <li><a class="improvepage" href="../improve-page-nojs.html">Improve this page</a></li>147 <li>148 <a href="https://github.com/python/cpython/blob/main/Doc/library/asyncio-llapi-index.rst?plain=1"149 rel="nofollow">Show source150 </a>151 </li>152 153 </ul>154 </div>155 </nav>156 </div>157</div>158 159 160 <div class="related" role="navigation" aria-label="Related">161 <h3>Navigation</h3>162 <ul>163 <li class="right" style="margin-right: 10px">164 <a href="../genindex.html" title="General Index"165 accesskey="I">index</a></li>166 <li class="right" >167 <a href="../py-modindex.html" title="Python Module Index"168 >modules</a> |</li>169 <li class="right" >170 <a href="asyncio-dev.html" title="Developing with asyncio"171 accesskey="N">next</a> |</li>172 <li class="right" >173 <a href="asyncio-api-index.html" title="High-level API Index"174 accesskey="P">previous</a> |</li>175 176 <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>177 <li><a href="https://www.python.org/">Python</a> »</li>178 <li class="switchers">179 <div class="language_switcher_placeholder"></div>180 <div class="version_switcher_placeholder"></div>181 </li>182 <li>183 184 </li>185 <li id="cpython-language-and-version">186 <a href="../index.html">3.15.0a6 Documentation</a> »187 </li>188 189 <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>190 <li class="nav-item nav-item-2"><a href="ipc.html" >Networking and Interprocess Communication</a> »</li>191 <li class="nav-item nav-item-3"><a href="asyncio.html" accesskey="U"><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code> — Asynchronous I/O</a> »</li>192 <li class="nav-item nav-item-this"><a href="">Low-level API Index</a></li>193 <li class="right">194 195 196 <div class="inline-search" role="search">197 <form class="inline-search" action="../search.html" method="get">198 <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">199 <input type="submit" value="Go">200 </form>201 </div>202 |203 </li>204 <li class="right">205<label class="theme-selector-label">206 Theme207 <select class="theme-selector" oninput="activateTheme(this.value)">208 <option value="auto" selected>Auto</option>209 <option value="light">Light</option>210 <option value="dark">Dark</option>211 </select>212</label> |</li>213 214 </ul>215 </div> 216 217 <div class="document">218 <div class="documentwrapper">219 <div class="bodywrapper">220 <div class="body" role="main">221 222 <section id="low-level-api-index">223<h1>Low-level API Index<a class="headerlink" href="#low-level-api-index" title="Link to this heading">¶</a></h1>224<p>This page lists all low-level asyncio APIs.</p>225<section id="obtaining-the-event-loop">226<h2>Obtaining the Event Loop<a class="headerlink" href="#obtaining-the-event-loop" title="Link to this heading">¶</a></h2>227<table class="full-width-table docutils align-default">228<colgroup>229<col style="width: 50.0%" />230<col style="width: 50.0%" />231</colgroup>232<tbody>233<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.get_running_loop" title="asyncio.get_running_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.get_running_loop()</span></code></a></p></td>234<td><p>The <strong>preferred</strong> function to get the running event loop.</p></td>235</tr>236<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.get_event_loop" title="asyncio.get_event_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.get_event_loop()</span></code></a></p></td>237<td><p>Get an event loop instance (running or current via the current policy).</p></td>238</tr>239<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.set_event_loop" title="asyncio.set_event_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.set_event_loop()</span></code></a></p></td>240<td><p>Set the event loop as current via the current policy.</p></td>241</tr>242<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.new_event_loop" title="asyncio.new_event_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.new_event_loop()</span></code></a></p></td>243<td><p>Create a new event loop.</p></td>244</tr>245</tbody>246</table>247<p class="rubric">Examples</p>248<ul class="simple">249<li><p><a class="reference internal" href="asyncio-future.html#asyncio-example-future"><span class="std std-ref">Using asyncio.get_running_loop()</span></a>.</p></li>250</ul>251</section>252<section id="event-loop-methods">253<h2>Event Loop Methods<a class="headerlink" href="#event-loop-methods" title="Link to this heading">¶</a></h2>254<p>See also the main documentation section about the255<a class="reference internal" href="asyncio-eventloop.html#asyncio-event-loop-methods"><span class="std std-ref">Event Loop Methods</span></a>.</p>256<p class="rubric">Lifecycle</p>257<table class="full-width-table docutils align-default">258<colgroup>259<col style="width: 50.0%" />260<col style="width: 50.0%" />261</colgroup>262<tbody>263<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.run_until_complete" title="asyncio.loop.run_until_complete"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.run_until_complete()</span></code></a></p></td>264<td><p>Run a Future/Task/awaitable until complete.</p></td>265</tr>266<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.run_forever" title="asyncio.loop.run_forever"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.run_forever()</span></code></a></p></td>267<td><p>Run the event loop forever.</p></td>268</tr>269<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.stop" title="asyncio.loop.stop"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.stop()</span></code></a></p></td>270<td><p>Stop the event loop.</p></td>271</tr>272<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.close" title="asyncio.loop.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.close()</span></code></a></p></td>273<td><p>Close the event loop.</p></td>274</tr>275<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.is_running" title="asyncio.loop.is_running"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.is_running()</span></code></a></p></td>276<td><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the event loop is running.</p></td>277</tr>278<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.is_closed" title="asyncio.loop.is_closed"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.is_closed()</span></code></a></p></td>279<td><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the event loop is closed.</p></td>280</tr>281<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.shutdown_asyncgens" title="asyncio.loop.shutdown_asyncgens"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.shutdown_asyncgens()</span></code></a></p></td>282<td><p>Close asynchronous generators.</p></td>283</tr>284</tbody>285</table>286<p class="rubric">Debugging</p>287<table class="full-width-table docutils align-default">288<colgroup>289<col style="width: 50.0%" />290<col style="width: 50.0%" />291</colgroup>292<tbody>293<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.set_debug" title="asyncio.loop.set_debug"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.set_debug()</span></code></a></p></td>294<td><p>Enable or disable the debug mode.</p></td>295</tr>296<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.get_debug" title="asyncio.loop.get_debug"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.get_debug()</span></code></a></p></td>297<td><p>Get the current debug mode.</p></td>298</tr>299</tbody>300</table>301<p class="rubric">Scheduling Callbacks</p>302<table class="full-width-table docutils align-default">303<colgroup>304<col style="width: 50.0%" />305<col style="width: 50.0%" />306</colgroup>307<tbody>308<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.call_soon" title="asyncio.loop.call_soon"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.call_soon()</span></code></a></p></td>309<td><p>Invoke a callback soon.</p></td>310</tr>311<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.call_soon_threadsafe" title="asyncio.loop.call_soon_threadsafe"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.call_soon_threadsafe()</span></code></a></p></td>312<td><p>A thread-safe variant of <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.call_soon" title="asyncio.loop.call_soon"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.call_soon()</span></code></a>.</p></td>313</tr>314<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.call_later" title="asyncio.loop.call_later"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.call_later()</span></code></a></p></td>315<td><p>Invoke a callback <em>after</em> the given time.</p></td>316</tr>317<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.call_at" title="asyncio.loop.call_at"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.call_at()</span></code></a></p></td>318<td><p>Invoke a callback <em>at</em> the given time.</p></td>319</tr>320</tbody>321</table>322<p class="rubric">Thread/Interpreter/Process Pool</p>323<table class="full-width-table docutils align-default">324<colgroup>325<col style="width: 50.0%" />326<col style="width: 50.0%" />327</colgroup>328<tbody>329<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.run_in_executor" title="asyncio.loop.run_in_executor"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.run_in_executor()</span></code></a></p></td>330<td><p>Run a CPU-bound or other blocking function in331a <a class="reference internal" href="concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a> executor.</p></td>332</tr>333<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.set_default_executor" title="asyncio.loop.set_default_executor"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.set_default_executor()</span></code></a></p></td>334<td><p>Set the default executor for <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.run_in_executor" title="asyncio.loop.run_in_executor"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.run_in_executor()</span></code></a>.</p></td>335</tr>336</tbody>337</table>338<p class="rubric">Tasks and Futures</p>339<table class="full-width-table docutils align-default">340<colgroup>341<col style="width: 50.0%" />342<col style="width: 50.0%" />343</colgroup>344<tbody>345<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_future" title="asyncio.loop.create_future"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_future()</span></code></a></p></td>346<td><p>Create a <a class="reference internal" href="asyncio-future.html#asyncio.Future" title="asyncio.Future"><code class="xref py py-class docutils literal notranslate"><span class="pre">Future</span></code></a> object.</p></td>347</tr>348<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_task" title="asyncio.loop.create_task"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_task()</span></code></a></p></td>349<td><p>Schedule coroutine as a <a class="reference internal" href="asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">Task</span></code></a>.</p></td>350</tr>351<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.set_task_factory" title="asyncio.loop.set_task_factory"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.set_task_factory()</span></code></a></p></td>352<td><p>Set a factory used by <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_task" title="asyncio.loop.create_task"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_task()</span></code></a> to353create <a class="reference internal" href="asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">Tasks</span></code></a>.</p></td>354</tr>355<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.get_task_factory" title="asyncio.loop.get_task_factory"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.get_task_factory()</span></code></a></p></td>356<td><p>Get the factory <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_task" title="asyncio.loop.create_task"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_task()</span></code></a> uses357to create <a class="reference internal" href="asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">Tasks</span></code></a>.</p></td>358</tr>359</tbody>360</table>361<p class="rubric">DNS</p>362<table class="full-width-table docutils align-default">363<colgroup>364<col style="width: 50.0%" />365<col style="width: 50.0%" />366</colgroup>367<tbody>368<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.getaddrinfo" title="asyncio.loop.getaddrinfo"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.getaddrinfo()</span></code></a></p></td>369<td><p>Asynchronous version of <a class="reference internal" href="socket.html#socket.getaddrinfo" title="socket.getaddrinfo"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.getaddrinfo()</span></code></a>.</p></td>370</tr>371<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.getnameinfo" title="asyncio.loop.getnameinfo"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.getnameinfo()</span></code></a></p></td>372<td><p>Asynchronous version of <a class="reference internal" href="socket.html#socket.getnameinfo" title="socket.getnameinfo"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.getnameinfo()</span></code></a>.</p></td>373</tr>374</tbody>375</table>376<p class="rubric">Networking and IPC</p>377<table class="full-width-table docutils align-default">378<colgroup>379<col style="width: 50.0%" />380<col style="width: 50.0%" />381</colgroup>382<tbody>383<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_connection" title="asyncio.loop.create_connection"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_connection()</span></code></a></p></td>384<td><p>Open a TCP connection.</p></td>385</tr>386<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_server" title="asyncio.loop.create_server"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_server()</span></code></a></p></td>387<td><p>Create a TCP server.</p></td>388</tr>389<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_unix_connection" title="asyncio.loop.create_unix_connection"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_unix_connection()</span></code></a></p></td>390<td><p>Open a Unix socket connection.</p></td>391</tr>392<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_unix_server" title="asyncio.loop.create_unix_server"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_unix_server()</span></code></a></p></td>393<td><p>Create a Unix socket server.</p></td>394</tr>395<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.connect_accepted_socket" title="asyncio.loop.connect_accepted_socket"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.connect_accepted_socket()</span></code></a></p></td>396<td><p>Wrap a <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a> into a <code class="docutils literal notranslate"><span class="pre">(transport,</span> <span class="pre">protocol)</span></code>397pair.</p></td>398</tr>399<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint" title="asyncio.loop.create_datagram_endpoint"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_datagram_endpoint()</span></code></a></p></td>400<td><p>Open a datagram (UDP) connection.</p></td>401</tr>402<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sendfile" title="asyncio.loop.sendfile"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sendfile()</span></code></a></p></td>403<td><p>Send a file over a transport.</p></td>404</tr>405<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.start_tls" title="asyncio.loop.start_tls"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.start_tls()</span></code></a></p></td>406<td><p>Upgrade an existing connection to TLS.</p></td>407</tr>408<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.connect_read_pipe" title="asyncio.loop.connect_read_pipe"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.connect_read_pipe()</span></code></a></p></td>409<td><p>Wrap a read end of a pipe into a <code class="docutils literal notranslate"><span class="pre">(transport,</span> <span class="pre">protocol)</span></code> pair.</p></td>410</tr>411<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.connect_write_pipe" title="asyncio.loop.connect_write_pipe"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.connect_write_pipe()</span></code></a></p></td>412<td><p>Wrap a write end of a pipe into a <code class="docutils literal notranslate"><span class="pre">(transport,</span> <span class="pre">protocol)</span></code> pair.</p></td>413</tr>414</tbody>415</table>416<p class="rubric">Sockets</p>417<table class="full-width-table docutils align-default">418<colgroup>419<col style="width: 50.0%" />420<col style="width: 50.0%" />421</colgroup>422<tbody>423<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sock_recv" title="asyncio.loop.sock_recv"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sock_recv()</span></code></a></p></td>424<td><p>Receive data from the <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></td>425</tr>426<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sock_recv_into" title="asyncio.loop.sock_recv_into"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sock_recv_into()</span></code></a></p></td>427<td><p>Receive data from the <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a> into a buffer.</p></td>428</tr>429<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sock_recvfrom" title="asyncio.loop.sock_recvfrom"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sock_recvfrom()</span></code></a></p></td>430<td><p>Receive a datagram from the <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></td>431</tr>432<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sock_recvfrom_into" title="asyncio.loop.sock_recvfrom_into"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sock_recvfrom_into()</span></code></a></p></td>433<td><p>Receive a datagram from the <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a> into a buffer.</p></td>434</tr>435<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sock_sendall" title="asyncio.loop.sock_sendall"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sock_sendall()</span></code></a></p></td>436<td><p>Send data to the <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></td>437</tr>438<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sock_sendto" title="asyncio.loop.sock_sendto"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sock_sendto()</span></code></a></p></td>439<td><p>Send a datagram via the <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a> to the given address.</p></td>440</tr>441<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sock_connect" title="asyncio.loop.sock_connect"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sock_connect()</span></code></a></p></td>442<td><p>Connect the <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></td>443</tr>444<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sock_accept" title="asyncio.loop.sock_accept"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sock_accept()</span></code></a></p></td>445<td><p>Accept a <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a> connection.</p></td>446</tr>447<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">await</span></code> <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.sock_sendfile" title="asyncio.loop.sock_sendfile"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.sock_sendfile()</span></code></a></p></td>448<td><p>Send a file over the <a class="reference internal" href="socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></td>449</tr>450<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.add_reader" title="asyncio.loop.add_reader"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.add_reader()</span></code></a></p></td>451<td><p>Start watching a file descriptor for read availability.</p></td>452</tr>453<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.remove_reader" title="asyncio.loop.remove_reader"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.remove_reader()</span></code></a></p></td>454<td><p>Stop watching a file descriptor for read availability.</p></td>455</tr>456<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.add_writer" title="asyncio.loop.add_writer"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.add_writer()</span></code></a></p></td>457<td><p>Start watching a file descriptor for write availability.</p></td>458</tr>459<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.remove_writer" title="asyncio.loop.remove_writer"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.remove_writer()</span></code></a></p></td>460<td><p>Stop watching a file descriptor for write availability.</p></td>461</tr>462</tbody>463</table>464<p class="rubric">Unix Signals</p>465<table class="full-width-table docutils align-default">466<colgroup>467<col style="width: 50.0%" />468<col style="width: 50.0%" />469</colgroup>470<tbody>471<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.add_signal_handler" title="asyncio.loop.add_signal_handler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.add_signal_handler()</span></code></a></p></td>472<td><p>Add a handler for a <a class="reference internal" href="signal.html#module-signal" title="signal: Set handlers for asynchronous events."><code class="xref py py-mod docutils literal notranslate"><span class="pre">signal</span></code></a>.</p></td>473</tr>474<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.remove_signal_handler" title="asyncio.loop.remove_signal_handler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.remove_signal_handler()</span></code></a></p></td>475<td><p>Remove a handler for a <a class="reference internal" href="signal.html#module-signal" title="signal: Set handlers for asynchronous events."><code class="xref py py-mod docutils literal notranslate"><span class="pre">signal</span></code></a>.</p></td>476</tr>477</tbody>478</table>479<p class="rubric">Subprocesses</p>480<table class="full-width-table docutils align-default">481<colgroup>482<col style="width: 50.0%" />483<col style="width: 50.0%" />484</colgroup>485<tbody>486<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.subprocess_exec" title="asyncio.loop.subprocess_exec"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.subprocess_exec()</span></code></a></p></td>487<td><p>Spawn a subprocess.</p></td>488</tr>489<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.subprocess_shell" title="asyncio.loop.subprocess_shell"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.subprocess_shell()</span></code></a></p></td>490<td><p>Spawn a subprocess from a shell command.</p></td>491</tr>492</tbody>493</table>494<p class="rubric">Error Handling</p>495<table class="full-width-table docutils align-default">496<colgroup>497<col style="width: 50.0%" />498<col style="width: 50.0%" />499</colgroup>500<tbody>501<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.call_exception_handler" title="asyncio.loop.call_exception_handler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.call_exception_handler()</span></code></a></p></td>502<td><p>Call the exception handler.</p></td>503</tr>504<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.set_exception_handler" title="asyncio.loop.set_exception_handler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.set_exception_handler()</span></code></a></p></td>505<td><p>Set a new exception handler.</p></td>506</tr>507<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.get_exception_handler" title="asyncio.loop.get_exception_handler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.get_exception_handler()</span></code></a></p></td>508<td><p>Get the current exception handler.</p></td>509</tr>510<tr class="row-even"><td><p><a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.default_exception_handler" title="asyncio.loop.default_exception_handler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.default_exception_handler()</span></code></a></p></td>511<td><p>The default exception handler implementation.</p></td>512</tr>513</tbody>514</table>515<p class="rubric">Examples</p>516<ul class="simple">517<li><p><a class="reference internal" href="asyncio-eventloop.html#asyncio-example-lowlevel-helloworld"><span class="std std-ref">Using asyncio.new_event_loop() and loop.run_forever()</span></a>.</p></li>518<li><p><a class="reference internal" href="asyncio-eventloop.html#asyncio-example-call-later"><span class="std std-ref">Using loop.call_later()</span></a>.</p></li>519<li><p>Using <code class="docutils literal notranslate"><span class="pre">loop.create_connection()</span></code> to implement520<a class="reference internal" href="asyncio-protocol.html#asyncio-example-tcp-echo-client-protocol"><span class="std std-ref">an echo-client</span></a>.</p></li>521<li><p>Using <code class="docutils literal notranslate"><span class="pre">loop.create_connection()</span></code> to522<a class="reference internal" href="asyncio-protocol.html#asyncio-example-create-connection"><span class="std std-ref">connect a socket</span></a>.</p></li>523<li><p><a class="reference internal" href="asyncio-eventloop.html#asyncio-example-watch-fd"><span class="std std-ref">Using add_reader() to watch an FD for read events</span></a>.</p></li>524<li><p><a class="reference internal" href="asyncio-eventloop.html#asyncio-example-unix-signals"><span class="std std-ref">Using loop.add_signal_handler()</span></a>.</p></li>525<li><p><a class="reference internal" href="asyncio-protocol.html#asyncio-example-subprocess-proto"><span class="std std-ref">Using loop.subprocess_exec()</span></a>.</p></li>526</ul>527</section>528<section id="transports">529<h2>Transports<a class="headerlink" href="#transports" title="Link to this heading">¶</a></h2>530<p>All transports implement the following methods:</p>531<table class="full-width-table docutils align-default">532<colgroup>533<col style="width: 50.0%" />534<col style="width: 50.0%" />535</colgroup>536<tbody>537<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.BaseTransport.close" title="asyncio.BaseTransport.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.close()</span></code></a></p></td>538<td><p>Close the transport.</p></td>539</tr>540<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.BaseTransport.is_closing" title="asyncio.BaseTransport.is_closing"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.is_closing()</span></code></a></p></td>541<td><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the transport is closing or is closed.</p></td>542</tr>543<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.BaseTransport.get_extra_info" title="asyncio.BaseTransport.get_extra_info"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.get_extra_info()</span></code></a></p></td>544<td><p>Request for information about the transport.</p></td>545</tr>546<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.BaseTransport.set_protocol" title="asyncio.BaseTransport.set_protocol"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.set_protocol()</span></code></a></p></td>547<td><p>Set a new protocol.</p></td>548</tr>549<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.BaseTransport.get_protocol" title="asyncio.BaseTransport.get_protocol"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.get_protocol()</span></code></a></p></td>550<td><p>Return the current protocol.</p></td>551</tr>552</tbody>553</table>554<p>Transports that can receive data (TCP and Unix connections,555pipes, etc). Returned from methods like556<a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_connection" title="asyncio.loop.create_connection"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_connection()</span></code></a>, <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_unix_connection" title="asyncio.loop.create_unix_connection"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_unix_connection()</span></code></a>,557<a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.connect_read_pipe" title="asyncio.loop.connect_read_pipe"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.connect_read_pipe()</span></code></a>, etc:</p>558<p class="rubric">Read Transports</p>559<table class="full-width-table docutils align-default">560<colgroup>561<col style="width: 50.0%" />562<col style="width: 50.0%" />563</colgroup>564<tbody>565<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.ReadTransport.is_reading" title="asyncio.ReadTransport.is_reading"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.is_reading()</span></code></a></p></td>566<td><p>Return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the transport is receiving.</p></td>567</tr>568<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.ReadTransport.pause_reading" title="asyncio.ReadTransport.pause_reading"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.pause_reading()</span></code></a></p></td>569<td><p>Pause receiving.</p></td>570</tr>571<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.ReadTransport.resume_reading" title="asyncio.ReadTransport.resume_reading"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.resume_reading()</span></code></a></p></td>572<td><p>Resume receiving.</p></td>573</tr>574</tbody>575</table>576<p>Transports that can Send data (TCP and Unix connections,577pipes, etc). Returned from methods like578<a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_connection" title="asyncio.loop.create_connection"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_connection()</span></code></a>, <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_unix_connection" title="asyncio.loop.create_unix_connection"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_unix_connection()</span></code></a>,579<a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.connect_write_pipe" title="asyncio.loop.connect_write_pipe"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.connect_write_pipe()</span></code></a>, etc:</p>580<p class="rubric">Write Transports</p>581<table class="full-width-table docutils align-default">582<colgroup>583<col style="width: 50.0%" />584<col style="width: 50.0%" />585</colgroup>586<tbody>587<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.WriteTransport.write" title="asyncio.WriteTransport.write"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.write()</span></code></a></p></td>588<td><p>Write data to the transport.</p></td>589</tr>590<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.WriteTransport.writelines" title="asyncio.WriteTransport.writelines"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.writelines()</span></code></a></p></td>591<td><p>Write buffers to the transport.</p></td>592</tr>593<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.WriteTransport.can_write_eof" title="asyncio.WriteTransport.can_write_eof"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.can_write_eof()</span></code></a></p></td>594<td><p>Return <a class="reference internal" href="constants.html#True" title="True"><code class="xref py py-const docutils literal notranslate"><span class="pre">True</span></code></a> if the transport supports sending EOF.</p></td>595</tr>596<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.WriteTransport.write_eof" title="asyncio.WriteTransport.write_eof"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.write_eof()</span></code></a></p></td>597<td><p>Close and send EOF after flushing buffered data.</p></td>598</tr>599<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.WriteTransport.abort" title="asyncio.WriteTransport.abort"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.abort()</span></code></a></p></td>600<td><p>Close the transport immediately.</p></td>601</tr>602<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.WriteTransport.get_write_buffer_size" title="asyncio.WriteTransport.get_write_buffer_size"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.get_write_buffer_size()</span></code></a></p></td>603<td><p>Return the current size of the output buffer.</p></td>604</tr>605<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.WriteTransport.get_write_buffer_limits" title="asyncio.WriteTransport.get_write_buffer_limits"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.get_write_buffer_limits()</span></code></a></p></td>606<td><p>Return high and low water marks for write flow control.</p></td>607</tr>608<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.WriteTransport.set_write_buffer_limits" title="asyncio.WriteTransport.set_write_buffer_limits"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.set_write_buffer_limits()</span></code></a></p></td>609<td><p>Set new high and low water marks for write flow control.</p></td>610</tr>611</tbody>612</table>613<p>Transports returned by <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint" title="asyncio.loop.create_datagram_endpoint"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.create_datagram_endpoint()</span></code></a>:</p>614<p class="rubric">Datagram Transports</p>615<table class="full-width-table docutils align-default">616<colgroup>617<col style="width: 50.0%" />618<col style="width: 50.0%" />619</colgroup>620<tbody>621<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.DatagramTransport.sendto" title="asyncio.DatagramTransport.sendto"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.sendto()</span></code></a></p></td>622<td><p>Send data to the remote peer.</p></td>623</tr>624<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.DatagramTransport.abort" title="asyncio.DatagramTransport.abort"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.abort()</span></code></a></p></td>625<td><p>Close the transport immediately.</p></td>626</tr>627</tbody>628</table>629<p>Low-level transport abstraction over subprocesses.630Returned by <a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.subprocess_exec" title="asyncio.loop.subprocess_exec"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.subprocess_exec()</span></code></a> and631<a class="reference internal" href="asyncio-eventloop.html#asyncio.loop.subprocess_shell" title="asyncio.loop.subprocess_shell"><code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.subprocess_shell()</span></code></a>:</p>632<p class="rubric">Subprocess Transports</p>633<table class="full-width-table docutils align-default">634<colgroup>635<col style="width: 50.0%" />636<col style="width: 50.0%" />637</colgroup>638<tbody>639<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessTransport.get_pid" title="asyncio.SubprocessTransport.get_pid"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.get_pid()</span></code></a></p></td>640<td><p>Return the subprocess process id.</p></td>641</tr>642<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessTransport.get_pipe_transport" title="asyncio.SubprocessTransport.get_pipe_transport"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.get_pipe_transport()</span></code></a></p></td>643<td><p>Return the transport for the requested communication pipe644(<em>stdin</em>, <em>stdout</em>, or <em>stderr</em>).</p></td>645</tr>646<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessTransport.get_returncode" title="asyncio.SubprocessTransport.get_returncode"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.get_returncode()</span></code></a></p></td>647<td><p>Return the subprocess return code.</p></td>648</tr>649<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessTransport.kill" title="asyncio.SubprocessTransport.kill"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.kill()</span></code></a></p></td>650<td><p>Kill the subprocess.</p></td>651</tr>652<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessTransport.send_signal" title="asyncio.SubprocessTransport.send_signal"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.send_signal()</span></code></a></p></td>653<td><p>Send a signal to the subprocess.</p></td>654</tr>655<tr class="row-even"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessTransport.terminate" title="asyncio.SubprocessTransport.terminate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.terminate()</span></code></a></p></td>656<td><p>Stop the subprocess.</p></td>657</tr>658<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessTransport.close" title="asyncio.SubprocessTransport.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport.close()</span></code></a></p></td>659<td><p>Kill the subprocess and close all pipes.</p></td>660</tr>661</tbody>662</table>663</section>664<section id="protocols">665<h2>Protocols<a class="headerlink" href="#protocols" title="Link to this heading">¶</a></h2>666<p>Protocol classes can implement the following <strong>callback methods</strong>:</p>667<table class="full-width-table docutils align-default">668<colgroup>669<col style="width: 50.0%" />670<col style="width: 50.0%" />671</colgroup>672<tbody>673<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.BaseProtocol.connection_made" title="asyncio.BaseProtocol.connection_made"><code class="xref py py-meth docutils literal notranslate"><span class="pre">connection_made()</span></code></a></p></td>674<td><p>Called when a connection is made.</p></td>675</tr>676<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.BaseProtocol.connection_lost" title="asyncio.BaseProtocol.connection_lost"><code class="xref py py-meth docutils literal notranslate"><span class="pre">connection_lost()</span></code></a></p></td>677<td><p>Called when the connection is lost or closed.</p></td>678</tr>679<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.BaseProtocol.pause_writing" title="asyncio.BaseProtocol.pause_writing"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pause_writing()</span></code></a></p></td>680<td><p>Called when the transport’s buffer goes over the high water mark.</p></td>681</tr>682<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.BaseProtocol.resume_writing" title="asyncio.BaseProtocol.resume_writing"><code class="xref py py-meth docutils literal notranslate"><span class="pre">resume_writing()</span></code></a></p></td>683<td><p>Called when the transport’s buffer drains below the low water mark.</p></td>684</tr>685</tbody>686</table>687<p class="rubric">Streaming Protocols (TCP, Unix Sockets, Pipes)</p>688<table class="full-width-table docutils align-default">689<colgroup>690<col style="width: 50.0%" />691<col style="width: 50.0%" />692</colgroup>693<tbody>694<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.Protocol.data_received" title="asyncio.Protocol.data_received"><code class="xref py py-meth docutils literal notranslate"><span class="pre">data_received()</span></code></a></p></td>695<td><p>Called when some data is received.</p></td>696</tr>697<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.Protocol.eof_received" title="asyncio.Protocol.eof_received"><code class="xref py py-meth docutils literal notranslate"><span class="pre">eof_received()</span></code></a></p></td>698<td><p>Called when an EOF is received.</p></td>699</tr>700</tbody>701</table>702<p class="rubric">Buffered Streaming Protocols</p>703<table class="full-width-table docutils align-default">704<colgroup>705<col style="width: 50.0%" />706<col style="width: 50.0%" />707</colgroup>708<tbody>709<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.BufferedProtocol.get_buffer" title="asyncio.BufferedProtocol.get_buffer"><code class="xref py py-meth docutils literal notranslate"><span class="pre">get_buffer()</span></code></a></p></td>710<td><p>Called to allocate a new receive buffer.</p></td>711</tr>712<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.BufferedProtocol.buffer_updated" title="asyncio.BufferedProtocol.buffer_updated"><code class="xref py py-meth docutils literal notranslate"><span class="pre">buffer_updated()</span></code></a></p></td>713<td><p>Called when the buffer was updated with the received data.</p></td>714</tr>715<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.BufferedProtocol.eof_received" title="asyncio.BufferedProtocol.eof_received"><code class="xref py py-meth docutils literal notranslate"><span class="pre">eof_received()</span></code></a></p></td>716<td><p>Called when an EOF is received.</p></td>717</tr>718</tbody>719</table>720<p class="rubric">Datagram Protocols</p>721<table class="full-width-table docutils align-default">722<colgroup>723<col style="width: 50.0%" />724<col style="width: 50.0%" />725</colgroup>726<tbody>727<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.DatagramProtocol.datagram_received" title="asyncio.DatagramProtocol.datagram_received"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datagram_received()</span></code></a></p></td>728<td><p>Called when a datagram is received.</p></td>729</tr>730<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.DatagramProtocol.error_received" title="asyncio.DatagramProtocol.error_received"><code class="xref py py-meth docutils literal notranslate"><span class="pre">error_received()</span></code></a></p></td>731<td><p>Called when a previous send or receive operation raises an732<a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-class docutils literal notranslate"><span class="pre">OSError</span></code></a>.</p></td>733</tr>734</tbody>735</table>736<p class="rubric">Subprocess Protocols</p>737<table class="full-width-table docutils align-default">738<colgroup>739<col style="width: 50.0%" />740<col style="width: 50.0%" />741</colgroup>742<tbody>743<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_data_received" title="asyncio.SubprocessProtocol.pipe_data_received"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pipe_data_received()</span></code></a></p></td>744<td><p>Called when the child process writes data into its745<em>stdout</em> or <em>stderr</em> pipe.</p></td>746</tr>747<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_connection_lost" title="asyncio.SubprocessProtocol.pipe_connection_lost"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pipe_connection_lost()</span></code></a></p></td>748<td><p>Called when one of the pipes communicating with749the child process is closed.</p></td>750</tr>751<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">callback</span></code> <a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessProtocol.process_exited" title="asyncio.SubprocessProtocol.process_exited"><code class="xref py py-meth docutils literal notranslate"><span class="pre">process_exited()</span></code></a></p></td>752<td><p>Called when the child process has exited. It can be called before753<a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_data_received" title="asyncio.SubprocessProtocol.pipe_data_received"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pipe_data_received()</span></code></a> and754<a class="reference internal" href="asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_connection_lost" title="asyncio.SubprocessProtocol.pipe_connection_lost"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pipe_connection_lost()</span></code></a> methods.</p></td>755</tr>756</tbody>757</table>758</section>759<section id="event-loop-policies">760<h2>Event Loop Policies<a class="headerlink" href="#event-loop-policies" title="Link to this heading">¶</a></h2>761<p>Policies is a low-level mechanism to alter the behavior of762functions like <a class="reference internal" href="asyncio-eventloop.html#asyncio.get_event_loop" title="asyncio.get_event_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.get_event_loop()</span></code></a>. See also763the main <a class="reference internal" href="asyncio-policy.html#asyncio-policies"><span class="std std-ref">policies section</span></a> for more764details.</p>765<p class="rubric">Accessing Policies</p>766<table class="full-width-table docutils align-default">767<colgroup>768<col style="width: 50.0%" />769<col style="width: 50.0%" />770</colgroup>771<tbody>772<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-policy.html#asyncio.get_event_loop_policy" title="asyncio.get_event_loop_policy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.get_event_loop_policy()</span></code></a></p></td>773<td><p>Return the current process-wide policy.</p></td>774</tr>775<tr class="row-even"><td><p><a class="reference internal" href="asyncio-policy.html#asyncio.set_event_loop_policy" title="asyncio.set_event_loop_policy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.set_event_loop_policy()</span></code></a></p></td>776<td><p>Set a new process-wide policy.</p></td>777</tr>778<tr class="row-odd"><td><p><a class="reference internal" href="asyncio-policy.html#asyncio.AbstractEventLoopPolicy" title="asyncio.AbstractEventLoopPolicy"><code class="xref py py-class docutils literal notranslate"><span class="pre">AbstractEventLoopPolicy</span></code></a></p></td>779<td><p>Base class for policy objects.</p></td>780</tr>781</tbody>782</table>783</section>784</section>785 786 787 <div class="clearer"></div>788 </div>789 </div>790 </div>791 <div class="sphinxsidebar" role="navigation" aria-label="Main">792 <div class="sphinxsidebarwrapper">793 <div>794 <h3><a href="../contents.html">Table of Contents</a></h3>795 <ul>796<li><a class="reference internal" href="#">Low-level API Index</a><ul>797<li><a class="reference internal" href="#obtaining-the-event-loop">Obtaining the Event Loop</a></li>798<li><a class="reference internal" href="#event-loop-methods">Event Loop Methods</a></li>799<li><a class="reference internal" href="#transports">Transports</a></li>800<li><a class="reference internal" href="#protocols">Protocols</a></li>801<li><a class="reference internal" href="#event-loop-policies">Event Loop Policies</a></li>802</ul>803</li>804</ul>805 806 </div>807 <div>808 <h4>Previous topic</h4>809 <p class="topless"><a href="asyncio-api-index.html"810 title="previous chapter">High-level API Index</a></p>811 </div>812 <div>813 <h4>Next topic</h4>814 <p class="topless"><a href="asyncio-dev.html"815 title="next chapter">Developing with asyncio</a></p>816 </div>817 <script>818 document.addEventListener('DOMContentLoaded', () => {819 const title = document.querySelector('meta[property="og:title"]').content;820 const elements = document.querySelectorAll('.improvepage');821 const pageurl = window.location.href.split('?')[0];822 elements.forEach(element => {823 const url = new URL(element.href.split('?')[0].replace("-nojs", ""));824 url.searchParams.set('pagetitle', title);825 url.searchParams.set('pageurl', pageurl);826 url.searchParams.set('pagesource', "library/asyncio-llapi-index.rst");827 element.href = url.toString();828 });829 });830 </script>831 <div role="note" aria-label="source link">832 <h3>This page</h3>833 <ul class="this-page-menu">834 <li><a href="../bugs.html">Report a bug</a></li>835 <li><a class="improvepage" href="../improve-page-nojs.html">Improve this page</a></li>836 <li>837 <a href="https://github.com/python/cpython/blob/main/Doc/library/asyncio-llapi-index.rst?plain=1"838 rel="nofollow">Show source839 </a>840 </li>841 842 </ul>843 </div>844 </div>845<div id="sidebarbutton" title="Collapse sidebar">846<span>«</span>847</div>848 849 </div>850 <div class="clearer"></div>851 </div> 852 <div class="related" role="navigation" aria-label="Related">853 <h3>Navigation</h3>854 <ul>855 <li class="right" style="margin-right: 10px">856 <a href="../genindex.html" title="General Index"857 >index</a></li>858 <li class="right" >859 <a href="../py-modindex.html" title="Python Module Index"860 >modules</a> |</li>861 <li class="right" >862 <a href="asyncio-dev.html" title="Developing with asyncio"863 >next</a> |</li>864 <li class="right" >865 <a href="asyncio-api-index.html" title="High-level API Index"866 >previous</a> |</li>867 868 <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>869 <li><a href="https://www.python.org/">Python</a> »</li>870 <li class="switchers">871 <div class="language_switcher_placeholder"></div>872 <div class="version_switcher_placeholder"></div>873 </li>874 <li>875 876 </li>877 <li id="cpython-language-and-version">878 <a href="../index.html">3.15.0a6 Documentation</a> »879 </li>880 881 <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>882 <li class="nav-item nav-item-2"><a href="ipc.html" >Networking and Interprocess Communication</a> »</li>883 <li class="nav-item nav-item-3"><a href="asyncio.html" ><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code> — Asynchronous I/O</a> »</li>884 <li class="nav-item nav-item-this"><a href="">Low-level API Index</a></li>885 <li class="right">886 887 888 <div class="inline-search" role="search">889 <form class="inline-search" action="../search.html" method="get">890 <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">891 <input type="submit" value="Go">892 </form>893 </div>894 |895 </li>896 <li class="right">897<label class="theme-selector-label">898 Theme899 <select class="theme-selector" oninput="activateTheme(this.value)">900 <option value="auto" selected>Auto</option>901 <option value="light">Light</option>902 <option value="dark">Dark</option>903 </select>904</label> |</li>905 906 </ul>907 </div> 908 <div class="footer">909 © <a href="../copyright.html">Copyright</a> 2001 Python Software Foundation.910 <br>911 This page is licensed under the Python Software Foundation License Version 2.912 <br>913 Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.914 <br>915 916 See <a href="/license.html">History and License</a> for more information.<br>917 918 919 <br>920 921 The Python Software Foundation is a non-profit corporation.922<a href="https://www.python.org/psf/donations/">Please donate.</a>923<br>924 <br>925 Last updated on Mar 10, 2026 (08:58 UTC).926 927 <a href="/bugs.html">Found a bug</a>?928 929 <br>930 931 Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.932 </div>933 934 </body>935</html>