arghelper is a Python 3.8+ module providing functions to help with argparse.
argparsemodule from the Python Standard Librarysysmodule from the Python Standard Libraryosmodule from the Python Standard Library
arghelper provides functions to determine if a file or directory
exists:
extant_fileextant_dir
These can be used as follows:
if __name__ == "__main__":
# Process the arguments
import argparse
import arghelper
parser = argparse.ArgumentParser(
description='Process the TAFFmat CET files')
parser.add_argument(
'config_file',
help='CSV configuration file.',
metavar='FILE', type=arghelper.extant_file)
parser.add_argument(
'input_dir',
help='Directory containing input files.',
metvar='DIR', type=arghelper.extant_dir)
args = parser.parse_args()A common pattern, for me at least, is to have three positional arguments consisting of:
config_file--- A configuration fileinput_dir--- A directory containing input files to be readoutput_dir--- A directory where the output files should be saved
This pattern has been abstracted to a Facade function called
parse_config_input_output, which can be used as follows:
if __name__ == "__main__":
# Process the arguments
import arghelper
args = arghelper.parse_config_input_output(sys.argv)Another common pattern is to just parse the name of a config file:
if __name__ == "__main__":
# Process the arguments
import arghelper
args = arghelper.parse_config(sys.argv)Contributions are welcome! To contribute please:
- Fork the repository
- Create a feature branch
- Add code and tests
- Pass lint and tests
- Submit a pull request
Use the following commands to create a Python 3.9.9 virtualenv using pyenv
and pyenv-virtualenv, install the requirements in the virtualenv named
arghelper, and list the available [Invoke][] tasks.
$ pyenv virtualenv 3.11 arghelper
$ pyenv activate arghelper
$ pip install --upgrade pip
$ pip install -r requirements.txt
$ inv -larghelper is released under the MIT license. Please see the LICENSE.txt file for more information.