Remove chardet/charset-normalizer. Add fallback_charset_resolver ClientSession parameter.#7561
Conversation
|
Note: When we decide on which approach to go with, I'll close the other two, and polish the remaining pull request. I haven't done docs or release notes quite as well as I would like. |
|
I think the best approach would be to implement the new callable in master and backport to 3.9. |
df4fe75 to
e1c7efe
Compare
|
I've updated this pull request with your suggestions, with a few tweaks
If this general approach looks good, I'll start updating the docs. |
I feel like default makes it sound more like it should be a constant than a function, though I realise fallback isn't a lot better. Maybe something else like
I think this adds unnecessary complexity and performance overhead. If we just accept a callable only, it is trivial for someone to do
The one thing that a charset guesser will need is the body (or part of it) and the text() method will already have read the body, so I think we should just pass it through and same any trouble. |
|
Charset guesser might also need the tld, as we already discussed. Removing So I think |
|
We could literally just make the function called |
It's available in the Response, which I why I included it in the original examples.
We don't need |
Yeah, I guess that's fine, just might be a little confusing given that we default to a function which doesn't do any guessing. |
|
Okay, I changed the variable/callback to 'fallback_encoding', I change the type signature to just be Optional[Callable], and I updated code in appropriate places. As far as code snippets are concerned for instructing a user on how to operate the character set detection once the feature is removed, here are two options # chardetng_py: fast charset detection written in rust
from chardetng_py import detect
def fallback_encoding(response, body):
tld = response.url.host.split(".")[-1]
return detect(body, tld=tld)
# cChardet, chardet, charset_normalizer
from charset_normalizer import chardet
def fallback_encoding(response, body):
return chardet(body)["encoding"] or "utf-8"
async with ClientSession(fallback_encoding=fallback_encoding) as client:
.... |
|
I think things are getting mixed up a little. Can we start with a PR that removes chardet and supports the new parameter? This will go into master. Once that's in we can look at backports and including chardetng in the 3.8 backport. |
|
No problem. |
|
@Dreamsorcerer So this removes the character set detection now and introduces the Do you want me to update the |
Yep, we'll want that included too with examples of correctly using it for chardetng and charset-normalizer. |
4b6a570 to
9e303d1
Compare
31a778b to
d8888ea
Compare
|
@Dreamsorcerer I did my best. I'm not great at writing documentation. I tried to make some of the finer points clear, and I documented that |
Completely remove chardet and character set detection when content encoding is missing. remove charset-normalizer Document new parameter in ClientSession. Remove tests which specifically test encoding detection and replace with test that tests fallback function. Document get_encoding behavior with updated logic In documentation for text(), direct reader to refer to 'get_encoding' documentation if encoding is 'None'
… that they're in the glossary because they were previously used.
Backport to 3.9: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 6755796 on top of patchback/backports/3.9/675579699422680607108a7dd68c85ec5284220c/pr-7561 Backporting merged PR #7561 into master
🤖 @patchback |
Backport to 3.8: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 6755796 on top of patchback/backports/3.8/675579699422680607108a7dd68c85ec5284220c/pr-7561 Backporting merged PR #7561 into master
🤖 @patchback |
|
@john-parton If you could handle the backports, that'd be great. We'll need to:
|
| Character Set Detection | ||
| ----------------------- | ||
|
|
||
| If you encounter a :exc:`UnicodeDecodeError` when using :meth:`ClientResponse.text()` |
There was a problem hiding this comment.
Does this actually work? The correct syntax AFAIK doesn't include ().
There was a problem hiding this comment.
There was a problem hiding this comment.
Ah, sorry, I actually copied from the section above, which makes the same mistake with .close(). I wonder why Sphinx doesn't produce a warning...
There was a problem hiding this comment.
Dunno. Maybe because of this ignore https://github.com/aio-libs/aiohttp/blob/6755796/docs/conf.py#L384 or some Sphinx but, or a corner case. Somebody needs to go through all those ignores and fix them.
There was a problem hiding this comment.
@Dreamsorcerer so it looks like we don't run the normal docs build @ GHA and spellcheck that we do run doesn't emit those warnings: https://github.com/aio-libs/aiohttp/actions/runs/6018473896/job/16326723444#step:13:18.
OTOH, RTD does have those warnings in the log but isn't set up to turn them into errors: https://readthedocs.org/projects/aiohttp/builds/21761448/.
I think the CI was set up to fail on warnings at some point. Maybe that got removed, or I'm just confusing the repos…
There was a problem hiding this comment.
Well, other warnings seem to fail CI in the docs spelling step (I'm not aware of another part that produces warnings):
https://github.com/aio-libs/aiohttp/actions/runs/6017616744/job/16324167311#step:13:86
I don't have the time to dedicate this week. |
…ntSession parameter. (#7561) Co-authored-by: Sam Bull <[email protected]> (cherry picked from commit 6755796)
|
3.9 backport done: #7586 |
|
I'll take a crack at it later today. |
Add fallback_charset_resolver ClientSession parameter. (#7561) Co-authored-by: Sam Bull <[email protected]> (cherry picked from commit 6755796) Co-authored-by: John Parton <[email protected]>
…ntSession parameter. (aio-libs#7561) Co-authored-by: Sam Bull <[email protected]> (cherry picked from commit 6755796)
…ntSession parameter. (aio-libs#7561) Co-authored-by: Sam Bull <[email protected]> (cherry picked from commit 6755796)
|
@Dreamsorcerer PR opened here: #7589 |
Add fallback_charset_resolver ClientSession parameter. (#7561) Co-authored-by: Sam Bull <[email protected]> (cherry picked from commit 6755796) --------- Co-authored-by: Sam Bull <[email protected]>
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [aiohttp](https://togithub.com/aio-libs/aiohttp) | `==3.8.5` -> `==3.8.6` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>aio-libs/aiohttp (aiohttp)</summary> ### [`v3.8.6`](https://togithub.com/aio-libs/aiohttp/blob/HEAD/CHANGES.rst#386-2023-10-07) [Compare Source](https://togithub.com/aio-libs/aiohttp/compare/v3.8.5...v3.8.6) \================== ## Security bugfixes - Upgraded the vendored copy of llhttp\_ to v9.1.3 -- by :user:`Dreamsorcerer` Thanks to :user:`kenballus` for reporting this, see GHSA-pjjw-qhg8-p2p9. .. \_llhttp: https://llhttp.org `#​7647 <https://github.com/aio-libs/aiohttp/issues/7647>`\_ - Updated Python parser to comply with RFCs 9110/9112 -- by :user:`Dreamorcerer` Thanks to :user:`kenballus` for reporting this, see GHSA-gfw2-4jvh-wgfg. `#​7663 <https://github.com/aio-libs/aiohttp/issues/7663>`\_ ## Deprecation - Added `fallback_charset_resolver` parameter in `ClientSession` to allow a user-supplied character set detection function. Character set detection will no longer be included in 3.9 as a default. If this feature is needed, please use `fallback_charset_resolver <https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection>`\_. `#​7561 <https://github.com/aio-libs/aiohttp/issues/7561>`\_ ## Features - Enabled lenient response parsing for more flexible parsing in the client (this should resolve some regressions when dealing with badly formatted HTTP responses). -- by :user:`Dreamsorcerer` `#​7490 <https://github.com/aio-libs/aiohttp/issues/7490>`\_ ## Bugfixes - Fixed `PermissionError` when `.netrc` is unreadable due to permissions. `#​7237 <https://github.com/aio-libs/aiohttp/issues/7237>`\_ - Fixed output of parsing errors pointing to a `\n`. -- by :user:`Dreamsorcerer` `#​7468 <https://github.com/aio-libs/aiohttp/issues/7468>`\_ - Fixed `GunicornWebWorker` max_requests_jitter not working. `#​7518 <https://github.com/aio-libs/aiohttp/issues/7518>`\_ - Fixed sorting in `filter_cookies` to use cookie with longest path. -- by :user:`marq24`. `#​7577 <https://github.com/aio-libs/aiohttp/issues/7577>`\_ - Fixed display of `BadStatusLine` messages from llhttp\_. -- by :user:`Dreamsorcerer` `#​7651 <https://github.com/aio-libs/aiohttp/issues/7651>`\_ *** </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/allenporter/pyrainbird). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.8.5 to 3.8.6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/releases">aiohttp's">https://github.com/aio-libs/aiohttp/releases">aiohttp's releases</a>.</em></p> <blockquote> <h2>3.8.6</h2> <h2>Security bugfixes</h2> <ul> <li> <p>Upgraded the vendored copy of llhttp_ to v9.1.3 -- by :user:<code>Dreamsorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p> <p>.. _llhttp: <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://llhttp.org">https://llhttp.org</a></p" rel="nofollow">https://llhttp.org">https://llhttp.org</a></p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>)</p> </li> <li> <p>Updated Python parser to comply with RFCs 9110/9112 -- by :user:<code>Dreamorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a>)</p> </li> </ul> <h2>Deprecation</h2> <ul> <li> <p>Added <code>fallback_charset_resolver</code> parameter in <code>ClientSession</code> to allow a user-supplied character set detection function.</p> <p>Character set detection will no longer be included in 3.9 as a default. If this feature is needed, please use <code>fallback_charset_resolver <https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection></code>_.</p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7561">#7561</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7561">#7561</a>)</p> </li> </ul> <h2>Features</h2> <ul> <li> <p>Enabled lenient response parsing for more flexible parsing in the client (this should resolve some regressions when dealing with badly formatted HTTP responses). -- by :user:<code>Dreamsorcerer</code></p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a>)</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li> <p>Fixed <code>PermissionError</code> when <code>.netrc</code> is unreadable due to permissions.</p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7237">#7237</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7237">#7237</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst">aiohttp's">https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst">aiohttp's changelog</a>.</em></p> <blockquote> <h1>3.8.6 (2023-10-07)</h1> <h2>Security bugfixes</h2> <ul> <li> <p>Upgraded the vendored copy of llhttp_ to v9.1.3 -- by :user:<code>Dreamsorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p> <p>.. _llhttp: <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://llhttp.org">https://llhttp.org</a></p" rel="nofollow">https://llhttp.org">https://llhttp.org</a></p> <p><code>[#7647](aio-libs/aiohttp#7647) <https://github.com/aio-libs/aiohttp/issues/7647></code>_</p> </li> <li> <p>Updated Python parser to comply with RFCs 9110/9112 -- by :user:<code>Dreamorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p> <p><code>[#7663](aio-libs/aiohttp#7663) <https://github.com/aio-libs/aiohttp/issues/7663></code>_</p> </li> </ul> <h2>Deprecation</h2> <ul> <li> <p>Added <code>fallback_charset_resolver</code> parameter in <code>ClientSession</code> to allow a user-supplied character set detection function.</p> <p>Character set detection will no longer be included in 3.9 as a default. If this feature is needed, please use <code>fallback_charset_resolver <https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection></code>_.</p> <p><code>[#7561](aio-libs/aiohttp#7561) <https://github.com/aio-libs/aiohttp/issues/7561></code>_</p> </li> </ul> <h2>Features</h2> <ul> <li> <p>Enabled lenient response parsing for more flexible parsing in the client (this should resolve some regressions when dealing with badly formatted HTTP responses). -- by :user:<code>Dreamsorcerer</code></p> <p><code>[#7490](aio-libs/aiohttp#7490) <https://github.com/aio-libs/aiohttp/issues/7490></code>_</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li>Fixed <code>PermissionError</code> when <code>.netrc</code> is unreadable due to permissions.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/996de2629ef6b4c2934a7c04dfd49d0950d4c43b"><code>996de26</code></a">https://github.com/aio-libs/aiohttp/commit/996de2629ef6b4c2934a7c04dfd49d0950d4c43b"><code>996de26</code></a> Release v3.8.6 (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7668">#7668</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7668">#7668</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/8c128d4f042ca36ebdc55ecdd76099b7722331ba"><code>8c128d4</code></a">https://github.com/aio-libs/aiohttp/commit/8c128d4f042ca36ebdc55ecdd76099b7722331ba"><code>8c128d4</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7651">#7651</a>/45f98b7d">https://redirect.github.com/aio-libs/aiohttp/issues/7651">#7651</a>/45f98b7d backport][3.8] Fix BadStatusLine message (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7666">#7666</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7666">#7666</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/89b7df157886ff390cdcdc44ecf3c277045838b1"><code>89b7df1</code></a">https://github.com/aio-libs/aiohttp/commit/89b7df157886ff390cdcdc44ecf3c277045838b1"><code>89b7df1</code></a> Allow lax response parsing on Py parser (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a">https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a>) (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7664">#7664</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7664">#7664</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/d5c12ba890557a575c313bb3017910d7616fce3d"><code>d5c12ba</code></a">https://github.com/aio-libs/aiohttp/commit/d5c12ba890557a575c313bb3017910d7616fce3d"><code>d5c12ba</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7661">#7661</a>/85713a48">https://redirect.github.com/aio-libs/aiohttp/issues/7661">#7661</a>/85713a48 backport][3.8] Update Python parser for RFCs 9110/9112 (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7">#7</a>...</li">https://redirect.github.com/aio-libs/aiohttp/issues/7">#7</a>...</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/8a3977acac632d1f02aa7e047da51e27a717d724"><code>8a3977a</code></a">https://github.com/aio-libs/aiohttp/commit/8a3977acac632d1f02aa7e047da51e27a717d724"><code>8a3977a</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7272">#7272</a>/b2a7983a">https://redirect.github.com/aio-libs/aiohttp/issues/7272">#7272</a>/b2a7983a backport][3.8] Fix Read The Docs config (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7650">#7650</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7650">#7650</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/bcc416e533796d04fb8124ef1e7686b1f338767a"><code>bcc416e</code></a">https://github.com/aio-libs/aiohttp/commit/bcc416e533796d04fb8124ef1e7686b1f338767a"><code>bcc416e</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>/1303350e">https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>/1303350e backport][3.8] Upgrade to llhttp 9.1.3 (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7648">#7648</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7648">#7648</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/b30c0cd2c96e57cc273ffe29c0313487b364f15a"><code>b30c0cd</code></a">https://github.com/aio-libs/aiohttp/commit/b30c0cd2c96e57cc273ffe29c0313487b364f15a"><code>b30c0cd</code></a> Remove chardet/charset-normalizer. (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7589">#7589</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7589">#7589</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/5946c7436044bae14617ef06ee7c530ed72622da"><code>5946c74</code></a">https://github.com/aio-libs/aiohttp/commit/5946c7436044bae14617ef06ee7c530ed72622da"><code>5946c74</code></a> CookieJar - return 'best-match' and not LIFO (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7577">#7577</a">https://redirect.github.com/aio-libs/aiohttp/issues/7577">#7577</a>) (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7588">#7588</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7588">#7588</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/8c4ec62f5ba514479ef1c2e74741bc7fa33be3f4"><code>8c4ec62</code></a">https://github.com/aio-libs/aiohttp/commit/8c4ec62f5ba514479ef1c2e74741bc7fa33be3f4"><code>8c4ec62</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7518">#7518</a>/8bd42e74">https://redirect.github.com/aio-libs/aiohttp/issues/7518">#7518</a>/8bd42e74 backport][3.8] Fix GunicornWebWorker max_requests_jitter n...</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/a0d234df392bd5cd67d378d31c9531c5ac87c07f"><code>a0d234d</code></a">https://github.com/aio-libs/aiohttp/commit/a0d234df392bd5cd67d378d31c9531c5ac87c07f"><code>a0d234d</code></a> Use lenient headers for response parser (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a">https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a>) (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7492">#7492</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7492">#7492</a>)</li> <li>Additional commits viewable in <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/compare/v3.8.5...v3.8.6">compare">https://github.com/aio-libs/aiohttp/compare/v3.8.5...v3.8.6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.8.5 to 3.8.6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/releases">aiohttp's">https://github.com/aio-libs/aiohttp/releases">aiohttp's releases</a>.</em></p> <blockquote> <h2>3.8.6</h2> <h2>Security bugfixes</h2> <ul> <li> <p>Upgraded the vendored copy of llhttp_ to v9.1.3 -- by :user:<code>Dreamsorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p> <p>.. _llhttp: <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://llhttp.org">https://llhttp.org</a></p" rel="nofollow">https://llhttp.org">https://llhttp.org</a></p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>)</p> </li> <li> <p>Updated Python parser to comply with RFCs 9110/9112 -- by :user:<code>Dreamorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a>)</p> </li> </ul> <h2>Deprecation</h2> <ul> <li> <p>Added <code>fallback_charset_resolver</code> parameter in <code>ClientSession</code> to allow a user-supplied character set detection function.</p> <p>Character set detection will no longer be included in 3.9 as a default. If this feature is needed, please use <code>fallback_charset_resolver <https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection></code>_.</p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7561">#7561</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7561">#7561</a>)</p> </li> </ul> <h2>Features</h2> <ul> <li> <p>Enabled lenient response parsing for more flexible parsing in the client (this should resolve some regressions when dealing with badly formatted HTTP responses). -- by :user:<code>Dreamsorcerer</code></p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a>)</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li> <p>Fixed <code>PermissionError</code> when <code>.netrc</code> is unreadable due to permissions.</p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7237">#7237</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7237">#7237</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst">aiohttp's">https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst">aiohttp's changelog</a>.</em></p> <blockquote> <h1>3.8.6 (2023-10-07)</h1> <h2>Security bugfixes</h2> <ul> <li> <p>Upgraded the vendored copy of llhttp_ to v9.1.3 -- by :user:<code>Dreamsorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p> <p>.. _llhttp: <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://llhttp.org">https://llhttp.org</a></p" rel="nofollow">https://llhttp.org">https://llhttp.org</a></p> <p><code>[#7647](aio-libs/aiohttp#7647) <https://github.com/aio-libs/aiohttp/issues/7647></code>_</p> </li> <li> <p>Updated Python parser to comply with RFCs 9110/9112 -- by :user:<code>Dreamorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p> <p><code>[#7663](aio-libs/aiohttp#7663) <https://github.com/aio-libs/aiohttp/issues/7663></code>_</p> </li> </ul> <h2>Deprecation</h2> <ul> <li> <p>Added <code>fallback_charset_resolver</code> parameter in <code>ClientSession</code> to allow a user-supplied character set detection function.</p> <p>Character set detection will no longer be included in 3.9 as a default. If this feature is needed, please use <code>fallback_charset_resolver <https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection></code>_.</p> <p><code>[#7561](aio-libs/aiohttp#7561) <https://github.com/aio-libs/aiohttp/issues/7561></code>_</p> </li> </ul> <h2>Features</h2> <ul> <li> <p>Enabled lenient response parsing for more flexible parsing in the client (this should resolve some regressions when dealing with badly formatted HTTP responses). -- by :user:<code>Dreamsorcerer</code></p> <p><code>[#7490](aio-libs/aiohttp#7490) <https://github.com/aio-libs/aiohttp/issues/7490></code>_</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li>Fixed <code>PermissionError</code> when <code>.netrc</code> is unreadable due to permissions.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/996de2629ef6b4c2934a7c04dfd49d0950d4c43b"><code>996de26</code></a">https://github.com/aio-libs/aiohttp/commit/996de2629ef6b4c2934a7c04dfd49d0950d4c43b"><code>996de26</code></a> Release v3.8.6 (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7668">#7668</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7668">#7668</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/8c128d4f042ca36ebdc55ecdd76099b7722331ba"><code>8c128d4</code></a">https://github.com/aio-libs/aiohttp/commit/8c128d4f042ca36ebdc55ecdd76099b7722331ba"><code>8c128d4</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7651">#7651</a>/45f98b7d">https://redirect.github.com/aio-libs/aiohttp/issues/7651">#7651</a>/45f98b7d backport][3.8] Fix BadStatusLine message (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7666">#7666</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7666">#7666</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/89b7df157886ff390cdcdc44ecf3c277045838b1"><code>89b7df1</code></a">https://github.com/aio-libs/aiohttp/commit/89b7df157886ff390cdcdc44ecf3c277045838b1"><code>89b7df1</code></a> Allow lax response parsing on Py parser (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a">https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a>) (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7664">#7664</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7664">#7664</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/d5c12ba890557a575c313bb3017910d7616fce3d"><code>d5c12ba</code></a">https://github.com/aio-libs/aiohttp/commit/d5c12ba890557a575c313bb3017910d7616fce3d"><code>d5c12ba</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7661">#7661</a>/85713a48">https://redirect.github.com/aio-libs/aiohttp/issues/7661">#7661</a>/85713a48 backport][3.8] Update Python parser for RFCs 9110/9112 (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7">#7</a>...</li">https://redirect.github.com/aio-libs/aiohttp/issues/7">#7</a>...</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/8a3977acac632d1f02aa7e047da51e27a717d724"><code>8a3977a</code></a">https://github.com/aio-libs/aiohttp/commit/8a3977acac632d1f02aa7e047da51e27a717d724"><code>8a3977a</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7272">#7272</a>/b2a7983a">https://redirect.github.com/aio-libs/aiohttp/issues/7272">#7272</a>/b2a7983a backport][3.8] Fix Read The Docs config (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7650">#7650</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7650">#7650</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/bcc416e533796d04fb8124ef1e7686b1f338767a"><code>bcc416e</code></a">https://github.com/aio-libs/aiohttp/commit/bcc416e533796d04fb8124ef1e7686b1f338767a"><code>bcc416e</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>/1303350e">https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>/1303350e backport][3.8] Upgrade to llhttp 9.1.3 (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7648">#7648</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7648">#7648</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/b30c0cd2c96e57cc273ffe29c0313487b364f15a"><code>b30c0cd</code></a">https://github.com/aio-libs/aiohttp/commit/b30c0cd2c96e57cc273ffe29c0313487b364f15a"><code>b30c0cd</code></a> Remove chardet/charset-normalizer. (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7589">#7589</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7589">#7589</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/5946c7436044bae14617ef06ee7c530ed72622da"><code>5946c74</code></a">https://github.com/aio-libs/aiohttp/commit/5946c7436044bae14617ef06ee7c530ed72622da"><code>5946c74</code></a> CookieJar - return 'best-match' and not LIFO (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7577">#7577</a">https://redirect.github.com/aio-libs/aiohttp/issues/7577">#7577</a>) (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7588">#7588</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7588">#7588</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/8c4ec62f5ba514479ef1c2e74741bc7fa33be3f4"><code>8c4ec62</code></a">https://github.com/aio-libs/aiohttp/commit/8c4ec62f5ba514479ef1c2e74741bc7fa33be3f4"><code>8c4ec62</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7518">#7518</a>/8bd42e74">https://redirect.github.com/aio-libs/aiohttp/issues/7518">#7518</a>/8bd42e74 backport][3.8] Fix GunicornWebWorker max_requests_jitter n...</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/a0d234df392bd5cd67d378d31c9531c5ac87c07f"><code>a0d234d</code></a">https://github.com/aio-libs/aiohttp/commit/a0d234df392bd5cd67d378d31c9531c5ac87c07f"><code>a0d234d</code></a> Use lenient headers for response parser (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a">https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a>) (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7492">#7492</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7492">#7492</a>)</li> <li>Additional commits viewable in <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/compare/v3.8.5...v3.8.6">compare">https://github.com/aio-libs/aiohttp/compare/v3.8.5...v3.8.6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.8.5 to 3.8.6. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/releases">aiohttp's">https://github.com/aio-libs/aiohttp/releases">aiohttp's releases</a>.</em></p> <blockquote> <h2>3.8.6</h2> <h2>Security bugfixes</h2> <ul> <li> <p>Upgraded the vendored copy of llhttp_ to v9.1.3 -- by :user:<code>Dreamsorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p> <p>.. _llhttp: <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://llhttp.org">https://llhttp.org</a></p" rel="nofollow">https://llhttp.org">https://llhttp.org</a></p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>)</p> </li> <li> <p>Updated Python parser to comply with RFCs 9110/9112 -- by :user:<code>Dreamorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a>)</p> </li> </ul> <h2>Deprecation</h2> <ul> <li> <p>Added <code>fallback_charset_resolver</code> parameter in <code>ClientSession</code> to allow a user-supplied character set detection function.</p> <p>Character set detection will no longer be included in 3.9 as a default. If this feature is needed, please use <code>fallback_charset_resolver <https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection></code>_.</p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7561">#7561</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7561">#7561</a>)</p> </li> </ul> <h2>Features</h2> <ul> <li> <p>Enabled lenient response parsing for more flexible parsing in the client (this should resolve some regressions when dealing with badly formatted HTTP responses). -- by :user:<code>Dreamsorcerer</code></p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a>)</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li> <p>Fixed <code>PermissionError</code> when <code>.netrc</code> is unreadable due to permissions.</p> <p>(<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7237">#7237</a>)</p">https://redirect.github.com/aio-libs/aiohttp/issues/7237">#7237</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst">aiohttp's">https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst">aiohttp's changelog</a>.</em></p> <blockquote> <h1>3.8.6 (2023-10-07)</h1> <h2>Security bugfixes</h2> <ul> <li> <p>Upgraded the vendored copy of llhttp_ to v9.1.3 -- by :user:<code>Dreamsorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-pjjw-qhg8-p2p9</a>.</p> <p>.. _llhttp: <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://llhttp.org">https://llhttp.org</a></p" rel="nofollow">https://llhttp.org">https://llhttp.org</a></p> <p><code>[#7647](aio-libs/aiohttp#7647) <https://github.com/aio-libs/aiohttp/issues/7647></code>_</p> </li> <li> <p>Updated Python parser to comply with RFCs 9110/9112 -- by :user:<code>Dreamorcerer</code></p> <p>Thanks to :user:<code>kenballus</code> for reporting this, see <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg">https://github.com/aio-libs/aiohttp/security/advisories/GHSA-gfw2-4jvh-wgfg</a>.</p> <p><code>[#7663](aio-libs/aiohttp#7663) <https://github.com/aio-libs/aiohttp/issues/7663></code>_</p> </li> </ul> <h2>Deprecation</h2> <ul> <li> <p>Added <code>fallback_charset_resolver</code> parameter in <code>ClientSession</code> to allow a user-supplied character set detection function.</p> <p>Character set detection will no longer be included in 3.9 as a default. If this feature is needed, please use <code>fallback_charset_resolver <https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection></code>_.</p> <p><code>[#7561](aio-libs/aiohttp#7561) <https://github.com/aio-libs/aiohttp/issues/7561></code>_</p> </li> </ul> <h2>Features</h2> <ul> <li> <p>Enabled lenient response parsing for more flexible parsing in the client (this should resolve some regressions when dealing with badly formatted HTTP responses). -- by :user:<code>Dreamsorcerer</code></p> <p><code>[#7490](aio-libs/aiohttp#7490) <https://github.com/aio-libs/aiohttp/issues/7490></code>_</p> </li> </ul> <h2>Bugfixes</h2> <ul> <li>Fixed <code>PermissionError</code> when <code>.netrc</code> is unreadable due to permissions.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/996de2629ef6b4c2934a7c04dfd49d0950d4c43b"><code>996de26</code></a">https://github.com/aio-libs/aiohttp/commit/996de2629ef6b4c2934a7c04dfd49d0950d4c43b"><code>996de26</code></a> Release v3.8.6 (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7668">#7668</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7668">#7668</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/8c128d4f042ca36ebdc55ecdd76099b7722331ba"><code>8c128d4</code></a">https://github.com/aio-libs/aiohttp/commit/8c128d4f042ca36ebdc55ecdd76099b7722331ba"><code>8c128d4</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7651">#7651</a>/45f98b7d">https://redirect.github.com/aio-libs/aiohttp/issues/7651">#7651</a>/45f98b7d backport][3.8] Fix BadStatusLine message (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7666">#7666</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7666">#7666</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/89b7df157886ff390cdcdc44ecf3c277045838b1"><code>89b7df1</code></a">https://github.com/aio-libs/aiohttp/commit/89b7df157886ff390cdcdc44ecf3c277045838b1"><code>89b7df1</code></a> Allow lax response parsing on Py parser (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a">https://redirect.github.com/aio-libs/aiohttp/issues/7663">#7663</a>) (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7664">#7664</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7664">#7664</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/d5c12ba890557a575c313bb3017910d7616fce3d"><code>d5c12ba</code></a">https://github.com/aio-libs/aiohttp/commit/d5c12ba890557a575c313bb3017910d7616fce3d"><code>d5c12ba</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7661">#7661</a>/85713a48">https://redirect.github.com/aio-libs/aiohttp/issues/7661">#7661</a>/85713a48 backport][3.8] Update Python parser for RFCs 9110/9112 (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7">#7</a>...</li">https://redirect.github.com/aio-libs/aiohttp/issues/7">#7</a>...</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/8a3977acac632d1f02aa7e047da51e27a717d724"><code>8a3977a</code></a">https://github.com/aio-libs/aiohttp/commit/8a3977acac632d1f02aa7e047da51e27a717d724"><code>8a3977a</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7272">#7272</a>/b2a7983a">https://redirect.github.com/aio-libs/aiohttp/issues/7272">#7272</a>/b2a7983a backport][3.8] Fix Read The Docs config (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7650">#7650</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7650">#7650</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/bcc416e533796d04fb8124ef1e7686b1f338767a"><code>bcc416e</code></a">https://github.com/aio-libs/aiohttp/commit/bcc416e533796d04fb8124ef1e7686b1f338767a"><code>bcc416e</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>/1303350e">https://redirect.github.com/aio-libs/aiohttp/issues/7647">#7647</a>/1303350e backport][3.8] Upgrade to llhttp 9.1.3 (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7648">#7648</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7648">#7648</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/b30c0cd2c96e57cc273ffe29c0313487b364f15a"><code>b30c0cd</code></a">https://github.com/aio-libs/aiohttp/commit/b30c0cd2c96e57cc273ffe29c0313487b364f15a"><code>b30c0cd</code></a> Remove chardet/charset-normalizer. (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7589">#7589</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7589">#7589</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/5946c7436044bae14617ef06ee7c530ed72622da"><code>5946c74</code></a">https://github.com/aio-libs/aiohttp/commit/5946c7436044bae14617ef06ee7c530ed72622da"><code>5946c74</code></a> CookieJar - return 'best-match' and not LIFO (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7577">#7577</a">https://redirect.github.com/aio-libs/aiohttp/issues/7577">#7577</a>) (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7588">#7588</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7588">#7588</a>)</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/8c4ec62f5ba514479ef1c2e74741bc7fa33be3f4"><code>8c4ec62</code></a">https://github.com/aio-libs/aiohttp/commit/8c4ec62f5ba514479ef1c2e74741bc7fa33be3f4"><code>8c4ec62</code></a> [PR <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7518">#7518</a>/8bd42e74">https://redirect.github.com/aio-libs/aiohttp/issues/7518">#7518</a>/8bd42e74 backport][3.8] Fix GunicornWebWorker max_requests_jitter n...</li> <li><a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/commit/a0d234df392bd5cd67d378d31c9531c5ac87c07f"><code>a0d234d</code></a">https://github.com/aio-libs/aiohttp/commit/a0d234df392bd5cd67d378d31c9531c5ac87c07f"><code>a0d234d</code></a> Use lenient headers for response parser (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a">https://redirect.github.com/aio-libs/aiohttp/issues/7490">#7490</a>) (<a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://redirect.github.com/aio-libs/aiohttp/issues/7492">#7492</a>)</li">https://redirect.github.com/aio-libs/aiohttp/issues/7492">#7492</a>)</li> <li>Additional commits viewable in <a href="proxy.php?url=https%3A%2F%2Fredirect.github.com%2F%3Ca+href%3D"https://github.com/aio-libs/aiohttp/compare/v3.8.5...v3.8.6">compare">https://github.com/aio-libs/aiohttp/compare/v3.8.5...v3.8.6">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details>
What do these changes do?
Continuing work from #7559
This replaces cchardet with chardetng and also paves a path towards deprecating character detection completely. It will issue a DeprecationWarning if the character detection method is invokedNeed updates.
Are there changes in behavior for the user?
Previously, encoding detection was done on every request without a content-type header. This was a bottleneck in some code I wrote. This changes it so that first utf-8 is tried, and then encoding detection happens aftewards.Need updates.
Related issue number
Should close #7126
Checklist
CONTRIBUTORS.txtCHANGESfolder<issue_id>.<type>for example (588.bugfix)issue_idchange it to the pr id after creating the pr.feature: Signifying a new feature..bugfix: Signifying a bug fix..doc: Signifying a documentation improvement..removal: Signifying a deprecation or removal of public API..misc: A ticket has been closed, but it is not of interest to users.