diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2017-06-16 06:59:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-16 06:59:01 (GMT) |
commit | 272d888c7b58aff5e1614e3b12e8198b92054835 (patch) | |
tree | 9514cfb06bace475f466f9c8222fb318e8966ee2 /Lib/lib2to3 | |
parent | faa63d1e84b273f75d94fe6e66f67a13e4c97f5e (diff) | |
download | cpython-272d888c7b58aff5e1614e3b12e8198b92054835.zip cpython-272d888c7b58aff5e1614e3b12e8198b92054835.tar.gz cpython-272d888c7b58aff5e1614e3b12e8198b92054835.tar.bz2 |
bpo-29783: Replace codecs.open() with io.open() (#599)
Diffstat (limited to 'Lib/lib2to3')
-rw-r--r-- | Lib/lib2to3/pgen2/driver.py | 5 | ||||
-rw-r--r-- | Lib/lib2to3/refactor.py | 36 |
2 files changed, 11 insertions, 30 deletions
diff --git a/Lib/lib2to3/pgen2/driver.py b/Lib/lib2to3/pgen2/driver.py index a27b9cb..e5e4824 100644 --- a/Lib/lib2to3/pgen2/driver.py +++ b/Lib/lib2to3/pgen2/driver.py @@ -94,11 +94,8 @@ class Driver(object): def parse_file(self, filename, encoding=None, debug=False): """Parse a file and return the syntax tree.""" - stream = codecs.open(filename, "r", encoding) - try: + with io.open(filename, "r", encoding=encoding) as stream: return self.parse_stream(stream, debug) - finally: - stream.close() def parse_string(self, text, debug=False): """Parse a string and return the syntax tree.""" diff --git a/Lib/lib2to3/refactor.py b/Lib/lib2to3/refactor.py index 70b2a00..db2e38d 100644 --- a/Lib/lib2to3/refactor.py +++ b/Lib/lib2to3/refactor.py @@ -12,12 +12,12 @@ __author__ = "Guido van Rossum <guido@python.org>" # Python imports +import io import os import sys import logging import operator import collections -import io from itertools import chain # Local imports @@ -107,22 +107,6 @@ def get_fixers_from_package(pkg_name): def _identity(obj): return obj -if sys.version_info < (3, 0): - import codecs - _open_with_encoding = codecs.open - # codecs.open doesn't translate newlines sadly. - def _from_system_newlines(input): - return input.replace("\r\n", "\n") - def _to_system_newlines(input): - if os.linesep != "\n": - return input.replace("\n", os.linesep) - else: - return input -else: - _open_with_encoding = open - _from_system_newlines = _identity - _to_system_newlines = _identity - def _detect_future_features(source): have_docstring = False @@ -330,8 +314,8 @@ class RefactoringTool(object): encoding = tokenize.detect_encoding(f.readline)[0] finally: f.close() - with _open_with_encoding(filename, "r", encoding=encoding) as f: - return _from_system_newlines(f.read()), encoding + with io.open(filename, "r", encoding=encoding) as f: + return f.read(), encoding def refactor_file(self, filename, write=False, doctests_only=False): """Refactors a file.""" @@ -530,16 +514,16 @@ class RefactoringTool(object): set. """ try: - f = _open_with_encoding(filename, "w", encoding=encoding) + fp = io.open(filename, "w", encoding=encoding) except OSError as err: self.log_error("Can't create %s: %s", filename, err) return - try: - f.write(_to_system_newlines(new_text)) - except OSError as err: - self.log_error("Can't write %s: %s", filename, err) - finally: - f.close() + + with fp: + try: + fp.write(new_text) + except OSError as err: + self.log_error("Can't write %s: %s", filename, err) self.log_debug("Wrote changes to %s", filename) self.wrote = True |