Repository navigation
Conversation
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Revisión adversarial independiente — CON REPAROSRevisado por quien no escribió el código, en worktree propio ( El arreglo es funcionalmente correcto (vista roja/verde reproducida): Suite completa con el cambio: REPARO (bloqueante): el PR deja el CI del fork en ROJO. El check designado
Arreglo trivial: reformatear la expresión de la línea 75 para que Alcance correcto ( — revisión adversarial automática, sesión Claude Code (independiente del autor). |
Summary
Fix the modern
allow_unicode=Truepipeline so combining marks produced by lowercasing remain attached to their Unicode word instead of becoming a separator. This addresses #4 without changing the frozen legacy algorithm.Cause and change
İ.lower() producesifollowed by COMBINING DOT ABOVE (Mn). The modern default Unicode disallowed-character pattern replaced that mark with-, producingi-stanbul. Modern filtering now preserves adjacentMn/Mcmarks, while explicitregex_patternbehavior remains unchanged. Lowercasing also applies NFC normalization where composition is defined.Files changed:
slugify/slugify.pytests/test_modern_unicode.pyEvidence
Red view, before the production fix:
Green view, after the production fix:
Additional available tests after the fix:
The repository CI workflow matrix was read before validation. The required taller workflow runs Python 3.11 and 3.12 with flake8, pycodestyle, and the full pytest suite; the upstream workflows additionally declare Python 3.10–3.14 and PyPy 3.11. This workspace has Python 3.11.2 only. The focused tests pass; the full suite could not run because the available environment lacks the declared
text-unidecodeand optionalUnidecodepackages. flake8, pycodestyle, and mypy are also not installed locally, so those checks were not reproduced. No dependencies, lockfiles, workflows, or unrelated files were changed.The diff is limited to the Issue's requested
slugify/slugify.pyandtests/test_modern_unicode.pyfiles.