Prototype: "expandnull" function #28376
Closed
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 intended to complement the
defaults
function as part of the optional attributes experiment, to give module authors a way to concisely declare that they don't care to distinguish between null objects/tuples and objects/tuples containing nulls, and that they don't care to distinguish between null collections and empty collections, and thus they can avoid needing to do conditional traversals and focus only on handling the leaf primitive-typed values as being null.This is just a prototype to see what this might look like and how it will interact with the
defaults
function. It's not yet ready to be merged because it lacks tests and documentation.This is one candidate answer to the concern raised in #28344:
my_var = {}
However, it does come at the expense of adding another very specialized function with a limited use-case, so we'll likely consider other designs too.