GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||||||
GeezerVison is showing github.com — bpo-8538: Add support for boolean actions to argparse by remilapeyre · Pull Request #11478 · python/cpython Conversation
|
|
Hello, and thanks for your contribution! I'm a bot set up to make sure that the project can legally accept your contribution by verifying you have signed the PSF contributor agreement (CLA). Unfortunately we couldn't find an account corresponding to your GitHub username on bugs.python.org (b.p.o) to verify you have signed the CLA (this might be simply due to a missing "GitHub Name" entry in your b.p.o account settings). This is necessary for legal reasons before we can look at your contribution. Please follow the steps outlined in the CPython devguide to rectify this issue. You can check yourself to see if the CLA has been received. Thanks again for your contribution, we look forward to reviewing it! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@kenahoo Can you sign the CLA to make @the-knights-who-say-ni happy? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks @remilapeyre , I've signed it. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
Hi! I was about to write a patch to add the same feature. Good thing that I decided to look if someone was already working on it, thank you :-) I'd like to contribute with the following comments: 1. Register action rather than exposing the classI don't think self.register('action', 'optional_boolean', _BooleanOptionalAction) 2. Be aware of short optionsYour current implementation does not ignore short options when adding the prefix 3. Ordering of parameters namesI think the parser.add_argument('--foo', '--bar', action='optional_boolean', ...) Then, in the help message, 4. DocumentationIn the case of registering the action 'optional_boolean', it would be necessary to update the documentation on the list of supported values for the 5. My custom action classAbout (2) and (3), I have a custom implementation in one project of mine that does that: class BoolAction(argparse.Action): def __init__(self, option_strings, dest, **kw): self.original_option_strings = option_strings kw['nargs'] = 0 option_strings = [] for s in self.original_option_strings: option_strings.append(s) if s.startswith('--'): s = '--no-' + s[2:] option_strings.append(s) super(BoolAction, self).__init__(option_strings, dest, **kw) def __call__(self, parser, namespace, values, option_string): value = option_string in self.original_option_strings setattr(namespace, self.dest, value) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
All of @guludo's comments seem reasonable to me. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Hi @guludo, about 1. this has been discussed on b.p.o (https://bugs.python.org/issue8538#msg105620) and Steven Bethard seems to agree (https://bugs.python.org/issue8538#msg166165) so I think it is better to keep it that way before a core reviewers either confirm this API or asks for a registered action. I think it makes 4. unneeded. Nice catch for 2. and 3. I used something similar than you did for short options. The latest commit fix the ordering too. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I would like to see the result of Travis... |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Thank you for this contribution, I like the feature.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thank you for your contribution and this feature, really appreciated. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks @matrixise ! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@remilapeyre with pleasure. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
python#4144 and python/cpython#11478 (review) resulted in the issue being fixed upstream. A fix in time saves a branch in typeshed :-)
#4144 and python/cpython#11478 (review) resulted in the issue being fixed upstream. Co-authored-by: hauntsaninja <>
python#4144 and python/cpython#11478 (review) resulted in the issue being fixed upstream. Co-authored-by: hauntsaninja <>
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.