Skip to content
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

gh-69152: add method get_proxy_response_headers to HTTPConnection class #104248

Merged
merged 20 commits into from
May 16, 2023

Conversation

nametkin
Copy link
Contributor

@nametkin nametkin commented May 6, 2023

@nametkin nametkin force-pushed the new branch 2 times, most recently from d493391 to 383ad4d Compare May 8, 2023 11:54
@nametkin
Copy link
Contributor Author

nametkin commented May 8, 2023

@gpshead, please look at this PR. Did I understand your idea correctly?

Copy link
Member

@gpshead gpshead left a comment

Choose a reason for hiding this comment

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

yep, this is what I had in mind. Thanks for the followup PR.

Lib/http/client.py Show resolved Hide resolved
@bedevere-bot
Copy link

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phrase I have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

@nametkin
Copy link
Contributor Author

@gpshead, thank you for review.
I have made the requested changes; please review again

@bedevere-bot
Copy link

Thanks for making the requested changes!

@gpshead: please review the changes made to this pull request.

@bedevere-bot bedevere-bot requested a review from gpshead May 10, 2023 09:42
@arhadthedev
Copy link
Member

The PR will be merged after the feature freezing 3.12b1 is published next week. Currently core devs implement remaining PEPs and fix bugs introduced by them.

@gpshead gpshead enabled auto-merge (squash) May 16, 2023 05:57
@gpshead gpshead merged commit 85ec192 into python:main May 16, 2023
@nametkin nametkin deleted the new branch May 16, 2023 07:19
carljm added a commit to carljm/cpython that referenced this pull request May 16, 2023
* main:
  pythonGH-104510: Fix refleaks in `_io` base types (python#104516)
  pythongh-104539: Fix indentation error in logging.config.rst (python#104545)
  pythongh-104050: Don't star-import 'types' in Argument Clinic (python#104543)
  pythongh-104050: Add basic typing to CConverter in clinic.py (python#104538)
  pythongh-64595: Fix write file logic in Argument Clinic (python#104507)
  pythongh-104523: Inline minimal PGO rules (python#104524)
  pythongh-103861: Fix Zip64 extensions not being properly applied in some cases (python#103863)
  pythongh-69152: add method get_proxy_response_headers to HTTPConnection class (python#104248)
  pythongh-103763: Implement PEP 695 (python#103764)
  pythongh-104461: Run tkinter test_configure_screen on X11 only (pythonGH-104462)
  pythongh-104469: Convert _testcapi/watchers.c to use Argument Clinic (python#104503)
  pythongh-104482: Fix error handling bugs in ast.c (python#104483)
  pythongh-104341: Adjust tstate_must_exit() to Respect Interpreter Finalization (pythongh-104437)
  pythonGH-102613: Fix recursion error from `pathlib.Path.glob()` (pythonGH-104373)
@sobolevn
Copy link
Member

sobolevn commented Jun 10, 2023

Sorry for being late for the review, but I would like to note that get_proxy_response_headers now is not consistent in its return type. If there are headers, it returns HTTPMessage class (which has this mro: (<class 'http.client.HTTPMessage'>, <class 'email.message.Message'>, <class 'object'>)), but if there are no headers it returns {}. Why?

I think that the source of this confusion is that email.message.Message behaves like a Mapping, but I still think that we should change the default value to None before it is too late.

This way we can say that this method returns Optional[HTTPMessage] and not HTTPMessage | dict[str, str] (or Mapping[str, str], which will erase a lot of useful methods).

I will open a new PR for this.

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.

5 participants