Add support for switching the zlib implementation#10700
Add support for switching the zlib implementation#10700bdraco merged 1 commit intoaio-libs:masterfrom
Conversation
0eb2ad3 to
af8b053
Compare
CodSpeed Performance ReportMerging #10700 will not alter performanceComparing Summary
|
e77a5f6 to
a1caebd
Compare
49e6440 to
c4bdbfc
Compare
92374c7 to
906ec56
Compare
906ec56 to
fbcabee
Compare
fc0364f to
431f486
Compare
Codecov ReportAttention: Patch coverage is
✅ All tests successful. No failed tests found.
Additional details and impacted files@@ Coverage Diff @@
## master #10700 +/- ##
========================================
Coverage 98.71% 98.72%
========================================
Files 125 125
Lines 37445 37718 +273
Branches 2075 2082 +7
========================================
+ Hits 36963 37236 +273
+ Misses 335 334 -1
- Partials 147 148 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
d609ea6 to
ada8722
Compare
|
Looks good. I think its nearly ready to merge. Thanks for all your work on this @TimMenninger I'd like Sam to take another look as well before moving it forward. |
dfc6a14 to
761b4e8
Compare
761b4e8 to
6a8e1f3
Compare
622c87a to
e3c2ef4
Compare
bdraco
left a comment
There was a problem hiding this comment.
Looks great. One small nit above.
I'll do some functional testing later today and approve if all goes well
e3c2ef4 to
6f43600
Compare
Allow a user to call aiohttp.set_zlib_backend() with a zlib-implementing
module. E.g.
import aiohttp
import zlib_ng.zlib_ng
aiohttp.set_zlib_backend(zlib_ng.zlib_ng)
Fixes aio-libs#9798
6f43600 to
71f3450
Compare
will need to be rebased after #10700 is merged
|
Added some benchmarks in #10721 Interesting that |
bdraco
left a comment
There was a problem hiding this comment.
Did some functional testing with this. Everything worked as expected. Did a partial backport to 3.11 and ran it with Home Assistant as well
|
Thanks @TimMenninger This is a very nice addition. |
|
All good running overnight. The backport on this one is going to be a bit more work than usual because of the conflicts. |
Backport to 3.12: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply ceeca6a on top of patchback/backports/3.12/ceeca6a9b019b98d1dc3d5d1a622ba66768938d2/pr-10700 Backporting merged PR #10700 into master
🤖 @patchback |
Okay I'll take a look probably in the morning if not Monday morning. |
…o-libs#10700, aio-libs#9798) Committed with conflicts resolved in subsequent commit: Unmerged paths: (use "git add <file>..." to mark resolution) both modified: aiohttp/__init__.py both modified: aiohttp/web_response.py both modified: tests/test_client_functional.py both modified: tests/test_client_request.py both modified: tests/test_client_ws_functional.py both modified: tests/test_http_writer.py both modified: tests/test_multipart.py both modified: tests/test_web_functional.py both modified: tests/test_web_response.py both modified: tests/test_web_sendfile_functional.py both modified: tests/test_websocket_parser.py
|
What do these changes do?
These changes allow a user to arbitrarily set the zlib backend by calling
aiohttp.set_zlib_backend()on the zlib module of their choice. For example:Are there changes in behavior for the user?
The only changes for the user are opt-in.
Is it a substantial burden for the maintainers to support this?
The only burden that could arise is if for some reason
zlib_ng.zlib_ngorisal.isal_zlibchange their interface to differ fromzlib.Related issue number
Fixes #9798
Checklist
CONTRIBUTORS.txtCHANGES/foldername it
<issue_or_pr_num>.<type>.rst(e.g.588.bugfix.rst)if you don't have an issue number, change it to the pull request
number after creating the PR
.bugfix: A bug fix for something the maintainers deemed animproper undesired behavior that got corrected to match
pre-agreed expectations.
.feature: A new behavior, public APIs. That sort of stuff..deprecation: A declaration of future API removals and breakingchanges in behavior.
.breaking: When something public is removed in a breaking way.Could be deprecated in an earlier release.
.doc: Notable updates to the documentation structure or buildprocess.
.packaging: Notes for downstreams about unobvious side effectsand tooling. Changes in the test invocation considerations and
runtime assumptions.
.contrib: Stuff that affects the contributor experience. e.g.Running tests, building the docs, setting up the development
environment.
.misc: Changes that are hard to assign to any of the abovecategories.
Make sure to use full sentences with correct case and punctuation,
for example:
Use the past tense or the present tense a non-imperative mood,
referring to what's changed compared to the last released version
of this project.