Skip to main content

Convert trollius code to asyncio

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trollius-fixers-0.2.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

trollius_fixers-0.2-py2.py3-none-any.whl (10.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file trollius-fixers-0.2.tar.gz.

File metadata

  • Download URL: trollius-fixers-0.2.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for trollius-fixers-0.2.tar.gz
Algorithm Hash digest
SHA256 85d8230dc137fbe43031a5c695a42d22c17e92b26a4bfc0582132f251f78acf9
MD5 5e0afa010697608f2ab056e60211da0c
BLAKE2b-256 ef3c4aac6cc24b2fbcaabd269c5634f91956756668384f59a64f50b69620edc2

See more details on using hashes here.

File details

Details for the file trollius_fixers-0.2-py2.py3-none-any.whl.

File metadata

  • Download URL: trollius_fixers-0.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using 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

File hashes

Hashes for trollius_fixers-0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b67c5218b5f25e888a7eb4b204631192cd6264bf91b2a9a9e0cae77c80b4ab5d
MD5 c14b11e721fa4c7f85c6e7c0009c1076
BLAKE2b-256 4880ab43f03268aa23c61d6592b4e69ea6f4c922685e137bc8781e346f1ddd7b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page