Skip to content

Conversation

@benjaminp
Copy link
Contributor

@benjaminp benjaminp commented Jul 6, 2018

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.

https://bugs.python.org/issue34056

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 requested a review from brettcannon July 6, 2018 05:46
@benjaminp benjaminp changed the title Always return bytes from _HackedGetData.get_data(). bpo-34056: Always return bytes from _HackedGetData.get_data(). Jul 6, 2018
@serhiy-storchaka serhiy-storchaka requested a review from a team July 6, 2018 06:51
@benjaminp benjaminp merged commit b0274f2 into master Jul 7, 2018
@miss-islington
Copy link
Contributor

Thanks @benjaminp for the PR 🌮🎉.. I'm working now to backport this PR to: 3.7.
🐍🍒⛏🤖

@benjaminp benjaminp deleted the benjamin-force-bytes-get-data branch July 7, 2018 03:41
@bedevere-bot
Copy link

GH-8146 is a backport of this pull request to the 3.7 branch.

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

6 participants