[Tutor] Easier way to use 2to3?

Ken Green beachkidken at gmail.com
Sat Aug 24 09:07:58 EDT 2019



On 8/23/19 9:10 PM, Cameron Simpson wrote:
> On 23Aug2019 20:49, Ken Green <beachkidken at gmail.com> wrote:
>> It took me a while to figure out how to do a 2to3
>> as shown in several examples I seen, [...]
>
> Documentation beats examples.
>
> [...]
>> When I ran 2to3 sample.py in a Python3 directory,
>> I get the following:
>>
>> ken at kengreen:~/Python3$ 2to3 sample.py
> [... noise, diff, original file unchanged ...]
>> Huh, what? The original program was not changed! I was
>> expecting a changed Python2 program to be compatible with
>> Python3. I ended up making the needed changes line-by-line
>> to my original program. What gives?
>
> The default mode does no damage to files. But if we ask 2to3 for help:
>
>    [~]fleet*> 2to3 --help
>    Usage: 2to3 [options] file|dir ...
>
>    Options:
>      -h, --help            show this help message and exit
>      -d, --doctests_only   Fix up doctests only
>      -f FIX, --fix=FIX     Each FIX specifies a transformation; 
> default: all
>      -j PROCESSES, --processes=PROCESSES
>                            Run 2to3 concurrently
>      -x NOFIX, --nofix=NOFIX
>                            Prevent a transformation from being run
>      -l, --list-fixes      List available transformations
>      -p, --print-function  Modify the grammar so that print() is a 
> function
>      -v, --verbose         More verbose logging
>      --no-diffs            Don't show diffs of the refactoring
>      -w, --write           Write back modified files
>      -n, --nobackups       Don't write backups for modified files
>      -o OUTPUT_DIR, --output-dir=OUTPUT_DIR
>                            Put output files in this directory instead of
>                            overwriting the input files.  Requires -n.
>      -W, --write-unchanged-files
>                            Also write files even if no changes were 
> required
>                            (useful with --output-dir); implies -w.
>      --add-suffix=ADD_SUFFIX
>                            Append this string to all output 
> filenames.  Requires
>                            -n if non-empty.  ex: --add-suffix='3' will 
> generate
>                            .py3 files.
>
> So try the -w option.
>
> Cheers,
> Cameron Simpson <cs at cskk.id.au>
>
Thanks ever so much for pointing me in the right direction.
Much appreciated.

Ken



More information about the Tutor mailing list