Opened 88 minutes ago
#37018 new Cleanup/optimization
Generated migrations should use tuples instead of lists
| Reported by: | Daniel Quinn | Owned by: | |
|---|---|---|---|
| Component: | Migrations | Version: | 6.0 |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
When running makemigrations, the typical output contains a Migration class with at least two attributes: dependencies and operations, both of which are mutable lists rather than immutable tuples. This upsets my linter (ruff) which I think rightly complains that we've got a class here with mutable default values:
error[RUF012]: Mutable default value for class attribute --> plugins/generic_to_clickhouse/migrations/0001_initial.py:13:20 | 11 | initial = True 12 | 13 | dependencies = [] | ^^ 14 | 15 | operations = ( | help: Consider initializing in `__init__` or annotating with `typing.ClassVar`
Digging through the source, I see that this is just the result of a hard-coded template using [ instead of (, so I have to assume that a fix would be pretty straightforward.
So unless there's a reason we want these values to be mutable, I'm happy to do this work. I just don't want to do the work and have it rejected for unforseen reasons.