Allow overriding of the the arg_name convention #867
Merged
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.
Rather than
{location}_args
being a hardcoded behavior, allow users to subclass and override it with a custom method.This will allow users to set alternate naming conventions in a centralized place, on their parser class. By passing the schema object to get_default_arg_name, we enable schemas which provide their own argument names to the parser.
There are some ordering considerations which make it impossible to guarantee that
get_default_arg_name
gets a schema object (rather than, e.g. a callable which returns a schema). For this first implementation, I have opted to move the call after any dict-to-schema conversion happens, so that users have fewer types they need to handle.This PR addresses this thread at the end of #830, but also expands to a use-case which I have and would like to support, which is making the argument names relate to the schema in some way.