bpo-34056: Always return bytes from _HackedGetData.get_data(). by benjaminp · Pull Request #8130 · python/cpython

@benjaminp

Ensure the imp.load_source shim always returns bytes by reopening the file in
binary mode if needed. Hash-based pycs have to receive the source code in bytes.

It's tempting to change imp.get_suffixes() to always return 'rb' as a mode, but
that breaks some stdlib tests and likely 3rdparty code, too.

Closes bpo-34056.

@benjaminp benjaminp changed the title Always return bytes from _HackedGetData.get_data(). bpo-34056: Always return bytes from _HackedGetData.get_data().

Jul 6, 2018

@benjaminp

@benjaminp

brettcannon

@benjaminp benjaminp deleted the benjamin-force-bytes-get-data branch

July 7, 2018 03:41

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request

Jul 7, 2018
…pythonGH-8130)

* Always return bytes from _HackedGetData.get_data().

Ensure the imp.load_source shim always returns bytes by reopening the file in
binary mode if needed. Hash-based pycs have to receive the source code in bytes.

It's tempting to change imp.get_suffixes() to always return 'rb' as a mode, but
that breaks some stdlib tests and likely 3rdparty code, too.
(cherry picked from commit b0274f2)

Co-authored-by: Benjamin Peterson <benjamin@python.org>

miss-islington added a commit that referenced this pull request

Jul 7, 2018
…GH-8130)

* Always return bytes from _HackedGetData.get_data().

Ensure the imp.load_source shim always returns bytes by reopening the file in
binary mode if needed. Hash-based pycs have to receive the source code in bytes.

It's tempting to change imp.get_suffixes() to always return 'rb' as a mode, but
that breaks some stdlib tests and likely 3rdparty code, too.
(cherry picked from commit b0274f2)

Co-authored-by: Benjamin Peterson <benjamin@python.org>

clrpackages pushed a commit to clearlinux-pkgs/python3 that referenced this pull request

Jul 9, 2018
For background, see
python/cpython#8130

Signed-off-by: Patrick McCarty <patrick.mccarty@intel.com>