refactor: Implement @with_metadata decorator to reduce boilerplate#6278
Draft
gagantrivedi wants to merge 1 commit intomainfrom
Draft
refactor: Implement @with_metadata decorator to reduce boilerplate#6278gagantrivedi wants to merge 1 commit intomainfrom
gagantrivedi wants to merge 1 commit intomainfrom
Conversation
Introduces a decorator pattern to automatically handle metadata in serializers, eliminating the need to manually override create(), update(), and validate() methods. Changes: - Add @with_metadata decorator in metadata/serializers.py - Add helper functions _validate_required_metadata_for_model and _update_metadata_for_instance - Refactor FeatureSerializerWithMetadata to use decorator pattern - Reduce boilerplate from 32 lines to 17 lines (47% reduction) Benefits: - Eliminates fragility: impossible to forget create() override - No MRO issues: decorator works regardless of inheritance order - More maintainable: metadata logic centralized in one place - More explicit: @with_metadata makes intent clear Related to #6170, #6172 - part of metadata architectural improvements
|
The latest updates on your projects. Learn more about Vercel for GitHub. 3 Skipped Deployments
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a POC to solve #6277
Thanks for submitting a PR! Please check the boxes below:
docs/if required so people know about the feature!Changes
Introduces a decorator pattern to automatically handle metadata in serializers, eliminating the need to manually override create(), update(), and validate() methods.
Changes:
Benefits:
How did you test this code?
Please describe.