GeezerVison is showing github.com — Update dependency charset-normalizer to v3.5.2 by renovate[bot] · Pull Request #47 · protoconf/client-python
Conversation
renovate
Bot
commented
Sep 19, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
This PR contains the following updates:
Release Notes
jawah/charset_normalizer (charset-normalizer)
Compare Source
Changed
- Raised the Cython upper bound to
<3.4 for native builds. The bound remains <3.3 for
abi3 builds to preserve compatibility with the Python 3.7 Limited API.
Fixed
- Valid UTF-8 Chinese JSON incorrectly detected as PTCP154 due to excessive noise penalties
for uncommon CJK characters. (#796)
- Supported encodings without aliases failing name resolution or being ignored in charset
declarations. (#800)
Compare Source
Changed
- Raised upper bound of setuptools to v84 (#794)
- Cache performance access optimization for our CharInfo struct (prebuilt only).
Fixed
- No longer decoding large content when the noise detector output give a high entropy.
Only impacted large content input >1M bytes.
Compare Source
Added
- Explicit support for Python 3.15
Fixed
- Comparing a CharsetMatch to a non-alias encoding strings (#773)
- Return 0.0 CharsetMatch.multi_byte_usage for empty payloads instead of crashing (#774)
- A file with both a charset declaration and BOM/SIG did not verify first the BOM/SIG charset.
- iso2022* cases misdetected due to a flaw in our multibyte chunking logic.
Changed
- Replaced the optional mypyc build with Cython extensions while retaining the
pure Python fallback. The previous engine (mypyc) started to hit rough limit around
the optimization of our noise/coherence detector while Cython allows us to
steer the engine toward the right generated optimized sources.
This change SHOULD not impact bundler (e.g. Pyinstaller) as the module are
immediately discoverable (i.e. not hidden import like mypyc did).
Moreover, a long wished distribution is the abi3 wheels, this will allow us
to no longer rush each year when a new Python interpreter is released.
We still distribute the interpreter specific wheels for faster performance.
- Applied micro-optimization on several utils.
- CharsetMatches no longer sort on each match insertion.
Misc
- Removed an old performance optimization attempt in apy.py (success_fast_tracked+payload_result_cache).
Compare Source
Fixed
- Regression in our fallback path leading to a decode error. (#771)
We've yanked 3.4.8 as a result of that bug.
Compare Source
Fixed
- Wall import time due to cascade codec imports for our multibyte first sort of iana supported codecs (#742)
- Unnecessary json import at runtime (#753)
- Inverse capitalization not seen by noise detector (#731)
Changed
- No longer holding a global cache for our noise / coherence measurements. Relax RSS memory usage.
- Micro-optimizations in our noise / coherence measurements.
- No longer using regex search by default for our preemptive charset mark algorithm.
- Raised upperbound of setuptools to v83.
- Raised upperbound of mypy(c) to v2.1.
Removed
- Redundant UTF7 BOM marker (#730)
Compare Source
Changed
- Pre-built optimized version using mypy[c] v1.20.
- Relax
setuptools constraint to setuptools>=68,<82.1.
Fixed
- Correctly remove SIG remnant in utf-7 decoded string. (#718) (#716)
Compare Source
Changed
- Flattened the logic in
charset_normalizer.md for higher performance. Removed eligible(..) and feed(...)
in favor of feed_info(...).
- Raised upper bound for mypy[c] to 1.20, for our optimized version.
- Updated
UNICODE_RANGES_COMBINED using Unicode blocks v17.
Fixed
- Edge case where noise difference between two candidates can be almost insignificant. (#672)
- CLI
--normalize writing to wrong path when passing multiple files in. (#702)
Misc
- Freethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (#616)
Compare Source
Changed
- Update
setuptools constraint to setuptools>=68,<=82.
- Raised upper bound of mypyc for the optional pre-built extension to v1.19.1
Fixed
- Add explicit link to lib math in our optimized build. (#692)
- Logger level not restored correctly for empty byte sequences. (#701)
- TypeError when passing bytearray to from_bytes. (#703)
Misc
- Applied safe micro-optimizations in both our noise detector and language detector.
- Rewrote the
query_yes_no function (inside CLI) to avoid using ambiguous licensed code.
- Added
cd.py submodule into mypyc optional compilation to reduce further the performance impact.
Compare Source
Changed
- Bound
setuptools to a specific constraint setuptools>=68,<=81.
- Raised upper bound of mypyc for the optional pre-built extension to v1.18.2
Removed
setuptools-scm as a build dependency.
Misc
- Enforced hashes in
dev-requirements.txt and created ci-requirements.txt for security purposes.
- Additional pre-built wheels for riscv64, s390x, and armv7l architectures.
- Restore
multiple.intoto.jsonl in GitHub releases in addition to individual attestation file per wheel.
Compare Source
Changed
- mypy(c) is no longer a required dependency at build time if
CHARSET_NORMALIZER_USE_MYPYC isn't set to 1. (#595) (#583)
- automatically lower confidence on small bytes samples that are not Unicode in
detect output legacy function. (#391)
Added
- Custom build backend to overcome inability to mark mypy as an optional dependency in the build phase.
- Support for Python 3.14
Fixed
- sdist archive contained useless directories.
- automatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (#633)
Misc
- SBOM are automatically published to the relevant GitHub release to comply with regulatory changes.
Each published wheel comes with its SBOM. We choose CycloneDX as the format.
- Prebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.
Compare Source
Fixed
- Addressed the DeprecationWarning in our CLI regarding
argparse.FileType by backporting the target class into the package. (#591)
- Improved the overall reliability of the detector with CJK Ideographs. (#605) (#587)
Changed
- Optional mypyc compilation upgraded to version 1.15 for Python >= 3.8
Compare Source
Changed
- Project metadata are now stored using
pyproject.toml instead of setup.cfg using setuptools as the build backend.
- Enforce annotation delayed loading for a simpler and consistent types in the project.
- Optional mypyc compilation upgraded to version 1.14 for Python >= 3.8
Added
- pre-commit configuration.
- noxfile.
Removed
build-requirements.txt as per using pyproject.toml native build configuration.
bin/integration.py and bin/serve.py in favor of downstream integration test (see noxfile).
setup.cfg in favor of pyproject.toml metadata configuration.
- Unused
utils.range_scan function.
Fixed
- Converting content to Unicode bytes may insert
utf_8 instead of preferred utf-8. (#572)
- Deprecation warning "'count' is passed as positional argument" when converting to Unicode bytes on Python 3.13+
Compare Source
Added
- Argument
--no-preemptive in the CLI to prevent the detector to search for hints.
- Support for Python 3.13 (#512)
Fixed
- Relax the TypeError exception thrown when trying to compare a CharsetMatch with anything else than a CharsetMatch.
- Improved the general reliability of the detector based on user feedbacks. (#520) (#509) (#498) (#407) (#537)
- Declared charset in content (preemptive detection) not changed when converting to utf-8 bytes. (#381)
Configuration
📅 Schedule: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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.
- If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
renovate
Bot
changed the title
Update dependency charset-normalizer to v3.5.1
Update dependency charset-normalizer to v3.5.2
Sep 30, 2026
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.