Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Unified Diff: third_party/google-endpoints/libfuturize/fixes/fix_future_standard_library_urllib.py

Issue 2666783008: Add google-endpoints to third_party/. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/google-endpoints/libfuturize/fixes/fix_future_standard_library_urllib.py
diff --git a/third_party/google-endpoints/libfuturize/fixes/fix_future_standard_library_urllib.py b/third_party/google-endpoints/libfuturize/fixes/fix_future_standard_library_urllib.py
new file mode 100644
index 0000000000000000000000000000000000000000..3d62959fd29e99046d899b6a11396411f6772da5
--- /dev/null
+++ b/third_party/google-endpoints/libfuturize/fixes/fix_future_standard_library_urllib.py
@@ -0,0 +1,30 @@
+"""
+For the ``future`` package.
+
+A special fixer that ensures that these lines have been added::
+
+ from future import standard_library
+ standard_library.install_hooks()
+
+even if the only module imported was ``urllib``, in which case the regular fixer
+wouldn't have added these lines.
+
+"""
+
+from lib2to3.fixes.fix_urllib import FixUrllib
+from libfuturize.fixer_util import touch_import_top, find_root
+
+
+class FixFutureStandardLibraryUrllib(FixUrllib): # not a subclass of FixImports
+ run_order = 8
+
+ def transform(self, node, results):
+ # transform_member() in lib2to3/fixes/fix_urllib.py breaks node so find_root(node)
+ # no longer works after the super() call below. So we find the root first:
+ root = find_root(node)
+ result = super(FixFutureStandardLibraryUrllib, self).transform(node, results)
+ # TODO: add a blank line between any __future__ imports and this?
+ touch_import_top(u'future', u'standard_library', root)
+ return result
+
+

Powered by Google App Engine
This is Rietveld 408576698