Skip to content

gh-157056: Fix STRING format for comprehension and lambda annotations - #157152

Closed
KingLizard1020 wants to merge 12 commits into
python:mainfrom
KingLizard1020:gh-157056-string-format
Closed

gh-157056: Fix STRING format for comprehension and lambda annotations#157152
KingLizard1020 wants to merge 12 commits into
python:mainfrom
KingLizard1020:gh-157056-string-format

Conversation

@KingLizard1020

@KingLizard1020 KingLizard1020 commented Sep 8, 2026

Copy link
Copy Markdown

Withdrawing. The issue was closed as a documented STRING-format limitation, so this heuristic is not the direction the maintainers want.

…ations

get_annotations(..., format=Format.STRING) raised ValueError on dict
comprehension annotations because fake-globals iteration cannot unpack
pair targets. Recover the annotation text from source in that case.

Lambda and generator-expression annotations are syntax, so they were
stringified with repr() and leaked a memory address. Prefer the source
text when available, and use a stable type_repr() otherwise.
Only consult source when fake-globals cannot stringify. Limit the
ValueError handler to unpack errors, keep class-body control-flow
annotations, and avoid requoting string-literal annotations.
Only consult source when fake-globals cannot stringify. Limit the
ValueError handler to unpack errors, keep class-body control-flow
annotations, and avoid requoting string-literal annotations.
@bedevere-app

bedevere-app Bot commented Sep 8, 2026

Copy link
Copy Markdown

Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool.

If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant