Skip to content

encodings.idna: Unexpanded f-string in "Unsupported error handling" exception #135069

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
danielhollas opened this issue Jun 3, 2025 · 1 comment · May be fixed by #135071
Open

encodings.idna: Unexpanded f-string in "Unsupported error handling" exception #135069

danielhollas opened this issue Jun 3, 2025 · 1 comment · May be fixed by #135071
Labels
type-bug An unexpected behavior, bug, or error

Comments

@danielhollas
Copy link
Contributor

danielhollas commented Jun 3, 2025

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 [email protected] 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

@danielhollas danielhollas added the type-bug An unexpected behavior, bug, or error label Jun 3, 2025
@danielhollas
Copy link
Contributor Author

Note: I was inspired by the same issue reported in #134970 and used ruff linter to find this bug, specifically its RUF024 (missing-f-string-syntax) rule.

ruff check --target-version=py314 --preview --select RUF027 Lib/

It found two other hits in Lib/test/support/__init__.py, I'll file a separate issue for those.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type-bug An unexpected behavior, bug, or error
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant