aboutsummaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/support/encoded_file.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/Python/lldbsuite/support/encoded_file.py')
-rw-r--r--packages/Python/lldbsuite/support/encoded_file.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/packages/Python/lldbsuite/support/encoded_file.py b/packages/Python/lldbsuite/support/encoded_file.py
index 7581564f7e3a..2c2fef383f7f 100644
--- a/packages/Python/lldbsuite/support/encoded_file.py
+++ b/packages/Python/lldbsuite/support/encoded_file.py
@@ -14,6 +14,7 @@ import io
# Third party modules
import six
+
def _encoded_read(old_read, encoding):
def impl(size):
result = old_read(size)
@@ -24,6 +25,7 @@ def _encoded_read(old_read, encoding):
return result
return impl
+
def _encoded_write(old_write, encoding):
def impl(s):
# If we were asked to write a `str` (in Py2) or a `bytes` (in Py3) decode it
@@ -38,9 +40,24 @@ Create a Text I/O file object that can be written to with either unicode strings
under Python 2 and Python 3, and automatically encodes and decodes as necessary to return the
native string type for the current Python version
'''
-def open(file, encoding, mode='r', buffering=-1, errors=None, newline=None, closefd=True):
- wrapped_file = io.open(file, mode=mode, buffering=buffering, encoding=encoding,
- errors=errors, newline=newline, closefd=closefd)
+
+
+def open(
+ file,
+ encoding,
+ mode='r',
+ buffering=-1,
+ errors=None,
+ newline=None,
+ closefd=True):
+ wrapped_file = io.open(
+ file,
+ mode=mode,
+ buffering=buffering,
+ encoding=encoding,
+ errors=errors,
+ newline=newline,
+ closefd=closefd)
new_read = _encoded_read(getattr(wrapped_file, 'read'), encoding)
new_write = _encoded_write(getattr(wrapped_file, 'write'), encoding)
setattr(wrapped_file, 'read', new_read)