Skip to content

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

Description

@zzzeek

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

Activity

  1. added
    docsDocumentation in the Doc dir
    on Jun 3, 2023
  2. terryjreedy commented on Jun 3, 2023

    @terryjreedy
    Member

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

  3. iritkatriel commented on Jun 3, 2023

    @iritkatriel
    Member

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

  4. zzzeek commented on Jun 3, 2023

    @zzzeek
    Author

    @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

  5. iritkatriel commented on Jun 3, 2023

    @iritkatriel
    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.

  6. zzzeek commented on Jun 3, 2023

    @zzzeek
    Author

    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.

  7. iritkatriel commented on Jun 4, 2023

    @iritkatriel
    Member

    No this issue is fine for the documentation.

  8. CaselIT commented on Jun 4, 2023

    @CaselIT

    @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?

  9. CaselIT commented on Jun 7, 2023

    @CaselIT

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

  10. iritkatriel commented on Jun 7, 2023

    @iritkatriel
    Member

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

  11. iritkatriel commented on Jun 7, 2023

    @iritkatriel
    Member

    Thank you @zzzeek and @CaselIT !

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    docsDocumentation in the Doc dir

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions