Index: third_party/google-endpoints/libpasteurize/fixes/fix_division.py |
diff --git a/third_party/google-endpoints/libpasteurize/fixes/fix_division.py b/third_party/google-endpoints/libpasteurize/fixes/fix_division.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6a048710f403ea0042b8e85f00b9664e23cb013e |
--- /dev/null |
+++ b/third_party/google-endpoints/libpasteurize/fixes/fix_division.py |
@@ -0,0 +1,28 @@ |
+u""" |
+Fixer for division: from __future__ import division if needed |
+""" |
+ |
+from lib2to3 import fixer_base |
+from libfuturize.fixer_util import token, future_import |
+ |
+def match_division(node): |
+ u""" |
+ __future__.division redefines the meaning of a single slash for division, |
+ so we match that and only that. |
+ """ |
+ slash = token.SLASH |
+ return node.type == slash and not node.next_sibling.type == slash and \ |
+ not node.prev_sibling.type == slash |
+ |
+class FixDivision(fixer_base.BaseFix): |
+ run_order = 4 # this seems to be ignored? |
+ |
+ def match(self, node): |
+ u""" |
+ Since the tree needs to be fixed once and only once if and only if it |
+ matches, then we can start discarding matches after we make the first. |
+ """ |
+ return match_division(node) |
+ |
+ def transform(self, node, results): |
+ future_import(u"division", node) |