• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

un33k / python-slugify / 35400835199
99%

Build:
DEFAULT BRANCH: master
Ran 18 Sep 2026 10:18PM UTC
Jobs 1
Files 6
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Sep 2026 10:16PM UTC coverage: 98.758% (-1.1%) from 99.864%
35400835199

push

github

web-flow
Freeze legacy into _legacy.py, reorganize tests, ship 9.1.0 (#198)

* Split frozen legacy pipeline into slugify/_legacy.py

Move the legacy slug pipeline into a dedicated frozen module and make the
public slugify() a thin dispatcher: algorithm='legacy' (default) calls the
frozen _legacy implementation, algorithm='modern' runs the modern pipeline.
Relocate the existing up-front TypeError validation for bool/non-int
max_length and non-str separator (from #196) into the modern path only, so
legacy output is unchanged while modern keeps rejecting invalid types.

🚀 Generated with [Dojo](https://heydojo.ai) â›Šī¸

* Reorganize tests under tests/ with frozen legacy suite

Move the test suite into tests/: the original upstream legacy suite becomes
the frozen tests/test_legacy.py (contents unchanged), mirroring the _legacy.py
code split, alongside tests/test_release.py and the add_uppercase test. The
modern-only bool/separator validation test moves to the modern suite. Update
pyproject testpaths, MANIFEST.in, and tox commands to the tests/ layout.

🚀 Generated with [Dojo](https://heydojo.ai) â›Šī¸

* Document legacy-frozen policy and split in DOJO.md and README

Record that legacy is architecturally frozen (slugify/_legacy.py and
tests/test_legacy.py) and that all new work targets algorithm='modern'.
Add a contributor note in the README not to open PRs that change legacy
output.

🚀 Generated with [Dojo](https://heydojo.ai) â›Šī¸

* Release 9.1.0: modern uppercase hex, truncation and validation fixes

Bump to 9.1.0. Modern-only: decode uppercase &#X..; hex references
(Rupayon Haldar, #195); preserve fitting post-replacement output during
truncation (emme1t, #193); relocate up-front argument type validation to
the modern path (Jon Bailey, #196). Fix add_uppercase_char atomicity
(Cristian Ramirez, #194). Legacy output unchanged.

🚀 Generated with [Dojo](https://heydojo.ai) â›Šī¸

* Fix release checks for 9.1.0 and tests/ layout

Update tools/check_dist.py to assert version 9... (continued)

140 of 146 branches covered (95.89%)

117 of 119 new or added lines in 3 files covered. (98.32%)

1 existing line in 1 file now uncovered.

318 of 322 relevant lines covered (98.76%)

0.99 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
98.02
slugify/_legacy.py

Coverage Regressions

Lines Coverage ∆ File
1
99.19
-0.81% slugify/slugify.py
Jobs
ID Job ID Ran Files Coverage
1 35400835199.1 18 Sep 2026 10:18PM UTC 6
98.76
GitHub Action Run
Source Files on build 35400835199
  • Tree
  • List 6
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 3f9e9b79 on github
  • Prev Build on master (#34279771801)
  • Next Build on master (#35401028430)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc