danielhollas · GitHub

@danielhollas

Bug report

Bug description:

The exception string in encondings.idna.IncrementalDecoder is missing the 'f' prefix.

raise UnicodeError("Unsupported error handling: {errors}")

The exception can be triggered with this snippet.

from encodings.idna import IncrementalDecoder
decoder = IncrementalDecoder(errors='boom!')
decoder.decode(b'')

On main

$ ./python test.py
Traceback (most recent call last):
  File "/home/hollas/software/cpython/test.py", line 3, in <module>
    decoder.decode(b'')
    ~~~~~~~~~~~~~~^^^^^
  File "<frozen codecs>", line 325, in decode
  File "/home/hollas/software/cpython/Lib/encodings/idna.py", line 319, in _buffer_decode
    raise UnicodeError("Unsupported error handling: {errors}")
UnicodeError: Unsupported error handling: {errors}

The issue also exists on Python 3.13 and 3.14, but not on 3.12

$ uvx python@3.12 test.py
Traceback (most recent call last):
  File "/home/hollas/software/cpython/test.py", line 3, in <module>
    decoder.decode(b'')
  File "<frozen codecs>", line 322, in decode
  File "/usr/lib64/python3.12/encodings/idna.py", line 264, in _buffer_decode
    raise UnicodeError("Unsupported error handling "+errors)
UnicodeError: Unsupported error handling boom!

(I'll submit a PR shortly)

CPython versions tested on:

CPython main branch

Operating systems tested on:

No response

Linked PRs

Read the original on github.com ↗