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

gh-104984: remove kwargs and starargs from Call & ClassDef #104986

Merged
merged 1 commit into from
May 26, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions Doc/library/ast.rst
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,7 @@ Expressions
Comparison operator tokens.


.. class:: Call(func, args, keywords, starargs, kwargs)
.. class:: Call(func, args, keywords)

A function call. ``func`` is the function, which will often be a
:class:`Name` or :class:`Attribute` object. Of the arguments:
Expand All @@ -491,7 +491,7 @@ Expressions
arguments passed by keyword.

When creating a ``Call`` node, ``args`` and ``keywords`` are required, but
they can be empty lists. ``starargs`` and ``kwargs`` are optional.
they can be empty lists.

.. doctest::

Expand Down Expand Up @@ -1820,7 +1820,7 @@ Function and class definitions
type_ignores=[])


.. class:: ClassDef(name, bases, keywords, starargs, kwargs, body, decorator_list)
.. class:: ClassDef(name, bases, keywords, body, decorator_list)
Copy link
Member

Choose a reason for hiding this comment

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

This is also now out of date with the implementation in main and 3.12 due to the addition of type_params argument in PEP 695, but that's being addressed in #104642

Still seems sensible to remove starargs and kwargs in this PR, and let @JelleZijlstra resolve the resulting conflict on this line in #104642

Copy link
Member

Choose a reason for hiding this comment

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

Hmm, backporting this will mean that the PEP 695 docs PR won't backport cleanly, which may cause a bit more of a pain. @JelleZijlstra how do you prefer to handle this?

Copy link
Member

Choose a reason for hiding this comment

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

Just merge this first, I'll take care of the backports


A class definition.

Expand All @@ -1829,9 +1829,6 @@ Function and class definitions
* ``keywords`` is a list of :class:`keyword` nodes, principally for 'metaclass'.
Other keywords will be passed to the metaclass, as per `PEP-3115
<https://peps.python.org/pep-3115/>`_.
* ``starargs`` and ``kwargs`` are each a single node, as in a function call.
starargs will be expanded to join the list of base classes, and kwargs will
be passed to the metaclass.
* ``body`` is a list of nodes representing the code within the class
definition.
* ``decorator_list`` is a list of nodes, as in :class:`FunctionDef`.
Expand Down