python-ConfigArgParse
Port variant v13
Summary Drop-in replacement for argparse (3.13)
Package version 1.7.5
Homepage https://github.com/bw2/ConfigArgParse
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v14
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 24 MAR 2026, 14:46:45 UTC
Port created 08 SEP 2020, 00:38:32 UTC
Subpackage Descriptions
single # ConfigArgParse [PyPI version] [Supported Python versions] [Downloads per week] [Build status] [API Documentation] ## Overview Applications with more than a handful of user-settable options are best configured through a combination of command line args, config files, hard-coded defaults, and in some cases, environment variables. Python's command line parsing modules such as argparse have very limited support for config files and environment variables, so this module extends argparse to add these features. **API docs:** https://bw2.github.io/ConfigArgParse/ **PyPI:** http://pypi.python.org/pypi/ConfigArgParse ## Install To install this library, run: ` pip install ConfigArgParse ` ## Features - command-line, config file, env var, and default settings can now be defined, documented, and parsed in one go using a single API (if a value is specified in more than one way then: command line > environment variables > config file values > defaults) - config files can have .ini or .yaml style syntax (eg. key=value or key: value) - user can provide a config file via a normal-looking command line arg (eg. -c path/to/config.txt) rather than the argparse-style @config.txt - one or more default config file paths can be specified (eg. `['/etc/bla.conf', '~/.my_config']`) - all argparse functionality is fully supported, so this module can serve as a drop-in replacement (verified by argparse unittests). - env vars and config file keys & syntax are automatically documented in the -h help message - new method `print_values()` can report keys & values and where they were set (eg. command line, env var, config file, or default). - lite-weight (no 3rd-party library dependencies except (optionally) PyYAML) - extensible (`ConfigFileParser` can be subclassed to define a new config file format) - unittested by running the unittests that came with argparse but on configargparse ## Example *config_test.py*: Script that defines 4 options and a positional arg and then parses and prints the values. Also, it prints out the help message as well as the string produced by `format_values()` to show what they look like. ```python import configargparse p = configargparse.ArgParser(default_config_files=['/etc/app/conf.d/*.conf', '~/.my_settings']) p.add('-c', '--my-config', required=True, is_config_file=True, help='config file path') p.add('--genome', required=True, help='path to genome file') # this option can be set in a config file because it starts with '--' p.add('-v', help='verbose', action='store_true') p.add('-d', '--dbsnp', help='known variants .vcf', env_var='DBSNP_PATH') # this option can be set in a config file because it starts with '--' p.add('vcf', nargs='+', help='variant file(s)') options = p.parse_args() print(options) print("----------") print(p.format_help()) print("----------") print(p.format_values()) # useful for logging where different settings came from ``` *config.txt:* Since the script above set the config file as required=True, lets create a config file to give it: ```python # settings for config_test.py genome = HCMV # cytomegalovirus genome dbsnp = /data/dbsnp/variants.vcf ```
Configuration Switches (platform-specific settings discarded)
PY313 ON Build using Python 3.13 PY314 OFF Build using Python 3.14
Package Dependencies by Type
Build (only) python313:dev:std
python-pip:single:v13
autoselect-python:single:std
Build and Runtime python313:primary:std
Download groups
main mirror://PYPIWHL/fe/19/3ba5e1b0bcc7b91aeab6c258afd70e4907d220fed3972febe38feb40db30
Distribution File Information
1e63fdffedf94da9cd435fc13a1cd24777e76879dd2343912c1f871d4ac8c592 27692 python-src/configargparse-1.7.5-py3-none-any.whl
Ports that require python-ConfigArgParse:v13
python-xml2rfc:v13 Request For Comment authoring with XML (3.13)