Releases: un33k/python-slugify
Release list
9.1.2
Performance improvement with unchanged output under both algorithms. Legacy output is unchanged and remains the permanent default.
- Skip the transliteration backend for ASCII-only input under both algorithms, avoiding the ~3 MB text-unidecode table import for the common ASCII case. Output is unchanged, including the frozen legacy differential (Rafael Borja, #201).
Full Changelog: v9.1.1...v9.1.2
π Generated with Dojo β©οΈ
9.1.1
Bug fix in the modern algorithm. Legacy output is unchanged and remains the permanent default.
- Modern mode only: avoid emitting a trailing separator when a hard cut truncates through repeated post-replacement delimiters, keeping the delimiter run with the next word that fits. Legacy output and public
smart_truncateare unchanged (ζΎζ₯η¬, #200).
Full Changelog: v9.1.0...v9.1.1
π Generated with Dojo β©οΈ
9.1.0
Modern-algorithm improvements and fixes. Legacy output is unchanged and remains the permanent default.
- Modern mode only: decode uppercase
&#X..;hexadecimal references as HTML allows, in addition to lowercase&#x..;(Rupayon Haldar, #195). - Modern mode only: preserve post-replacement output when the whole slug already fits
max_length, so intentional repeated/trailing delimiters are not collapsed at the length limit. Publicsmart_truncateis unchanged (emme1t, #193). - Fix
add_uppercase_charto apply insertions atomically, leaving the input list unchanged if iteration fails. Built-in transliteration tables are unaffected (Cristian Ramirez, #194). - Modern mode only: validate argument types up front, raising
TypeErrorfor abool/non-intmax_lengthor a non-strseparator. Legacy behavior is unchanged (Jon Bailey, #196).
Internal: the legacy pipeline is now frozen in slugify/_legacy.py with the public slugify() dispatching by algorithm; tests reorganized under tests/.
Full Changelog: v9.0.0...v9.1.0
π Generated with Dojo β©οΈ
9.0.0
Highlights
- Preserve legacy slug output by default while adding explicit
algorithm="modern"opt-in behavior. - Add explicit transliteration backend and replacement-stage controls, with matching CLI options.
- Add opt-in AnyASCII support while preserving existing dependency and backend-selection behavior.
- Fix CLI regex-pattern forwarding and modern-mode handling for entities, iterables, separators, and delimiters.
- Add Python 3.14 support, packaging modernization, expanded compatibility checks, and migration guidance.
See the changelog and migration guide for details.
PyPI: https://pypi.org/project/python-slugify/9.0.0/
π Created with Dojo β©οΈ