
Security News
TC39 Advances 11 Proposals for Math Precision, Binary APIs, and More
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScript spec.
Drop-in replacement for argparse with support for environment variables.
If environment variables are present that fit a certain schema they are internally appended as if you had added them as CLI arguments.
As a drop in replacement just use comboparser instead of argparse:
import comboparse
# notice the different classname its not argparse.ArgumentParser
parser = comboparse.ComboParser(
prog='ProgramName',
description='What the program does',
epilog='Text at the bottom of help')
parser.add_argument('filename')
parser.add_argument('-c', '--count')
parser.add_argument('-v', '--verbose',
action='store_true')
args = parser.parse_args()
If the environment variables FILENAME, COUNT or VERBOSE (for flags set them with 1, true or y) these values will be set accordingly
Obviously for the sake of sanity we might want to prefix our environment variables, simply add the following parameter to the constructor:
import comboparse
# notice the different classname its not argparse.ArgumentParser
parser = comboparse.ComboParser(
# ...
env_prefix="combo", # please note that this will be upper cased
)
# ...
and now the env vars from before would be COMBO_FILENAME, COMBO_COUNT, COMBO_VERBOSE
The names can't be adjusted beyond setting the prefix and determined by the actions "dest" value. Aka whatever argparse would determine your "args.NAME" to be like.
While this should work as this tool simply adds its own CLI arguments to argparser, if you do something like
$ COUNT=10 my-tool --count 5 --verbose
The verbose flag will work as expected, but which count is taken isn't guaranteed by thiis library. (aka while now maybe the environment variable has precedence, in the future this might randomly change so don't rely on this!)
Count actions are usually provided like this:
$ my-cli-tool -vvv
Namespace(verbose=3)
but as an env variable you have to provide the number as is
$ VERBOSE=3 my-cli-tool
Namespace(verbose=3)
This works a bit like a normal store_true/store_false you have to use 1, true etc.
MIT
FAQs
Drop-in replacement for argparse with support for environment variables.
We found that comboparse demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScript spec.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.