Conversation
📝 WalkthroughWalkthroughAdds version-aware handling for builtin-type attribute conflicts in enums by exposing a numeric Changes
Sequence Diagram(s)sequenceDiagram
participant CLI as CLI
participant Parser as Parser
participant Resolver as ModelResolver
participant FieldResolver as EnumFieldNameResolver
participant PyVer as PythonVersion
CLI->>Parser: parse args (use_subclass_enum, target_python_version)
Parser->>Resolver: new ModelResolver(..., use_subclass_enum, target_python_version)
Resolver->>FieldResolver: construct resolver for ENUM (passes use_subclass_enum, target_python_version)
FieldResolver->>PyVer: request _get_builtin_type_attributes_for_target(target)
PyVer-->>FieldResolver: return version-specific attribute set (via version_key)
FieldResolver->>Resolver: validate/generate enum member names
Resolver-->>Parser: resolved model names
Parser-->>CLI: emit generated code / tests compare outputs
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~30 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 5 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts (beta)
No actionable comments were generated in the recent review. 🎉 🧹 Recent nitpick comments
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
📚 Docs Preview: https://pr-2999.datamodel-code-generator.pages.dev |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2999 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 94 94
Lines 18075 18106 +31
Branches 2090 2093 +3
=========================================
+ Hits 18075 18106 +31
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
5c8595b to
709b9f6
Compare
Breaking Change AnalysisResult: Breaking changes detected Reasoning: This PR fixes a bug where the EnumFieldNameResolver was incorrectly adding underscore suffixes to capitalized enum members. The fix changes generated output in two ways: (1) Without --use-subclass-enum, enum members like 'replace' now become 'REPLACE' instead of 'REPLACE_' because the builtin type attribute check is skipped when subclass enums aren't used. (2) With --capitalise-enum-members, validation now checks the uppercased name ('REPLACE') instead of lowercase ('replace'), so it no longer conflicts with builtin methods like str.replace. While this is a bug fix, it changes the generated code output which could break existing users who depend on the previous (incorrect) naming convention. Content for Release NotesCode Generation Changes
This analysis was performed by Claude Code Action |
|
🎉 Released in 0.54.0 This PR is now available in the latest release. See the release notes for details. |
Fixes: #2970
Summary by CodeRabbit
New Features
Bug Fixes
Tests