Skip to content

Instantly share code, notes, and snippets.

@mpkocher
Last active June 28, 2017 16:34
Show Gist options
  • Save mpkocher/8494e38a6079c6455691a5b8f61a3d51 to your computer and use it in GitHub Desktop.
Save mpkocher/8494e38a6079c6455691a5b8f61a3d51 to your computer and use it in GitHub Desktop.
pbcommand validation example of commandline arg directory
09:33 $ python /Users/mkocher/repos/pbcommand/extras/validation_argparse_option_example.py log
(pbsmrtpipe_test) ✔ ~/scratch_pad/verify-bugs/SL-1512
09:33 $ python /Users/mkocher/repos/pbcommand/extras/validation_argparse_option_example.py dir-that-does-not-exist
ls: cannot access 'dir-that-does-not-exist': No such file or directory
Traceback (most recent call last):
File "/Users/mkocher/repos/pbcommand/extras/validation_argparse_option_example.py", line 19, in <module>
sys.exit(main(argv=sys.argv[1:]))
File "/Users/mkocher/repos/pbcommand/extras/validation_argparse_option_example.py", line 14, in main
p.parse_args(argv)
File "/Users/mkocher/miniconda2/envs/pbsmrtpipe_test/lib/python2.7/argparse.py", line 1701, in parse_args
args, argv = self.parse_known_args(args, namespace)
File "/Users/mkocher/miniconda2/envs/pbsmrtpipe_test/lib/python2.7/argparse.py", line 1733, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
File "/Users/mkocher/miniconda2/envs/pbsmrtpipe_test/lib/python2.7/argparse.py", line 1942, in _parse_known_args
stop_index = consume_positionals(start_index)
File "/Users/mkocher/miniconda2/envs/pbsmrtpipe_test/lib/python2.7/argparse.py", line 1898, in consume_positionals
take_action(action, args)
File "/Users/mkocher/miniconda2/envs/pbsmrtpipe_test/lib/python2.7/argparse.py", line 1791, in take_action
argument_values = self._get_values(action, argument_strings)
File "/Users/mkocher/miniconda2/envs/pbsmrtpipe_test/lib/python2.7/argparse.py", line 2231, in _get_values
value = self._get_value(action, arg_string)
File "/Users/mkocher/miniconda2/envs/pbsmrtpipe_test/lib/python2.7/argparse.py", line 2260, in _get_value
result = type_func(arg_string)
File "/Users/mkocher/miniconda2/envs/pbsmrtpipe_test/lib/python2.7/site-packages/pbcommand/validators.py", line 24, in _validate_resource
raise IOError("Unable to find '{f}'".format(f=resource))
IOError: Unable to find 'dir-that-does-not-exist'
import sys
from pbcommand.cli import get_default_argparser
from pbcommand.validators import validate_dir
def get_parser():
p = get_default_argparser("0.1.0", "My Tool description")
p.add_argument('output-dir', type=validate_dir, help="Output directory")
return p
def main(argv=None):
p = get_parser()
p.parse_args(argv)
return 0
if __name__ == '__main__':
sys.exit(main(argv=sys.argv[1:]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment