Skip to content

match_args, slots and possibly kw_only missing from __dataclass_params__ #96142

Description

@da-woods

Bug report

Dataclasses have an undocumented __dataclass_params__ class-attribute which appears to document the flags sent to the dataclass decorator:

cpython/Lib/dataclasses.py

Lines 903 to 904 in 6ec57e7

setattr(cls, _PARAMS, _DataclassParams(init, repr, eq, order,
unsafe_hash, frozen))

A few new flags have been added since the initial implementation of dataclasses. These don't seem to have been added to the __dataclass_params__ field. In the case of kw_only I think that makes sense - it's effectively controlled at a per-field level and the parameter to the dataclass decorator is just a convenience. However, the others seem like a genuine omission.

Your environment

I've just looked at the code for the current main branch.

Activity

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

Metadata

Metadata

Assignees

Labels

stdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions