| Index: third_party/google-endpoints/urllib3/packages/backports/makefile.py
|
| diff --git a/third_party/google-endpoints/urllib3/packages/backports/makefile.py b/third_party/google-endpoints/urllib3/packages/backports/makefile.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..75b80dcf8465cc6d2ce5692eaaa62b60555db60e
|
| --- /dev/null
|
| +++ b/third_party/google-endpoints/urllib3/packages/backports/makefile.py
|
| @@ -0,0 +1,53 @@
|
| +# -*- coding: utf-8 -*-
|
| +"""
|
| +backports.makefile
|
| +~~~~~~~~~~~~~~~~~~
|
| +
|
| +Backports the Python 3 ``socket.makefile`` method for use with anything that
|
| +wants to create a "fake" socket object.
|
| +"""
|
| +import io
|
| +
|
| +from socket import SocketIO
|
| +
|
| +
|
| +def backport_makefile(self, mode="r", buffering=None, encoding=None,
|
| + errors=None, newline=None):
|
| + """
|
| + Backport of ``socket.makefile`` from Python 3.5.
|
| + """
|
| + if not set(mode) <= set(["r", "w", "b"]):
|
| + raise ValueError(
|
| + "invalid mode %r (only r, w, b allowed)" % (mode,)
|
| + )
|
| + writing = "w" in mode
|
| + reading = "r" in mode or not writing
|
| + assert reading or writing
|
| + binary = "b" in mode
|
| + rawmode = ""
|
| + if reading:
|
| + rawmode += "r"
|
| + if writing:
|
| + rawmode += "w"
|
| + raw = SocketIO(self, rawmode)
|
| + self._makefile_refs += 1
|
| + if buffering is None:
|
| + buffering = -1
|
| + if buffering < 0:
|
| + buffering = io.DEFAULT_BUFFER_SIZE
|
| + if buffering == 0:
|
| + if not binary:
|
| + raise ValueError("unbuffered streams must be binary")
|
| + return raw
|
| + if reading and writing:
|
| + buffer = io.BufferedRWPair(raw, raw, buffering)
|
| + elif reading:
|
| + buffer = io.BufferedReader(raw, buffering)
|
| + else:
|
| + assert writing
|
| + buffer = io.BufferedWriter(raw, buffering)
|
| + if binary:
|
| + return buffer
|
| + text = io.TextIOWrapper(buffer, encoding, errors, newline)
|
| + text.mode = mode
|
| + return text
|
|
|