Joe Amenta avatar Joe Amenta committed 763e8d9

Changing builtin "open()" to "io.open()"

Comments (0)

Files changed (2)

lib3to2/fixes/fix_open.py

+"""
+Fixer for open(...) -> io.open(...)
+"""
+
+from lib2to3 import fixer_base
+from ..fixer_util import touch_import, is_probably_builtin
+
+class FixOpen(fixer_base.BaseFix):
+
+    PATTERN = """'open'"""
+
+    def transform(self, node, results):
+
+        if is_probably_builtin(node):
+            touch_import("io", "open", node)

lib3to2/tests/test_open.py

+from test_all_fixers import lib3to2FixerTestCase
+
+class Test_open(lib3to2FixerTestCase):
+    fixer = "open"
+
+    def test_imports(self):
+        b = """new_file = open("some_filename", newline="\\r")"""
+        a = """from io import open\nnew_file = open("some_filename", newline="\\r")"""
+        self.check(b, a)
+
+    def test_doesnt_import(self):
+        s = """new_file = nothing.open("some_filename")"""
+        self.unchanged(s)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.