diff --git a/Python3.md b/Python3.md index e987377..1ada217 100644 --- a/Python3.md +++ b/Python3.md @@ -99,7 +99,7 @@ When doing the incidental fixes to other modules, try to change as little as pos **Second**, run `futurize --write --both-stages --all-imports path/to/file.py`. -**Third**, fix the imports (TODO this can probably be automated). +**Third**, fix the imports (automation below). Delete this bit: @@ -118,6 +118,12 @@ if PY2: This adds builtins that match Python 3's semantics. The `#noqa: F401` keeps flake8/pyflakes from complaining about unused imports. We do unused imports so that people changing code later don't have to manually check if `map()` is old style or new style. +Consider using this sed command to execute the above: + +``` +$ sed -ie '/from future import standard_library/d;/standard_library.install_aliases()/d;s/from builtins import \*/from future.utils import PY2\\nif PY2:\\n from future.builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, list, object, range, str, max, min # noqa: F401/' path/to/file.py +``` + **Fourth**, manually review the code. Futureize is nice, but it very definitely doesn't catch everything, or it makes wrong decisions. In particular: