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.
chatGTP doc:
Your tested version of coerce_mutation_data appears to be more comprehensive and handles various cases including nested input types. Here's a brief explanation of the key aspects:
Handling Nested Input Types: The method recursively handles nested input types by calling itself if the field type is a custom input object.
Checking Field Type: Instead of using field.type, it directly checks the class of the field (field.class). This allows more precise checking and handling of different types, such as graphene.List or custom input types.
Custom Input Types: For custom input types, it handles coercion by calling coerce_mutation_data recursively with the inner input class.
Logging: It includes logging for cases where a key is not found in the input class. This can be helpful for debugging.
Default Input Class: It allows specifying a default input class if input_class is not provided.
Overall, this version seems robust and capable of handling various scenarios encountered in mutation data coercion. Ensure to test it thoroughly with different input data and input class configurations to verify its correctness and effectiveness. If any specific business rules or requirements apply to your application, make sure they are properly accounted for in the coercion logic.