Skip to content

gh-101936: Update the default value of fp from io.StringIO to io.BytesIO #102100

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Feb 21, 2023

Conversation

longvhdeveloper
Copy link
Contributor

@longvhdeveloper longvhdeveloper commented Feb 21, 2023

@ghost
Copy link

ghost commented Feb 21, 2023

All commit authors signed the Contributor License Agreement.
CLA signed

@corona10 corona10 self-assigned this Feb 21, 2023
@corona10 corona10 self-requested a review February 21, 2023 07:33
@corona10 corona10 added needs backport to 3.10 only security fixes needs backport to 3.11 only security fixes labels Feb 21, 2023
Copy link
Member

@corona10 corona10 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update the test to following codeline.

def test_gh_98778(self):
x = urllib.error.HTTPError("url", 405, "METHOD NOT ALLOWED", None, None)
self.assertEqual(getattr(x, "__notes__", ()), ())

@@ -0,0 +1 @@
HTTPError fp.read returns string instead of bytes
Copy link
Member

@corona10 corona10 Feb 21, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default value of ``fp`` becomes :class:`io.BytesIO` if :exc:`~urllib.error.HTTPError` is initialized without a designated `fp` parameter. Patch by Long Vo.

@corona10 corona10 changed the title gh-101936: HTTPError fp.read returns string instead of bytes gh-101936: Update the default value of fp from io.StringIO to io.BytesIO Feb 21, 2023
Copy link
Member

@corona10 corona10 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost come :)

Comment on lines 1 to 2
The default value of fp becomes :class:io.BytesIO if
:exc:~urllib.error.HTTPError is initialized without a designated fp
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The default value of fp becomes :class:io.BytesIO if
:exc:~urllib.error.HTTPError is initialized without a designated fp
The default value of fp becomes :class:`io.BytesIO` if
:exc:`~urllib.error.HTTPError` is initialized without a designated ``fp``

@@ -1827,6 +1827,7 @@ def test_HTTPError_interface(self):
def test_gh_98778(self):
x = urllib.error.HTTPError("url", 405, "METHOD NOT ALLOWED", None, None)
self.assertEqual(getattr(x, "__notes__", ()), ())
self.assertEqual(isinstance(x.fp.read(), bytes), True)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
self.assertEqual(isinstance(x.fp.read(), bytes), True)
self.assertIsInstance(x.fp.read(), bytes)

Copy link
Member

@corona10 corona10 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@corona10 corona10 merged commit 0d4c7fc into python:main Feb 21, 2023
@miss-islington
Copy link
Contributor

Thanks @longvhdeveloper for the PR, and @corona10 for merging it 🌮🎉.. I'm working now to backport this PR to: 3.10, 3.11.
🐍🍒⛏🤖 I'm not a witch! I'm not a witch!

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Feb 21, 2023
…o.BytesIO (pythongh-102100)

(cherry picked from commit 0d4c7fc)

Co-authored-by: Vo Hoang Long <[email protected]>
Co-authored-by: Long Vo <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Feb 21, 2023
…o.BytesIO (pythongh-102100)

(cherry picked from commit 0d4c7fc)

Co-authored-by: Vo Hoang Long <[email protected]>
Co-authored-by: Long Vo <[email protected]>
corona10 pushed a commit that referenced this pull request Feb 22, 2023
…io.BytesIO (gh-102100) (gh-102117)

gh-101936: Update the default value of fp from io.StringIO to io.BytesIO (gh-102100)
(cherry picked from commit 0d4c7fc)

Co-authored-by: Long Vo <[email protected]>
corona10 pushed a commit that referenced this pull request Feb 22, 2023
…io.BytesIO (gh-102100) (#102118)

gh-101936: Update the default value of fp from io.StringIO to io.BytesIO (gh-102100)
(cherry picked from commit 0d4c7fc)

Co-authored-by: Long Vo <[email protected]>
carljm added a commit to carljm/cpython that referenced this pull request Feb 23, 2023
* main: (76 commits)
  Fix syntax error in struct doc example (python#102160)
  pythongh-99108: Import MD5 and SHA1 from HACL* (python#102089)
  pythonGH-101777: `queue.rst`: use 2 spaces after a period to be consistent. (python#102143)
  Few coverage nitpicks for the cmath module (python#102067)
  pythonGH-100982: Restrict `FOR_ITER_RANGE` to a single instruction to allow instrumentation. (pythonGH-101985)
  pythongh-102135: Update turtle docs to rename wikipedia demo to rosette (python#102137)
  pythongh-99942: python.pc on android/cygwin should link to libpython per configure.ac (pythonGH-100356)
  pythongh-95672 fix typo SkitTest to SkipTest (pythongh-102119)
  pythongh-101936: Update the default value of fp from io.StringIO to io.BytesIO (pythongh-102100)
  pythongh-102008: simplify test_except_star by using sys.exception() instead of sys.exc_info() (python#102009)
  pythongh-101903: Remove obsolete undefs for previously removed macros Py_EnterRecursiveCall and Py_LeaveRecursiveCall (python#101923)
  pythongh-100556: Improve clarity of `or` docs (python#100589)
  pythongh-101777: Make `PriorityQueue` docs slightly clearer (python#102026)
  pythongh-101965: Fix usage of Py_EnterRecursiveCall return value in _bisectmodule.c (pythonGH-101966)
  pythongh-101578: Amend exception docs (python#102057)
  pythongh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode (pythongh-102068)
  pythongh-102056: Fix a few bugs in error handling of exception printing code (python#102078)
  pythongh-102011: use sys.exception() instead of sys.exc_info() in docs where possible (python#102012)
  pythongh-101566: Sync with zipp 3.14. (pythonGH-102018)
  pythonGH-99818: improve the documentation for zipfile.Path and Traversable (pythonGH-101589)
  ...
python-sidebar pushed a commit to python-sidebar/Python-Documentation-Fork-With-TOC that referenced this pull request Sep 1, 2024
python-sidebar pushed a commit to python-sidebar/Python-Documentation-Fork-With-TOC that referenced this pull request Sep 1, 2024
JelleZijlstra pushed a commit to JelleZijlstra/cpython that referenced this pull request Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants