Skip to main content

trollius2asyncio

A tool based on lib2to3 for converting code using trollius to use asyncio. After installation, run trollius2asyncio. It works in the same way as 2to3.

For example, it will transform this:

import trollius
from trollius import From, Return

@trollius.coroutine
def double_future(future):
    value = yield From(future)
    raise Return(2 * value)

into

import asyncio


async def double_future(future):
    value = await future
    return 2 * value

Usage

After installation, run trollius2asyncio as you would 2to3. It takes the same command-line arguments, including -h for help.

Limitations

It recognises From, trollius.From, Return and trollius.Return, without taking the imports into consideration. Thus, importing trollius as a different name will confuse it, and from tornado.gen import Return will cause the returns from Tornado to also be rewritten (which should still be a legal transformation).

It recognises @trollius.coroutine, again without taking imports into consideration. If the decorator is omitted, it won't turn the function into a coroutine, which will lead to syntax errors if it ends up containing await statements. It also won't apply the transformation if there are additional decorators inside (i.e., between @trollius.coroutine and the definition) since that would alter the semantics.

The resulting code is not necessarily well-styled e.g., the extra blank line in the example above. These are limitations of lib2to3 and won't be easy to fix without risking breaking code in corner cases.

Release history

0.2

  • Drop Python 3.4 support (output code uses async and await).

0.1.1

  • Add licence.

0.1

  • Initial release.

Metadata

Release files for trollius-fixers 0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trollius-fixers 0.2
File Size Uploaded
trollius-fixers-0.2.tar.gz 4.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for trollius-fixers 0.2
File Interpreter ABI Platform
trollius_fixers-0.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 14.7 kB

Release files / trollius-fixers-0.2.tar.gz

Download URL trollius-fixers-0.2.tar.gz
Size 4.6 kB
Tags Source
SHA-256 checksum
How to use checksums
85d8230dc137fbe43031a5c695a42d22c17e92b26a4bfc0582132f251f78acf9
BLAKE2b-256 checksum
How to use checksums
ef3c4aac6cc24b2fbcaabd269c5634f91956756668384f59a64f50b69620edc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.14.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.7

Release files / trollius_fixers-0.2-py2.py3-none-any.whl

Download URL trollius_fixers-0.2-py2.py3-none-any.whl
Size 10.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
b67c5218b5f25e888a7eb4b204631192cd6264bf91b2a9a9e0cae77c80b4ab5d
BLAKE2b-256 checksum
How to use checksums
4880ab43f03268aa23c61d6592b4e69ea6f4c922685e137bc8781e346f1ddd7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.14.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.7

Release history Release notifications | RSS feed

This release

0.2 This release

2 release files

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page