Skip to content

gh-124412: Add helpers for converting annotations to source format - #124551

Merged
JelleZijlstra merged 7 commits into
python:mainfrom
JelleZijlstra:anno-to-source
Sep 26, 2024
Merged

gh-124412: Add helpers for converting annotations to source format#124551
JelleZijlstra merged 7 commits into
python:mainfrom
JelleZijlstra:anno-to-source

Conversation

@JelleZijlstra

@JelleZijlstra JelleZijlstra commented Sep 25, 2024

Copy link
Copy Markdown
Member

This is on top of #124479 because that PR changes some related logic.


📚 Documentation preview 📚: https://cpython-previews--124551.org.readthedocs.build/

@carljm

carljm commented Sep 25, 2024

Copy link
Copy Markdown
Member

Can you rebase this so the changes from #124479 are no longer included in it?

Comment thread Lib/annotationlib.py


def annotations_to_source(annotations):
"""Convert an annotation dict containing values to approximately the SOURCE format."""

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"approximately the SOURCE format" 😆

Comment thread Lib/typing.py
Comment on lines 245 to 247
if isinstance(obj, tuple):
# Special case for `repr` of types with `ParamSpec`:
return '[' + ', '.join(_type_repr(t) for t in obj) + ']'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a case we don't want in value_to_source?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I think it's specifically for the internals of Callable and doesn't make sense in general. (Notice that it represents tuples with list syntax.)

@JelleZijlstra
JelleZijlstra enabled auto-merge (squash) September 25, 2024 23:36
@JelleZijlstra
JelleZijlstra merged commit 4e829c0 into python:main Sep 26, 2024
emilyemorehouse added a commit to lysnikolaou/cpython that referenced this pull request Sep 26, 2024
* main: (69 commits)
  Add "annotate" SET_FUNCTION_ATTRIBUTE bit to dis. (python#124566)
  pythongh-124412: Add helpers for converting annotations to source format (python#124551)
  pythongh-119180: Disallow instantiation of ConstEvaluator objects (python#124561)
  For-else deserves its own section in the tutorial (python#123946)
  Add 3.13 as a version option to the crash issue template (python#124560)
  pythongh-123242: Note that type.__annotations__ may not exist (python#124557)
  pythongh-119180: Make FORWARDREF format look at __annotations__ first (python#124479)
  pythonGH-58058: Add quick reference for `ArgumentParser` to argparse docs (pythongh-124227)
  pythongh-41431: Add `datetime.time.strptime()` and `datetime.date.strptime()` (python#120752)
  pythongh-102450: Add ISO-8601 alternative for midnight to `fromisoformat()` calls. (python#105856)
  pythongh-124370: Add "howto" for free-threaded Python (python#124371)
  pythongh-121277: Allow `.. versionadded:: next` in docs (pythonGH-121278)
  pythongh-119400:  make_ssl_certs: update reference test data automatically, pass in expiration dates as parameters python#119400  (pythonGH-119401)
  pythongh-119180: Avoid going through AST and eval() when possible in annotationlib (python#124337)
  pythongh-124448: Update Windows builds to use Tcl/Tk 8.6.15 (pythonGH-124449)
  pythongh-123884 Tee of tee was not producing n independent iterators (pythongh-124490)
  pythongh-124378: Update test_ttk for Tcl/Tk 8.6.15 (pythonGH-124542)
  pythongh-124513: Check args in framelocalsproxy_new() (python#124515)
  pythongh-101100: Add a table of class attributes to the "Custom classes" section of the data model docs (python#124480)
  Doc: Use ``major.minor`` for documentation distribution archive filenames (python#124489)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

2 participants