Skip to content

build(deps): bump python-slugify from 8.0.4 to 9.1.2 - #2262

Closed
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/pip/python-slugify-9.1.2
Closed

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/pip/python-slugify-9.1.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 30, 2026

Copy link
Copy Markdown
Contributor

Bumps python-slugify from 8.0.4 to 9.1.2.

Release notes

Sourced from python-slugify's releases.

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: un33k/python-slugify@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_truncate are unchanged (曾楚笑, #200).

Full Changelog: un33k/python-slugify@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. Public smart_truncate is unchanged (emme1t, #193).
  • Fix add_uppercase_char to 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 TypeError for a bool/non-int max_length or a non-str separator. 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: un33k/python-slugify@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 ⛩️

Changelog

Sourced from python-slugify's changelog.

9.1.2

  • 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).

9.1.1

  • 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_truncate are unchanged (曾楚笑, #200).

9.1.0

  • Modern mode only: decode uppercase &#X..; hexadecimal references as HTML allows, in addition to lowercase &#x..;. Legacy output is unchanged (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. Public smart_truncate is unchanged (emme1t, #193).
  • Fix add_uppercase_char to 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 TypeError for a bool/non-int max_length (bool is an int subclass) or a non-str separator. Legacy behavior is unchanged and still treats max_length=True as its historical single-character truncation (Jon Bailey, #196).

9.0.0 — unreleased

  • Add keyword-only algorithm='legacy' (permanent default) and explicit algorithm='modern' opt-in, plus CLI --algorithm. Preserve historical default entity ordering, numeric handling, iterator consumption, separator truncation, and public smart_truncate behavior.

  • Preserve legacy auto backend selection and two-pass replacement defaults; add explicit backend and replacement_stage keyword-only options and matching CLI flags.

  • Add opt-in AnyASCII extra without removing or changing the base text-unidecode dependency.

  • Forward CLI --regex-pattern (Jacobo de Vera, #176; report by @​peter-bloomfield, #175).

  • Modern mode only: decode entities before transliteration; handle invalid numeric references per match, including surrogate references (#178, #181, #187).

  • Modern mode only: materialize replacement rules and stopword iterables consistently; preserve bytes/bytearray UTF-8 input with clear rejection of unsupported types (#183, #190).

  • Modern mode only: budget internal tokens using emitted separator widths, support empty separators, and preserve literal word characters that match delimiters. Public smart_truncate remains unchanged (#47, #185, #186).

  • Add regression coverage for whitespace, ordinals, backend-specific output, replacement stages, CLI execution, and installed artifacts.

  • Move package metadata to pyproject.toml, retain the typed marker and source tests, and remove the unsafe publish/upload/tag shortcut.

  • Document output changes, backend license distinctions, compatibility limits, and migration precautions in docs/release-9/migration.md.

  • Support Python 3.14.

  • Drop support for Python 3.9 and lower.

  • Use tox for local test runs and in CI.

  • Test the project against both unidecode and text_unidecode.

  • Fix type annotation issues identified by mypy.

  • Run CI against pull requests.

  • Fix package build warnings.

Commits
  • 18a28da Release 9.1.2: skip transliteration backend for ASCII input (#201)
  • cf6cd3d Skip the transliteration backend for ASCII text (#201)
  • 2fe6cec Reword Dojo badge to 'maintained with' for a 15-year-old library
  • bbfdff2 Recolor Dojo badge to dark slate for readability
  • 87ce191 Add 'Built with Dojo' badge to README
  • 6aa0b0f Release 9.1.1: fix modern hard-cut trailing delimiter
  • 8f9a550 Avoid trailing post-replacement delimiters in modern hard cuts (#200)
  • c442cd4 Lead Quickstart examples with algorithm='modern'
  • 6e6fc4b Reframe README intro around 9+ modern algorithm, drop PyPI prose
  • b9171f7 Use version-agnostic 9.x wording in README
  • Additional commits viewable in compare view

Dependabot compatibility score

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 commands and options

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 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)

Bumps [python-slugify](https://github.com/un33k/python-slugify) from 8.0.4 to 9.1.2.
- [Release notes](https://github.com/un33k/python-slugify/releases)
- [Changelog](https://github.com/un33k/python-slugify/blob/master/CHANGELOG.md)
- [Commits](un33k/python-slugify@v8.0.4...v9.1.2)

---
updated-dependencies:
- dependency-name: python-slugify
  dependency-version: 9.1.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update Python code labels Sep 30, 2026
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity · 0 duplication

Metric Results
Complexity 0
Duplication 0

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@dependabot @github

dependabot Bot commented on behalf of github Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #2278.

@dependabot dependabot Bot closed this Oct 13, 2026
@dependabot
dependabot Bot deleted the dependabot/pip/python-slugify-9.1.2 branch October 13, 2026 22:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants