Ground-up, MIT-licensed rewrite of chardet. Same package name, same public API — drop-in replacement for chardet 5.x/6.x. Just way faster and more accurate!
Highlights:
MIT license (previous versions were LGPL)
96.8% accuracy on 2,179 test files (+2.3pp vs chardet 6.0.0, +7.7pp vs charset-normalizer)
41x faster than chardet 6.0.0 with mypyc (28x pure Python), 7.5x faster than charset-normalizer
Language detection for every result (90.5% accuracy across 49 languages)
99 encodings across six eras (MODERN_WEB, LEGACY_ISO, LEGACY_MAC, LEGACY_REGIONAL, DOS, MAINFRAME)
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [chardet](https://github.com/chardet/chardet) ([changelog](https://chardet.readthedocs.io/en/latest/changelog.html)) | major | `==6.0.0.post1` → `==7.0.1` |
---
### Release Notes
<details>
<summary>chardet/chardet (chardet)</summary>
### [`v7.0.1`](https://github.com/chardet/chardet/releases/tag/7.0.1)
[Compare Source](https://github.com/chardet/chardet/compare/7.0.0...7.0.1)
#### Fixes
- Fixed false UTF-7 detection of SHA-1 git hashes ([#​324](https://github.com/chardet/chardet/pull/324), fixing [#​323](https://github.com/chardet/chardet/issues/323)) — requirements files with VCS pins (e.g., `+4bafdea3...`) were misdetected as UTF-7, breaking tools like tox
- Fixed `_SINGLE_LANG_MAP` missing aliases for single-language encoding lookup (e.g., `big5` → `big5hkscs`)
- Fixed PyPy `TypeError` in UTF-7 codec handling
#### Improvements
- Retrained bigram models — 24 previously failing test cases now pass
- Updated language equivalences for mutual intelligibility (Slovak/Czech, East Slavic + Bulgarian, Malay/Indonesian, Scandinavian languages)
#### New Contributors
- [@​rembish](https://github.com/rembish) made their first contribution — both reporting the UTF-7 false detection issue and submitting the fix! ([#​323](https://github.com/chardet/chardet/issues/323), [#​324](https://github.com/chardet/chardet/pull/324))
### [`v7.0.0`](https://github.com/chardet/chardet/releases/tag/7.0.0)
[Compare Source](https://github.com/chardet/chardet/compare/6.0.0.post1...7.0.0)
Ground-up, MIT-licensed rewrite of chardet. Same package name, same public API — drop-in replacement for chardet 5.x/6.x. Just way faster and more accurate!
**Highlights:**
- **MIT license** (previous versions were LGPL)
- **96.8% accuracy** on 2,179 test files (+2.3pp vs chardet 6.0.0, +7.7pp vs charset-normalizer)
- **41x faster** than chardet 6.0.0 with mypyc (**28x** pure Python), **7.5x faster** than charset-normalizer
- **Language detection** for every result (90.5% accuracy across 49 languages)
- **99 encodings** across six eras (MODERN\_WEB, LEGACY\_ISO, LEGACY\_MAC, LEGACY\_REGIONAL, DOS, MAINFRAME)
- **12-stage detection pipeline** — BOM, UTF-16/32 patterns, escape sequences, binary detection, markup charset, ASCII, UTF-8 validation, byte validity, CJK gating, structural probing, statistical scoring, post-processing
- **Bigram frequency models** trained on CulturaX multilingual corpus data for all supported language/encoding pairs
- **Optional mypyc compilation** — 1.49x additional speedup on CPython
- **Thread-safe** `detect()` and `detect_all()` with no measurable overhead; scales on free-threaded Python 3.13t+
- **Negligible import memory** (96 B)
- **Zero runtime dependencies**
**Breaking changes vs 6.0.0:**
- `detect()` and `detect_all()` now default to `encoding_era=EncodingEra.ALL` (6.0.0 defaulted to `MODERN_WEB`)
- Internal architecture is completely different (probers replaced by pipeline stages). Only the public API is preserved.
- `LanguageFilter` is accepted but ignored (deprecation warning emitted)
- `chunk_size` is accepted but ignored (deprecation warning emitted)
</details>
---
### Configuration
📅 **Schedule**: 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.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My41MS4xIiwidXBkYXRlZEluVmVyIjoiNDMuNTQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
==6.0.0.post1→==7.0.1Release Notes
chardet/chardet (chardet)
v7.0.1Compare Source
Fixes
+4bafdea3...) were misdetected as UTF-7, breaking tools like tox_SINGLE_LANG_MAPmissing aliases for single-language encoding lookup (e.g.,big5→big5hkscs)TypeErrorin UTF-7 codec handlingImprovements
New Contributors
v7.0.0Compare Source
Ground-up, MIT-licensed rewrite of chardet. Same package name, same public API — drop-in replacement for chardet 5.x/6.x. Just way faster and more accurate!
Highlights:
detect()anddetect_all()with no measurable overhead; scales on free-threaded Python 3.13t+Breaking changes vs 6.0.0:
detect()anddetect_all()now default toencoding_era=EncodingEra.ALL(6.0.0 defaulted toMODERN_WEB)LanguageFilteris accepted but ignored (deprecation warning emitted)chunk_sizeis accepted but ignored (deprecation warning emitted)Configuration
📅 Schedule: 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.
This PR has been generated by Renovate Bot.
d10b684776to3238f42cb1