Comments (4)
I don't think that allowing the main parser options interspersed with the
subparser
options is right for all applications. For example, while 'svn --version'
works, 'svn
co --version' doesn't. So at least SVN has decided that --version is not a
global option.
Right now, the only real way to use global options is to store all your global
options in one parser, and then add those options to all your subparsers using
the
parser= keyword argument to the ArgumentParser constructor. Something like this:
>>> global_options = argparse.ArgumentParser(add_help=False)
>>> global_options.add_argument('--bar', action='store_true')
>>> parser = argparse.ArgumentParser(parents=[global_options])
>>> subparsers = parser.add_subparsers()
>>> parser1 = subparsers.add_parser('1', parents=[global_options])
>>> parser.parse_args(['--bar', '1'])
Namespace(bar=True)
>>> parser.parse_args(['1', '--bar'])
Namespace(bar=True)
I'm open to patches which make it easier to specify global options if you have
specific ideas.
Original comment by [email protected]
on 8 Sep 2009 at 1:11
from argparse.
Original comment by [email protected]
on 8 Sep 2009 at 1:11
- Changed state: Accepted
- Added labels: Type-Enhancement
- Removed labels: Type-Defect
from argparse.
s/using the parser= keyword/using the parents= keyword/
Original comment by [email protected]
on 10 Sep 2009 at 3:41
from argparse.
Closing this as the parents keyword allows the desired behavior to be requested
explicitly. If you'd like to propose an API for this, please either discuss on
the argarse users list, or file a feature request on bugs.python.org.
Original comment by [email protected]
on 23 Jul 2010 at 10:53
- Changed state: WontFix
from argparse.
Related Issues (20)
- Feature Request: Ability to remove argument groups HOT 1
- sub command set_defaults behaviour HOT 1
- Parsing multiple merged short options eats characters HOT 1
- Subcommands not printed in the same order they were added HOT 4
- __all__ is not complete HOT 1
- Handling arguments after -- HOT 3
- sha1sum of argparse-1.1.zip does not match HOT 3
- add_mutually_exclusive_group more than once has incorrectly formatted help. HOT 1
- re-license argparse package under same license as py 2.7 stdlib argparse code HOT 8
- argparse-1.1.zip is not same archive on pypi / on google code HOT 4
- About this issue tracker HOT 2
- argparse 1.2 incompatible with Python 3.1 HOT 10
- When -h is used, default values that fail should not matter HOT 2
- positional arguments before options cause all options to be in REMAINDER
- Argparse is not testable with nosetest HOT 1
- `choices=[...]` overrides `nargs='*'` HOT 1
- Serious issues with nested mutex groups in help output HOT 2
- Bug with negative numbers in scientific notation HOT 1
- pypi version does not handle empty arguments when fromfile_prefix_chars set (python issue 12353)
- .add_mutually_exclusive_group() only works when child of parser but not when a child of argument group
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from argparse.