OLD | NEW |
(Empty) | |
| 1 """ |
| 2 For the ``future`` package. |
| 3 |
| 4 A special fixer that ensures that these lines have been added:: |
| 5 |
| 6 from future import standard_library |
| 7 standard_library.install_hooks() |
| 8 |
| 9 even if the only module imported was ``urllib``, in which case the regular fixer |
| 10 wouldn't have added these lines. |
| 11 |
| 12 """ |
| 13 |
| 14 from lib2to3.fixes.fix_urllib import FixUrllib |
| 15 from libfuturize.fixer_util import touch_import_top, find_root |
| 16 |
| 17 |
| 18 class FixFutureStandardLibraryUrllib(FixUrllib): # not a subclass of FixImpo
rts |
| 19 run_order = 8 |
| 20 |
| 21 def transform(self, node, results): |
| 22 # transform_member() in lib2to3/fixes/fix_urllib.py breaks node so find_
root(node) |
| 23 # no longer works after the super() call below. So we find the root firs
t: |
| 24 root = find_root(node) |
| 25 result = super(FixFutureStandardLibraryUrllib, self).transform(node, res
ults) |
| 26 # TODO: add a blank line between any __future__ imports and this? |
| 27 touch_import_top(u'future', u'standard_library', root) |
| 28 return result |
| 29 |
| 30 |
OLD | NEW |