Skip to content

match_args, slots and possibly kw_only missing from __dataclass_params__ #96142

Closed
@da-woods

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.

Metadata

Metadata

Assignees

Labels

stdlibPython modules in the Lib dirtype-bugAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions