Skip to main content

lib2to3import is a utility to apply Python 2 to 3 code translation on import.

Project description

lib2to3import is a utility to apply Python 2 to 3 code translation on import.

w/o lib2to3import

>>> from py2codes import py2_print
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "py2codes/py2_print.py", line 1
    print "Written when Python 2 was majority."
                                              ^
SyntaxError: Missing parentheses in call to 'print'

With lib2to3import

>>> from lib2to3import import lib2to3importer, prepending
>>> fixers = ["lib2to3.fixes.fix_print"]
>>> with prepending(lib2to3importer(fixers, "py2codes.")):
...     from py2codes import py2_print
...
Written when Python 2 was majority.

Limitation

There’s no way to apply fixes to 2 different roots concurrently.

When you apply fixes to both ‘foo.module’ and ‘bar.module’ at one time, you have to leave out prefix parameter, that makes fixes applied to all of modules and packages to be imported.

Concurrent import:

from lib2to3import import lib2to3importer, prepending
fixers = ["lib2to3.fixes.fix_print"]

with prepending(lib2to3importer(fixers)):
    import foo.module  #  import chain: 1. foo.module -> 2. bar.module

2 steps import (Recommended):

from lib2to3import import lib2to3importer, prepending
fixers = ["lib2to3.fixes.fix_print"]

with prepending(lib2to3importer(fixers, "bar.")):
    import bar.module  # ... 2

with prepending(lib2to3importer(fixers, "foo.")):
    import foo.module  # ... 1

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

lib2to3import-2020.11.17.post1-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file lib2to3import-2020.11.17.post1-py3-none-any.whl.

File metadata

  • Download URL: lib2to3import-2020.11.17.post1-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.8.0

File hashes

Hashes for lib2to3import-2020.11.17.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 ccc3b06dd43e28dbc5b0a7a81dd825fc261f2186366a0a61269b6da64a6e25b5
MD5 79cb8708a717b6cf8f9b82f9de6fdb8b
BLAKE2b-256 18c33bc691e8caf54aad9cfb7289249e5ed989b5c51146f8de376ee4c9595743

See more details on using hashes here.

Supported by

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