python / python/cpython

`fnmatch.translate` changed in an undocumented way in Python 3.14

Aperta
#140,922 5 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@picnixz ci sta già lavorando.

Dal 15/3/2026.

docs
Lingua principale
Python
Stelle
77.2k
Fork
35.9k
Metriche di merge delle PR
Metriche PR in attesa

Descrizione

Documentation

Since Python 3.14, fnmatch.translate appends a lowercase z, whilst 3.13 and below used an uppercase Z.
https://docs.python.org/3/library/fnmatch.html#fnmatch.translate makes no mention of this. Searching for fnmatch in https://docs.python.org/3/whatsnew/3.14.html only finds https://docs.python.org/3/whatsnew/3.14.html#fnmatch .

> uvx --python=3.13 python -c "import fnmatch; print(fnmatch.translate('foo*'))"
(?s:foo.*)\Z
> uvx --python=3.14 python -c "import fnmatch; print(fnmatch.translate('foo*'))"
(?s:foo.*)\z

(noticed in https://github.com/pypa/distutils/issues/381)


Edit:
After further research, the only mention I could find in "What's new in Python 3.14" is https://docs.python.org/3/whatsnew/3.14.html#re, which only says

Support \z as a synonym for \Z

not that \z is now also used in place of \Z.
https://docs.python.org/3/howto/regex.html#more-metacharacters does mention that

\Z
The same as \z. For compatibility with old Python versions.

Up to you to see if this is worth acting upon. It did confuse me and I had a bit of a hard time finding reference for this change. But I understand if it's considered "implementation detail" and that distutils (setuptools)'s test validating a regex is too niche of a use-case to be worth documenting.

Linked PRs
  • gh-144457

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.