-
Notifications
You must be signed in to change notification settings - Fork 0
/
arghelper.py
33 lines (26 loc) · 844 Bytes
/
arghelper.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import argparse
import os
def inputfile(path):
if not path.endswith('.csv'):
raise argparse.ArgumentTypeError('argument filename must be of type *.csv')
return path
def check_range(arg):
try:
value = int(arg)
except ValueError as err:
raise argparse.ArgumentTypeError(str(err))
if value >= 3:
message = "Expected values >= 3, got value = {}".format(value)
raise argparse.ArgumentTypeError(message)
return value
def inputdir(parser, path):
if not os.path.isdir(path):
message = "directory:{0} is not a valid path".format(path)
parser.error(message)
elif os.access(path, os.R_OK):
return path
else:
message = "directory:{0} is not a readable directory".format(path)
raise argparse.ArgumentError(message)