Add automation for futurize patch.

[Imported from Trac: page Python3, version 73]
jaraco 2021-02-15 17:32:03 +00:00
parent 676167916c
commit 722624c406

@ -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: