Skip to content

Conversation

@bdraco
Copy link
Member

@bdraco bdraco commented Sep 29, 2024

What do these changes do?

In #7815 the writer was wrapped with a setter to make sure it was always reset on completion and maintain compat for subclasses. This added a tiny bit of overhead since we access self._writer in a lot of places. We can access self.__writer instead since its all inside the class which has less overhead.

We still have a few spikes that would be nice to sort out, but they are getting to be more consistent
Screenshot 2024-09-29 at 8 43 17 AM

Are there changes in behavior for the user?

no

Is it a substantial burden for the maintainers to support this?

no

In #7815 the writer was wrapped with a setter to make
sure it was always reset on completion and maintain
compat for subclasses. This added a tiny bit of overhead
since we access self._writer in a lot of places. We can
access self.__writer instead since its all inside the class
which has less overhead.
@bdraco bdraco added bot:chronographer:skip This PR does not need to include a change note backport-3.10 labels Sep 29, 2024
@codecov
Copy link

codecov bot commented Sep 29, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.56%. Comparing base (2ac962c) to head (11fd3c0).
Report is 732 commits behind head on master.

✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #9340      +/-   ##
==========================================
- Coverage   98.56%   98.56%   -0.01%     
==========================================
  Files         107      107              
  Lines       34942    34942              
  Branches     4145     4145              
==========================================
- Hits        34441    34439       -2     
- Misses        334      335       +1     
- Partials      167      168       +1     
Flag Coverage Δ
CI-GHA 98.44% <100.00%> (-0.01%) ⬇️
OS-Linux 98.10% <100.00%> (-0.01%) ⬇️
OS-Windows 96.51% <100.00%> (-0.01%) ⬇️
OS-macOS 97.79% <100.00%> (-0.01%) ⬇️
Py-3.10.11 97.67% <100.00%> (-0.01%) ⬇️
Py-3.10.15 97.61% <100.00%> (-0.01%) ⬇️
Py-3.11.10 97.67% <100.00%> (-0.01%) ⬇️
Py-3.11.9 97.73% <100.00%> (-0.01%) ⬇️
Py-3.12.6 98.16% <100.00%> (-0.01%) ⬇️
Py-3.13.0-rc.2 98.14% <100.00%> (-0.01%) ⬇️
Py-3.9.13 97.57% <100.00%> (-0.01%) ⬇️
Py-3.9.20 97.51% <100.00%> (-0.01%) ⬇️
Py-pypy7.3.16 97.13% <100.00%> (-0.01%) ⬇️
VM-macos 97.79% <100.00%> (-0.01%) ⬇️
VM-ubuntu 98.10% <100.00%> (-0.01%) ⬇️
VM-windows 96.51% <100.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@bdraco bdraco marked this pull request as ready for review September 29, 2024 14:06
@bdraco bdraco requested a review from asvetlov as a code owner September 29, 2024 14:06
@bdraco bdraco merged commit 8a97e03 into master Sep 29, 2024
@bdraco bdraco deleted the writer_dunder branch September 29, 2024 14:06
@patchback
Copy link
Contributor

patchback bot commented Sep 29, 2024

Backport to 3.10: 💔 cherry-picking failed — conflicts found

❌ Failed to cleanly apply 8a97e03 on top of patchback/backports/3.10/8a97e03b447d58b8ca0f675dffebb1c05727b286/pr-9340

Backporting merged PR #9340 into master

  1. Ensure you have a local repo clone of your fork. Unless you cloned it
    from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these
    instructions you'll refer to it by the name upstream. If you don't
    have it, here's how you can add it:
    $ git remote add upstream https://github.com/aio-libs/aiohttp.git
  3. Ensure you have the latest copy of upstream and prepare a branch
    that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/3.10/8a97e03b447d58b8ca0f675dffebb1c05727b286/pr-9340 upstream/3.10
  4. Now, cherry-pick PR Use dunder writer internally in ClientResponse #9340 contents into that branch:
    $ git cherry-pick -x 8a97e03b447d58b8ca0f675dffebb1c05727b286
    If it'll yell at you with something like fatal: Commit 8a97e03b447d58b8ca0f675dffebb1c05727b286 is a merge but no -m option was given., add -m 1 as follows instead:
    $ git cherry-pick -m1 -x 8a97e03b447d58b8ca0f675dffebb1c05727b286
  5. At this point, you'll probably encounter some merge conflicts. You must
    resolve them in to preserve the patch from PR Use dunder writer internally in ClientResponse #9340 as close to the
    original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/3.10/8a97e03b447d58b8ca0f675dffebb1c05727b286/pr-9340
  7. Create a PR, ensure that the CI is green. If it's not — update it so that
    the tests and any other checks pass. This is it!
    Now relax and wait for the maintainers to process your pull request
    when they have some cycles to do reviews. Don't worry — they'll tell you if
    any improvements are necessary when the time comes!

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

@patchback
Copy link
Contributor

patchback bot commented Sep 29, 2024

Backport to 3.11: 💔 cherry-picking failed — conflicts found

❌ Failed to cleanly apply 8a97e03 on top of patchback/backports/3.11/8a97e03b447d58b8ca0f675dffebb1c05727b286/pr-9340

Backporting merged PR #9340 into master

  1. Ensure you have a local repo clone of your fork. Unless you cloned it
    from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these
    instructions you'll refer to it by the name upstream. If you don't
    have it, here's how you can add it:
    $ git remote add upstream https://github.com/aio-libs/aiohttp.git
  3. Ensure you have the latest copy of upstream and prepare a branch
    that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/3.11/8a97e03b447d58b8ca0f675dffebb1c05727b286/pr-9340 upstream/3.11
  4. Now, cherry-pick PR Use dunder writer internally in ClientResponse #9340 contents into that branch:
    $ git cherry-pick -x 8a97e03b447d58b8ca0f675dffebb1c05727b286
    If it'll yell at you with something like fatal: Commit 8a97e03b447d58b8ca0f675dffebb1c05727b286 is a merge but no -m option was given., add -m 1 as follows instead:
    $ git cherry-pick -m1 -x 8a97e03b447d58b8ca0f675dffebb1c05727b286
  5. At this point, you'll probably encounter some merge conflicts. You must
    resolve them in to preserve the patch from PR Use dunder writer internally in ClientResponse #9340 as close to the
    original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/3.11/8a97e03b447d58b8ca0f675dffebb1c05727b286/pr-9340
  7. Create a PR, ensure that the CI is green. If it's not — update it so that
    the tests and any other checks pass. This is it!
    Now relax and wait for the maintainers to process your pull request
    when they have some cycles to do reviews. Don't worry — they'll tell you if
    any improvements are necessary when the time comes!

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

bdraco added a commit that referenced this pull request Sep 29, 2024
bdraco added a commit that referenced this pull request Sep 29, 2024
bdraco added a commit that referenced this pull request Sep 29, 2024
bdraco added a commit that referenced this pull request Sep 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot:chronographer:skip This PR does not need to include a change note

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants