Index: third_party/google-endpoints/libpasteurize/fixes/fix_getcwd.py |
diff --git a/third_party/google-endpoints/libpasteurize/fixes/fix_getcwd.py b/third_party/google-endpoints/libpasteurize/fixes/fix_getcwd.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9b7f002b3cf107f4b7ea45f91269e4b31d135c31 |
--- /dev/null |
+++ b/third_party/google-endpoints/libpasteurize/fixes/fix_getcwd.py |
@@ -0,0 +1,26 @@ |
+u""" |
+Fixer for os.getcwd() -> os.getcwdu(). |
+Also warns about "from os import getcwd", suggesting the above form. |
+""" |
+ |
+from lib2to3 import fixer_base |
+from lib2to3.fixer_util import Name |
+ |
+class FixGetcwd(fixer_base.BaseFix): |
+ |
+ PATTERN = u""" |
+ power< 'os' trailer< dot='.' name='getcwd' > any* > |
+ | |
+ import_from< 'from' 'os' 'import' bad='getcwd' > |
+ """ |
+ |
+ def transform(self, node, results): |
+ if u"name" in results: |
+ name = results[u"name"] |
+ name.replace(Name(u"getcwdu", prefix=name.prefix)) |
+ elif u"bad" in results: |
+ # Can't convert to getcwdu and then expect to catch every use. |
+ self.cannot_convert(node, u"import os, use os.getcwd() instead.") |
+ return |
+ else: |
+ raise ValueError(u"For some reason, the pattern matcher failed.") |