This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2015年01月22日 05:41 by dongwm, last changed 2022年04月11日 14:58 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| argparse_lib.patch | dongwm, 2015年01月22日 05:41 | patch for Lib/argparse.py | review | |
| argparse_doc.patch | dongwm, 2015年01月22日 05:43 | patch for Doc/library/argparse.rst | review | |
| argparse_test.patch | dongwm, 2015年01月22日 05:48 | patch for Lib/test/test_argparse.py | review | |
| Messages (4) | |||
|---|---|---|---|
| msg234475 - (view) | Author: dongwm (dongwm) * | Date: 2015年01月22日 05:41 | |
Sometimes I need to use argparse like this:
>>> parser = argparse.ArgumentParser(prog='PROG')
>>> group = parser.add_mutually_dependence_group()
>>> group.add_argument('--foo')
>>> group.add_argument('--bar')
>>> parser.parse_args(['--foo', 'f', '--bar', 'b'])
Namespace(bar='b', foo='f')
>>> parser.parse_args(['--foo', 'f'])
PROG: error: --foo dependence on --bar
>>> parser.parse_args(['--bar', 'b'])
PROG: error: --bar dependence on --foo
I have some optional argument. but if any argument in a group was present on the command line. i need the others must also was present on. so i think ``add_mutually_dependence_group`` does make sense.
|
|||
| msg234495 - (view) | Author: R. David Murray (r.david.murray) * (Python committer) | Date: 2015年01月22日 15:38 | |
Well, it doesn't make much sense in the English language sense. If I got that error message I'd have no idea what was wrong. It sounds like what you want to do is dynamically make some arguments be required, depending on whether or not other arguments are present or not. |
|||
| msg238940 - (view) | Author: paul j3 (paul.j3) * (Python triager) | Date: 2015年03月22日 20:43 | |
http://bugs.python.org/issue11588 is an earlier request for 'necessarily inclusive' groups. The patches that I proposed there are more general, allowing for other logical combinations of arguments, as well as nesting groups. As such it is more complex than your patch, but the basic testing idea is the same - At the end of _parse_known_args check the group's actions against the ones that have been parsed. I use the existing 'seen_actions' or 'seen_nondefault_actions' rather than check the namespace directly. I also tried to construct this testing as a 'hook' that the user could customize. Your test, since it uses the Namespace and Action default, rather than the 'seen_actions' set, could just as well be run AFTER parse_args. That's the kind of testing that Stackoverflow answers often suggest for similar questions. In some cases it's also possible to write custom Action classes that handle this kind of interdependency. |
|||
| msg286581 - (view) | Author: paul j3 (paul.j3) * (Python triager) | Date: 2017年02月01日 02:22 | |
I propose closing this with reference to http://bugs.python.org/issue11588 |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:58:12 | admin | set | github: 67487 |
| 2019年04月25日 01:07:47 | martin.panter | set | superseder: Add "necessarily inclusive" groups to argparse |
| 2017年02月01日 02:22:42 | paul.j3 | set | status: open -> closed messages: + msg286581 |
| 2015年03月22日 20:43:29 | paul.j3 | set | nosy:
+ paul.j3 messages: + msg238940 |
| 2015年01月22日 15:39:19 | r.david.murray | set | versions: - Python 2.7, Python 3.2, Python 3.3, Python 3.4 |
| 2015年01月22日 15:38:13 | r.david.murray | set | nosy:
+ r.david.murray messages: + msg234495 |
| 2015年01月22日 05:48:29 | dongwm | set | files: + argparse_test.patch |
| 2015年01月22日 05:43:46 | dongwm | set | files: + argparse_doc.patch |
| 2015年01月22日 05:41:52 | dongwm | create | |