Add flag to opt-in to dict conversion when colons are detected #3909
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.
#3670 introduced a cool new capability to split strings in an array parameter on a colon
:
character in order to specify a dictionary more easily.However, this breaks a few corner cases, such as those where the user wants to provide an array of strings that all contain
:
and doesn't want them split. For instance, some network interfaces have a colon in their name and it shouldn't be split up.This kicked off a long discussion internally, and we've decided to go for a more robust, exhaustive method of dealing with more complicated data types, likely to be implemented in the 2.6 release timeframe, perhaps 2.7.
Until that time, we need to take a stopgap measure to retain the functionality for those that need it, while getting things working again for some of the corner cases that don't want it. To that end, this PR implements a new flag
--auto-dict
, which you MUST specify to get the functionality introduced by #3670. The default functionality forst2 run
will be to NOT interpret colons, but revert back to the way this was handled prior to #3670.Note again that this flag is temporary and should not be relied upon long-term. Eventually, it will be replaced with more permanent, exhaustive handling of complex datatypes for action parameters.
Usage
I put together a simple action that just returns its input values so we can see how the parameters have or haven't been affected by the use of this new flag. Note that without the flag, the default is to behave as it was before - it will not split the list items into dicts, but rather leave them as strings:
However, this functionality can be opted into by using the
--auto-dict
flag: