Skip to content

fix: use default_factory for mutable dataclass default in MarkingMenu#398

Open
mrosseel wants to merge 1 commit intobrickbots:mainfrom
mrosseel:fix/marking-menu-default-factory
Open

fix: use default_factory for mutable dataclass default in MarkingMenu#398
mrosseel wants to merge 1 commit intobrickbots:mainfrom
mrosseel:fix/marking-menu-default-factory

Conversation

@mrosseel
Copy link
Collaborator

Summary

  • Python 3.11+ enforces that dataclass fields cannot have mutable defaults
  • MarkingMenu.up used MarkingMenuOption(label="HELP") as a default value, which raises ValueError on 3.11+
  • Changed to field(default_factory=lambda: MarkingMenuOption(label="HELP")) which is backwards-compatible with Python 3.9+

Test plan

  • ruff check passes
  • ruff format passes
  • Verify marking menu still works correctly on device

🤖 Generated with Claude Code

Python 3.11+ enforces that dataclass fields cannot have mutable defaults.
`MarkingMenu.up` used `MarkingMenuOption(label="HELP")` as a default value,
which raises ValueError on 3.11+. Use `field(default_factory=...)` instead.

Backwards-compatible with Python 3.9+.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant