arghelper is a Python 3.8+ module providing functions to help with argparse.
argparse
module from the Python Standard Librarysys
module from the Python Standard Libraryos
module from the Python Standard Library
arghelper
provides functions to determine if a file or directory
exists:
extant_file
extant_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 -l
arghelper is released under the MIT license. Please see the LICENSE.txt file for more information.