From 0c35920406cd89d77142fe2d8b9bce58823a0b99 Mon Sep 17 00:00:00 2001 From: Tzu-ping Chung Date: Fri, 4 May 2018 02:34:48 +0800 Subject: [PATCH] Always use binary mode in NamedTempoeraryFile Text mode would enable auto line ending translation, but we want to handle them ourselves (in io.open) instead. This would not affect the ability to write text files (io.open does the right thing as long as we give it the correct mode). --- pipenv/_compat.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pipenv/_compat.py b/pipenv/_compat.py index d6ae5644..6769d8d4 100644 --- a/pipenv/_compat.py +++ b/pipenv/_compat.py @@ -9,7 +9,7 @@ import io import os import six import warnings -from tempfile import _bin_openflags, gettempdir, _mkstemp_inner, mkdtemp, _text_openflags +from tempfile import _bin_openflags, gettempdir, _mkstemp_inner, mkdtemp from .utils import (logging, rmtree) try: @@ -258,13 +258,12 @@ def NamedTemporaryFile( if os.name == "nt" and delete: flags |= os.O_TEMPORARY if six.PY2: - flags = _text_openflags if 'b' not in mode else flags (fd, name) = _mkstemp_inner(dir, prefix, suffix, flags) else: (fd, name) = _mkstemp_inner(dir, prefix, suffix, flags, output_type) try: file = io.open( - fd, mode, buffering=buffering, newline=newline, encoding=encoding + fd, mode, buffering=buffering, newline=newline, encoding=encoding, ) return _TemporaryFileWrapper(file, name, delete)