Skip to content
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

new throw() / athrow() syntax w/ single value is not clearly documented or noted as new in python 3.12 #105269

Closed
zzzeek opened this issue Jun 3, 2023 · 10 comments
Labels
docs Documentation in the Doc dir

Comments

@zzzeek
Copy link

zzzeek commented Jun 3, 2023

Documentation

the docs at

.. coroutinemethod:: agen.athrow(value)
does not note that the single arg throw(value) calling style appears to be new in Python 3.12; docs for 3.11 do not refer to it:
.. coroutinemethod:: agen.athrow(type[, value[, traceback]])
, even though you can actually pass the "value" as the first argument to throw(). It's not clear to us here if using throw(value) will work identically on older Python versions. Looking at 396b583 it seems to be possibly 3.11 related, but in #96348 @gvanrossum claims "It allows passing either an exception, or a (type, value, traceback) triple where the value and traceback are optional. ", but this does not seem to be documented and is creating some confusion over here.

the changelog as well as the deprecation warning both refer to the "single arg version" , which will "work" on older py3 versions but has different behavior (Edit: or maybe it doesn't. we're not sure :) ).

can this document be clarified as to what differences, if any, exist between athrow(value) and athrow(type, value) and within what Python versions this new style should be accepted as an exact drop-in for the old style? thanks

Linked PRs

@zzzeek zzzeek added the docs Documentation in the Doc dir label Jun 3, 2023
@terryjreedy
Copy link
Member

@gvanrossum @iritkatriel Questions about (doc of) athrow(v) vs. athrow(t, v) vs athrow(t,b,t) and versions.

@iritkatriel
Copy link
Member

@zzzeek Would you like to make a patch with doc updates?

@zzzeek
Copy link
Author

zzzeek commented Jun 3, 2023

@zzzeek Would you like to make a patch with doc updates?

if you could tell me what the docs would say? Is there any change in behavior for athrow(value) vs. athrow(type, value, tback)? I vaguely recall similar functions where these are in fact equivalent but my co-maintainer @CaselIT is not sure

@iritkatriel
Copy link
Member

@zzzeek Would you like to make a patch with doc updates?

if you could tell me what the docs would say? Is there any change in behavior for athrow(value) vs. athrow(type, value, tback)? I vaguely recall similar functions where these are in fact equivalent but my co-maintainer @CaselIT is not sure

If there is then please file a bug report.

@zzzeek
Copy link
Author

zzzeek commented Jun 3, 2023

Hi -

The bug is, "the documentation does not explain this". I dont understand the documentation, and I dont know how to write the documentation because I don't understand the API. Do I need to file a bug report under a different tag? I had the impression that "documentation bugs" was the appropriate place to post this.

@iritkatriel
Copy link
Member

No this issue is fine for the documentation.

@CaselIT
Copy link

CaselIT commented Jun 4, 2023

@zzzeek Would you like to make a patch with doc updates?

if you could tell me what the docs would say? Is there any change in behavior for athrow(value) vs. athrow(type, value, tback)? I vaguely recall similar functions where these are in fact equivalent but my co-maintainer @CaselIT is not sure

If there is then please file a bug report.

so the idea here is to document also for version previous to 3.12 the call signature athrow(value)? so copy paste the 3.12 documentation minus the deprecation?

@CaselIT
Copy link

CaselIT commented Jun 7, 2023

I've created this PR #105468 to 3.11 branch.
Should I also create backports to other branches? Down to what version?

@iritkatriel
Copy link
Member

Thank you. We may be able to do automatic backports so hold off for now.

miss-islington pushed a commit to miss-islington/cpython that referenced this issue Jun 7, 2023
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Jun 7, 2023
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Jun 7, 2023
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Jun 7, 2023
@iritkatriel
Copy link
Member

Thank you @zzzeek and @CaselIT !

ned-deily pushed a commit that referenced this issue Jun 28, 2023
ambv pushed a commit that referenced this issue Jul 5, 2023
…3.11 docs gh-105269  (GH-105468) (#105480)

(cherry picked from commit acf3916)

Co-authored-by: Federico Caselli <[email protected]>
ambv pushed a commit that referenced this issue Jul 5, 2023
….11 docs gh-105269  (GH-105468) (#105477)

(cherry picked from commit acf3916)

Co-authored-by: Federico Caselli <[email protected]>
ambv pushed a commit that referenced this issue Jul 5, 2023
….11 docs gh-105269  (GH-105468) (#105478)

(cherry picked from commit acf3916)

Co-authored-by: Federico Caselli <[email protected]>
carlosroman pushed a commit to DataDog/cpython that referenced this issue Oct 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Documentation in the Doc dir
Projects
None yet
Development

No branches or pull requests

4 participants