René's URL Explorer Experiment


Title: PEP 492 – Coroutines with async and await syntax | peps.python.org

Open Graph Title: PEP 492 – Coroutines with async and await syntax | peps.python.org

Description: The growth of Internet and general connectivity has triggered the proportionate need for responsive and scalable code. This proposal aims to answer that need by making writing explicitly asynchronous, concurrent Python code easier and more Pythonic.

Open Graph Description: The growth of Internet and general connectivity has triggered the proportionate need for responsive and scalable code. This proposal aims to answer that need by making writing explicitly asynchronous, concurrent Python code easier and more Pythonic.

Opengraph URL: https://peps.python.org/pep-0492/

direct link

Domain: www.python.org

color-schemelight dark
og:typewebsite
og:site_namePython Enhancement Proposals (PEPs)
og:imagehttps://peps.python.org/_static/og-image.png
og:image:altPython PEPs
og:image:width200
og:image:height200
theme-color#3776ab

Links:

Pythonhttps://www.python.org/
PEP Indexhttps://www.python.org/dev/peps/
Python-Dev listhttps://mail.python.org/archives/list/python-dev@python.org/
Abstracthttps://www.python.org/dev/peps/pep-0492/#abstract
API Design and Implementation Revisionshttps://www.python.org/dev/peps/pep-0492/#api-design-and-implementation-revisions
Rationale and Goalshttps://www.python.org/dev/peps/pep-0492/#rationale-and-goals
Specificationhttps://www.python.org/dev/peps/pep-0492/#specification
New Coroutine Declaration Syntaxhttps://www.python.org/dev/peps/pep-0492/#new-coroutine-declaration-syntax
types.coroutine()https://www.python.org/dev/peps/pep-0492/#types-coroutine
Await Expressionhttps://www.python.org/dev/peps/pep-0492/#await-expression
Updated operator precedence tablehttps://www.python.org/dev/peps/pep-0492/#updated-operator-precedence-table
Examples of “await” expressionshttps://www.python.org/dev/peps/pep-0492/#examples-of-await-expressions
Asynchronous Context Managers and “async with”https://www.python.org/dev/peps/pep-0492/#asynchronous-context-managers-and-async-with
New Syntaxhttps://www.python.org/dev/peps/pep-0492/#new-syntax
Examplehttps://www.python.org/dev/peps/pep-0492/#example
Asynchronous Iterators and “async for”https://www.python.org/dev/peps/pep-0492/#asynchronous-iterators-and-async-for
New Syntaxhttps://www.python.org/dev/peps/pep-0492/#id12
Example 1https://www.python.org/dev/peps/pep-0492/#example-1
Example 2https://www.python.org/dev/peps/pep-0492/#example-2
Why StopAsyncIteration?https://www.python.org/dev/peps/pep-0492/#why-stopasynciteration
Coroutine objectshttps://www.python.org/dev/peps/pep-0492/#coroutine-objects
Differences from generatorshttps://www.python.org/dev/peps/pep-0492/#differences-from-generators
Coroutine object methodshttps://www.python.org/dev/peps/pep-0492/#coroutine-object-methods
Debugging Featureshttps://www.python.org/dev/peps/pep-0492/#debugging-features
New Standard Library Functionshttps://www.python.org/dev/peps/pep-0492/#new-standard-library-functions
New Abstract Base Classeshttps://www.python.org/dev/peps/pep-0492/#new-abstract-base-classes
Glossaryhttps://www.python.org/dev/peps/pep-0492/#glossary
Transition Planhttps://www.python.org/dev/peps/pep-0492/#transition-plan
Backwards Compatibilityhttps://www.python.org/dev/peps/pep-0492/#backwards-compatibility
asynciohttps://www.python.org/dev/peps/pep-0492/#asyncio
asyncio migration strategyhttps://www.python.org/dev/peps/pep-0492/#asyncio-migration-strategy
async/await in CPython code basehttps://www.python.org/dev/peps/pep-0492/#async-await-in-cpython-code-base
Grammar Updateshttps://www.python.org/dev/peps/pep-0492/#grammar-updates
Deprecation Planshttps://www.python.org/dev/peps/pep-0492/#deprecation-plans
Design Considerationshttps://www.python.org/dev/peps/pep-0492/#design-considerations
PEP 3152https://www.python.org/dev/peps/pep-0492/#pep-3152
Coroutine-generatorshttps://www.python.org/dev/peps/pep-0492/#coroutine-generators
Why “async” and “await” keywordshttps://www.python.org/dev/peps/pep-0492/#why-async-and-await-keywords
Why “__aiter__” does not return an awaitablehttps://www.python.org/dev/peps/pep-0492/#why-aiter-does-not-return-an-awaitable
Importance of “async” keywordhttps://www.python.org/dev/peps/pep-0492/#importance-of-async-keyword
Why “async def”https://www.python.org/dev/peps/pep-0492/#why-async-def
Why not “await for” and “await with”https://www.python.org/dev/peps/pep-0492/#why-not-await-for-and-await-with
Why “async def” and not “def async”https://www.python.org/dev/peps/pep-0492/#why-async-def-and-not-def-async
Why not a __future__ importhttps://www.python.org/dev/peps/pep-0492/#why-not-a-future-import
Why magic methods start with “a”https://www.python.org/dev/peps/pep-0492/#why-magic-methods-start-with-a
Why not reuse existing magic nameshttps://www.python.org/dev/peps/pep-0492/#why-not-reuse-existing-magic-names
Why not reuse existing “for” and “with” statementshttps://www.python.org/dev/peps/pep-0492/#why-not-reuse-existing-for-and-with-statements
Comprehensionshttps://www.python.org/dev/peps/pep-0492/#comprehensions
Async lambda functionshttps://www.python.org/dev/peps/pep-0492/#async-lambda-functions
Performancehttps://www.python.org/dev/peps/pep-0492/#performance
Overall Impacthttps://www.python.org/dev/peps/pep-0492/#overall-impact
Tokenizer modificationshttps://www.python.org/dev/peps/pep-0492/#tokenizer-modifications
async/awaithttps://www.python.org/dev/peps/pep-0492/#async-await
Reference Implementationhttps://www.python.org/dev/peps/pep-0492/#reference-implementation
List of high-level changes and new protocolshttps://www.python.org/dev/peps/pep-0492/#list-of-high-level-changes-and-new-protocols
Working examplehttps://www.python.org/dev/peps/pep-0492/#working-example
Acceptancehttps://www.python.org/dev/peps/pep-0492/#acceptance
Implementationhttps://www.python.org/dev/peps/pep-0492/#implementation
Referenceshttps://www.python.org/dev/peps/pep-0492/#references
Acknowledgmentshttps://www.python.org/dev/peps/pep-0492/#acknowledgments
Copyrighthttps://www.python.org/dev/peps/pep-0492/#copyright
Abstracthttps://www.python.org/dev/peps/pep-0492/#abstract
[2]https://www.python.org/dev/peps/pep-0492/#id32
[5]https://www.python.org/dev/peps/pep-0492/#id35
[6]https://www.python.org/dev/peps/pep-0492/#id36
[7]https://www.python.org/dev/peps/pep-0492/#id37
[8]https://www.python.org/dev/peps/pep-0492/#id38
[10]https://www.python.org/dev/peps/pep-0492/#id40
API Design and Implementation Revisionshttps://www.python.org/dev/peps/pep-0492/#api-design-and-implementation-revisions
[17]https://www.python.org/dev/peps/pep-0492/#id47
[18]https://www.python.org/dev/peps/pep-0492/#id48
[19]https://www.python.org/dev/peps/pep-0492/#id49
[20]https://www.python.org/dev/peps/pep-0492/#id50
Rationale and Goalshttps://www.python.org/dev/peps/pep-0492/#rationale-and-goals
Specificationhttps://www.python.org/dev/peps/pep-0492/#specification
PEP 342https://www.python.org/dev/peps/pep-0342/
PEP 380https://www.python.org/dev/peps/pep-0380/
PEP 3156https://www.python.org/dev/peps/pep-3156/
PEP 3152https://www.python.org/dev/peps/pep-3152/
New Coroutine Declaration Syntaxhttps://www.python.org/dev/peps/pep-0492/#new-coroutine-declaration-syntax
types.coroutine()https://www.python.org/dev/peps/pep-0492/#types-coroutine
PEP 479https://www.python.org/dev/peps/pep-0479/
Debugging Featureshttps://www.python.org/dev/peps/pep-0492/#debugging-features
Coroutine objectshttps://www.python.org/dev/peps/pep-0492/#coroutine-objects
types.coroutine()https://www.python.org/dev/peps/pep-0492/#types-coroutine
Await Expressionhttps://www.python.org/dev/peps/pep-0492/#await-expression
PEP 3156https://www.python.org/dev/peps/pep-3156/
Updated operator precedence tablehttps://www.python.org/dev/peps/pep-0492/#updated-operator-precedence-table
[12]https://www.python.org/dev/peps/pep-0492/#id42
Grammar Updateshttps://www.python.org/dev/peps/pep-0492/#grammar-updates
Examples of “await” expressionshttps://www.python.org/dev/peps/pep-0492/#examples-of-await-expressions
Asynchronous Context Managers and “async with”https://www.python.org/dev/peps/pep-0492/#asynchronous-context-managers-and-async-with
New Syntaxhttps://www.python.org/dev/peps/pep-0492/#new-syntax
Examplehttps://www.python.org/dev/peps/pep-0492/#example
Asynchronous Iterators and “async for”https://www.python.org/dev/peps/pep-0492/#asynchronous-iterators-and-async-for
New Syntaxhttps://www.python.org/dev/peps/pep-0492/#id12
Example 1https://www.python.org/dev/peps/pep-0492/#example-1
Example 2https://www.python.org/dev/peps/pep-0492/#example-2
Why StopAsyncIteration?https://www.python.org/dev/peps/pep-0492/#why-stopasynciteration
PEP 479https://www.python.org/dev/peps/pep-0479/
PEP 479https://www.python.org/dev/peps/pep-0479/
Coroutine objectshttps://www.python.org/dev/peps/pep-0492/#coroutine-objects
Differences from generatorshttps://www.python.org/dev/peps/pep-0492/#differences-from-generators
[1]https://www.python.org/dev/peps/pep-0492/#id31
Coroutine object methodshttps://www.python.org/dev/peps/pep-0492/#coroutine-object-methods
PEP 479https://www.python.org/dev/peps/pep-0479/
PEP 342https://www.python.org/dev/peps/pep-0342/
PEP 380https://www.python.org/dev/peps/pep-0380/
[11]https://www.python.org/dev/peps/pep-0492/#id41
Debugging Featureshttps://www.python.org/dev/peps/pep-0492/#debugging-features
New Standard Library Functionshttps://www.python.org/dev/peps/pep-0492/#new-standard-library-functions
types.coroutine()https://www.python.org/dev/peps/pep-0492/#types-coroutine
Debugging Featureshttps://www.python.org/dev/peps/pep-0492/#debugging-features
Debugging Featureshttps://www.python.org/dev/peps/pep-0492/#debugging-features
New Abstract Base Classeshttps://www.python.org/dev/peps/pep-0492/#new-abstract-base-classes
[13]https://www.python.org/dev/peps/pep-0492/#id43
[16]https://www.python.org/dev/peps/pep-0492/#id46
Glossaryhttps://www.python.org/dev/peps/pep-0492/#glossary
New Coroutine Declaration Syntaxhttps://www.python.org/dev/peps/pep-0492/#new-coroutine-declaration-syntax
Await Expressionhttps://www.python.org/dev/peps/pep-0492/#await-expression
Await Expressionhttps://www.python.org/dev/peps/pep-0492/#await-expression
Await Expressionhttps://www.python.org/dev/peps/pep-0492/#await-expression
Asynchronous Context Managers and “async with”https://www.python.org/dev/peps/pep-0492/#asynchronous-context-managers-and-async-with
Asynchronous Iterators and “async for”https://www.python.org/dev/peps/pep-0492/#asynchronous-iterators-and-async-for
Asynchronous Iterators and “async for”https://www.python.org/dev/peps/pep-0492/#asynchronous-iterators-and-async-for
Transition Planhttps://www.python.org/dev/peps/pep-0492/#transition-plan
Backwards Compatibilityhttps://www.python.org/dev/peps/pep-0492/#backwards-compatibility
asynciohttps://www.python.org/dev/peps/pep-0492/#asyncio
asyncio migration strategyhttps://www.python.org/dev/peps/pep-0492/#asyncio-migration-strategy
Differences from generatorshttps://www.python.org/dev/peps/pep-0492/#differences-from-generators
async/await in CPython code basehttps://www.python.org/dev/peps/pep-0492/#async-await-in-cpython-code-base
asynciohttps://www.python.org/dev/peps/pep-0492/#asyncio
Grammar Updateshttps://www.python.org/dev/peps/pep-0492/#grammar-updates
Deprecation Planshttps://www.python.org/dev/peps/pep-0492/#deprecation-plans
Design Considerationshttps://www.python.org/dev/peps/pep-0492/#design-considerations
PEP 3152https://www.python.org/dev/peps/pep-0492/#pep-3152
PEP 3152https://www.python.org/dev/peps/pep-3152/
PEP 3152https://www.python.org/dev/peps/pep-3152/
Debugging Featureshttps://www.python.org/dev/peps/pep-0492/#debugging-features
Coroutine-generatorshttps://www.python.org/dev/peps/pep-0492/#coroutine-generators
Why “async” and “await” keywordshttps://www.python.org/dev/peps/pep-0492/#why-async-and-await-keywords
[5]https://www.python.org/dev/peps/pep-0492/#id35
[2]https://www.python.org/dev/peps/pep-0492/#id32
[9]https://www.python.org/dev/peps/pep-0492/#id39
[6]https://www.python.org/dev/peps/pep-0492/#id36
[7]https://www.python.org/dev/peps/pep-0492/#id37
[8]https://www.python.org/dev/peps/pep-0492/#id38
[10]https://www.python.org/dev/peps/pep-0492/#id40
Why “__aiter__” does not return an awaitablehttps://www.python.org/dev/peps/pep-0492/#why-aiter-does-not-return-an-awaitable
PEP 492https://www.python.org/dev/peps/pep-0492/
PEP 492https://www.python.org/dev/peps/pep-0492/
[19]https://www.python.org/dev/peps/pep-0492/#id49
[20]https://www.python.org/dev/peps/pep-0492/#id50
Importance of “async” keywordhttps://www.python.org/dev/peps/pep-0492/#importance-of-async-keyword
Why “async def”https://www.python.org/dev/peps/pep-0492/#why-async-def
Why not “await for” and “await with”https://www.python.org/dev/peps/pep-0492/#why-not-await-for-and-await-with
Why “async def” and not “def async”https://www.python.org/dev/peps/pep-0492/#why-async-def-and-not-def-async
Why not a __future__ importhttps://www.python.org/dev/peps/pep-0492/#why-not-a-future-import
Transition Planhttps://www.python.org/dev/peps/pep-0492/#transition-plan
Why magic methods start with “a”https://www.python.org/dev/peps/pep-0492/#why-magic-methods-start-with-a
Why not reuse existing magic nameshttps://www.python.org/dev/peps/pep-0492/#why-not-reuse-existing-magic-names
Why not reuse existing “for” and “with” statementshttps://www.python.org/dev/peps/pep-0492/#why-not-reuse-existing-for-and-with-statements
Comprehensionshttps://www.python.org/dev/peps/pep-0492/#comprehensions
Async lambda functionshttps://www.python.org/dev/peps/pep-0492/#async-lambda-functions
Performancehttps://www.python.org/dev/peps/pep-0492/#performance
Overall Impacthttps://www.python.org/dev/peps/pep-0492/#overall-impact
[4]https://www.python.org/dev/peps/pep-0492/#id34
Tokenizer modificationshttps://www.python.org/dev/peps/pep-0492/#tokenizer-modifications
async/awaithttps://www.python.org/dev/peps/pep-0492/#async-await
Reference Implementationhttps://www.python.org/dev/peps/pep-0492/#reference-implementation
[3]https://www.python.org/dev/peps/pep-0492/#id33
List of high-level changes and new protocolshttps://www.python.org/dev/peps/pep-0492/#list-of-high-level-changes-and-new-protocols
Working examplehttps://www.python.org/dev/peps/pep-0492/#working-example
[3]https://www.python.org/dev/peps/pep-0492/#id33
Acceptancehttps://www.python.org/dev/peps/pep-0492/#acceptance
PEP 492https://www.python.org/dev/peps/pep-0492/
[14]https://www.python.org/dev/peps/pep-0492/#id44
Implementationhttps://www.python.org/dev/peps/pep-0492/#implementation
[15]https://www.python.org/dev/peps/pep-0492/#id45
Referenceshttps://www.python.org/dev/peps/pep-0492/#references
1https://www.python.org/dev/peps/pep-0492/#id13
https://docs.python.org/3/library/asyncio-task.html#asyncio.coroutinehttps://docs.python.org/3/library/asyncio-task.html#asyncio.coroutine
1https://www.python.org/dev/peps/pep-0492/#id1
2https://www.python.org/dev/peps/pep-0492/#id18
http://wiki.ecmascript.org/doku.php?id=strawman:async_functionshttp://wiki.ecmascript.org/doku.php?id=strawman:async_functions
1https://www.python.org/dev/peps/pep-0492/#id27
2https://www.python.org/dev/peps/pep-0492/#id28
https://github.com/1st1/cpython/tree/awaithttps://github.com/1st1/cpython/tree/await
4https://www.python.org/dev/peps/pep-0492/#id26
https://hg.python.org/benchmarkshttps://hg.python.org/benchmarks
1https://www.python.org/dev/peps/pep-0492/#id2
2https://www.python.org/dev/peps/pep-0492/#id17
https://msdn.microsoft.com/en-us/library/hh191443.aspxhttps://msdn.microsoft.com/en-us/library/hh191443.aspx
1https://www.python.org/dev/peps/pep-0492/#id3
2https://www.python.org/dev/peps/pep-0492/#id20
http://docs.hhvm.com/manual/en/hack.async.phphttp://docs.hhvm.com/manual/en/hack.async.php
1https://www.python.org/dev/peps/pep-0492/#id4
2https://www.python.org/dev/peps/pep-0492/#id21
https://www.dartlang.org/articles/await-async/https://www.dartlang.org/articles/await-async/
1https://www.python.org/dev/peps/pep-0492/#id5
2https://www.python.org/dev/peps/pep-0492/#id22
http://docs.scala-lang.org/sips/pending/async.htmlhttp://docs.scala-lang.org/sips/pending/async.html
9https://www.python.org/dev/peps/pep-0492/#id19
https://github.com/google/traceur-compiler/wiki/LanguageFeatures#async-functions-experimentalhttps://github.com/google/traceur-compiler/wiki/LanguageFeatures#async-functions-experimental
1https://www.python.org/dev/peps/pep-0492/#id6
2https://www.python.org/dev/peps/pep-0492/#id23
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3722.pdfhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3722.pdf
11https://www.python.org/dev/peps/pep-0492/#id14
https://docs.python.org/3/reference/expressions.html#generator-iterator-methodshttps://docs.python.org/3/reference/expressions.html#generator-iterator-methods
12https://www.python.org/dev/peps/pep-0492/#id11
https://docs.python.org/3/reference/expressions.html#primarieshttps://docs.python.org/3/reference/expressions.html#primaries
13https://www.python.org/dev/peps/pep-0492/#id15
https://mail.python.org/pipermail/python-dev/2015-May/139851.htmlhttps://mail.python.org/pipermail/python-dev/2015-May/139851.html
14https://www.python.org/dev/peps/pep-0492/#id29
https://mail.python.org/pipermail/python-dev/2015-May/139844.htmlhttps://mail.python.org/pipermail/python-dev/2015-May/139844.html
15https://www.python.org/dev/peps/pep-0492/#id30
http://bugs.python.org/issue24017http://bugs.python.org/issue24017
16https://www.python.org/dev/peps/pep-0492/#id16
https://github.com/python/asyncio/issues/233https://github.com/python/asyncio/issues/233
17https://www.python.org/dev/peps/pep-0492/#id7
https://hg.python.org/cpython/rev/7a0a1a4ac639https://hg.python.org/cpython/rev/7a0a1a4ac639
18https://www.python.org/dev/peps/pep-0492/#id8
http://bugs.python.org/issue24400http://bugs.python.org/issue24400
1https://www.python.org/dev/peps/pep-0492/#id9
2https://www.python.org/dev/peps/pep-0492/#id24
http://bugs.python.org/issue27243http://bugs.python.org/issue27243
1https://www.python.org/dev/peps/pep-0492/#id10
2https://www.python.org/dev/peps/pep-0492/#id25
https://docs.python.org/3/reference/datamodel.html#async-iteratorshttps://docs.python.org/3/reference/datamodel.html#async-iterators
Acknowledgmentshttps://www.python.org/dev/peps/pep-0492/#acknowledgments
Copyrighthttps://www.python.org/dev/peps/pep-0492/#copyright
Abstracthttps://www.python.org/dev/peps/pep-0492/#abstract
API Design and Implementation Revisionshttps://www.python.org/dev/peps/pep-0492/#api-design-and-implementation-revisions
Rationale and Goalshttps://www.python.org/dev/peps/pep-0492/#rationale-and-goals
Specificationhttps://www.python.org/dev/peps/pep-0492/#specification
New Coroutine Declaration Syntaxhttps://www.python.org/dev/peps/pep-0492/#new-coroutine-declaration-syntax
types.coroutine()https://www.python.org/dev/peps/pep-0492/#types-coroutine
Await Expressionhttps://www.python.org/dev/peps/pep-0492/#await-expression
Updated operator precedence tablehttps://www.python.org/dev/peps/pep-0492/#updated-operator-precedence-table
Examples of “await” expressionshttps://www.python.org/dev/peps/pep-0492/#examples-of-await-expressions
Asynchronous Context Managers and “async with”https://www.python.org/dev/peps/pep-0492/#asynchronous-context-managers-and-async-with
New Syntaxhttps://www.python.org/dev/peps/pep-0492/#new-syntax
Examplehttps://www.python.org/dev/peps/pep-0492/#example
Asynchronous Iterators and “async for”https://www.python.org/dev/peps/pep-0492/#asynchronous-iterators-and-async-for
New Syntaxhttps://www.python.org/dev/peps/pep-0492/#id12
Example 1https://www.python.org/dev/peps/pep-0492/#example-1
Example 2https://www.python.org/dev/peps/pep-0492/#example-2
Why StopAsyncIteration?https://www.python.org/dev/peps/pep-0492/#why-stopasynciteration
Coroutine objectshttps://www.python.org/dev/peps/pep-0492/#coroutine-objects
Differences from generatorshttps://www.python.org/dev/peps/pep-0492/#differences-from-generators
Coroutine object methodshttps://www.python.org/dev/peps/pep-0492/#coroutine-object-methods
Debugging Featureshttps://www.python.org/dev/peps/pep-0492/#debugging-features
New Standard Library Functionshttps://www.python.org/dev/peps/pep-0492/#new-standard-library-functions
New Abstract Base Classeshttps://www.python.org/dev/peps/pep-0492/#new-abstract-base-classes
Glossaryhttps://www.python.org/dev/peps/pep-0492/#glossary
Transition Planhttps://www.python.org/dev/peps/pep-0492/#transition-plan
Backwards Compatibilityhttps://www.python.org/dev/peps/pep-0492/#backwards-compatibility
asynciohttps://www.python.org/dev/peps/pep-0492/#asyncio
asyncio migration strategyhttps://www.python.org/dev/peps/pep-0492/#asyncio-migration-strategy
async/await in CPython code basehttps://www.python.org/dev/peps/pep-0492/#async-await-in-cpython-code-base
Grammar Updateshttps://www.python.org/dev/peps/pep-0492/#grammar-updates
Deprecation Planshttps://www.python.org/dev/peps/pep-0492/#deprecation-plans
Design Considerationshttps://www.python.org/dev/peps/pep-0492/#design-considerations
PEP 3152https://www.python.org/dev/peps/pep-0492/#pep-3152
Coroutine-generatorshttps://www.python.org/dev/peps/pep-0492/#coroutine-generators
Why “async” and “await” keywordshttps://www.python.org/dev/peps/pep-0492/#why-async-and-await-keywords
Why “__aiter__” does not return an awaitablehttps://www.python.org/dev/peps/pep-0492/#why-aiter-does-not-return-an-awaitable
Importance of “async” keywordhttps://www.python.org/dev/peps/pep-0492/#importance-of-async-keyword
Why “async def”https://www.python.org/dev/peps/pep-0492/#why-async-def
Why not “await for” and “await with”https://www.python.org/dev/peps/pep-0492/#why-not-await-for-and-await-with
Why “async def” and not “def async”https://www.python.org/dev/peps/pep-0492/#why-async-def-and-not-def-async
Why not a __future__ importhttps://www.python.org/dev/peps/pep-0492/#why-not-a-future-import
Why magic methods start with “a”https://www.python.org/dev/peps/pep-0492/#why-magic-methods-start-with-a
Why not reuse existing magic nameshttps://www.python.org/dev/peps/pep-0492/#why-not-reuse-existing-magic-names
Why not reuse existing “for” and “with” statementshttps://www.python.org/dev/peps/pep-0492/#why-not-reuse-existing-for-and-with-statements
Comprehensionshttps://www.python.org/dev/peps/pep-0492/#comprehensions
Async lambda functionshttps://www.python.org/dev/peps/pep-0492/#async-lambda-functions
Performancehttps://www.python.org/dev/peps/pep-0492/#performance
Overall Impacthttps://www.python.org/dev/peps/pep-0492/#overall-impact
Tokenizer modificationshttps://www.python.org/dev/peps/pep-0492/#tokenizer-modifications
async/awaithttps://www.python.org/dev/peps/pep-0492/#async-await
Reference Implementationhttps://www.python.org/dev/peps/pep-0492/#reference-implementation
List of high-level changes and new protocolshttps://www.python.org/dev/peps/pep-0492/#list-of-high-level-changes-and-new-protocols
Working examplehttps://www.python.org/dev/peps/pep-0492/#working-example
Acceptancehttps://www.python.org/dev/peps/pep-0492/#acceptance
Implementationhttps://www.python.org/dev/peps/pep-0492/#implementation
Referenceshttps://www.python.org/dev/peps/pep-0492/#references
Acknowledgmentshttps://www.python.org/dev/peps/pep-0492/#acknowledgments
Copyrighthttps://www.python.org/dev/peps/pep-0492/#copyright
Page Source (GitHub)https://github.com/python/peps/blob/main/peps/pep-0492.rst?plain=1
https://github.com/python/peps/blob/main/peps/pep-0492.rsthttps://github.com/python/peps/blob/main/peps/pep-0492.rst
2025-02-01 08:55:40 UTChttps://github.com/python/peps/commits/main/peps/pep-0492.rst

Viewport: width=device-width, initial-scale=1.0


URLs of crawlers that visited me.