Fix argument parsing bug, simplify t/f args

pull/156/head
Dakota Benjamin 2015-08-21 11:03:30 -04:00
rodzic 93ceffb3a2
commit 11e18e2aa3
1 zmienionych plików z 21 dodań i 12 usunięć

31
run.py
Wyświetl plik

@ -36,6 +36,7 @@ def parseArgs():
## defaults ## defaults
#args['--match-size'] = 200 #args['--match-size'] = 200
args['--help'] = False
args['--resize-to'] = 2400 args['--resize-to'] = 2400
@ -70,16 +71,21 @@ def parseArgs():
args['--zip-results'] = True args['--zip-results'] = True
for i in range(1, len(sys.argv)): for i in range(1, len(sys.argv)):
if re.search("^--[^a-z\-]*", sys.argv[i]): # check to see if the argument given is valid
args[sys.argv[i]] = True if re.search("^--[^a-z\-]*", sys.argv[i]) and sys.argv[i] not in args:
sys.exit("\n Invalid argument " + str(sys.argv[i]) + ". Run with --help to see options.")
#if the argv starts with "--" and is not the last argument
if re.search("^--[^a-z\-]*", sys.argv[i]) and i+1 < len(sys.argv):
#default is to set args value to True
args[sys.argv[i]] = True
#if there is a parameter following the argument, set that parameter value in args
if not re.search("^--[^a-z\-]*", sys.argv[i + 1]): if not re.search("^--[^a-z\-]*", sys.argv[i + 1]):
if sys.argv[i] == "--resize-to": if sys.argv[i] == "--resize-to":
if sys.argv[i + 1] == "orig": if sys.argv[i + 1] == "orig":
args[sys.argv[i]] = 0 args[sys.argv[i]] = 0
elif re.search("^[0-9]*$", sys.argv[i + 1]): elif re.search("^[0-9]*$", sys.argv[i + 1]):
args[sys.argv[i]] = int(sys.argv[i + 1].strip()) args[sys.argv[i]] = int(sys.argv[i + 1].strip())
print(str(args[sys.argv[i]]))
else: else:
sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1]) sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1])
@ -174,7 +180,6 @@ def parseArgs():
else: else:
sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1]) sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1])
if sys.argv[i] == "--force-focal": if sys.argv[i] == "--force-focal":
if re.search("^[0-9]*\.?[0-9]*$", sys.argv[i + 1]): if re.search("^[0-9]*\.?[0-9]*$", sys.argv[i + 1]):
args[sys.argv[i]] = float(sys.argv[i + 1].strip()) args[sys.argv[i]] = float(sys.argv[i + 1].strip())
@ -203,11 +208,11 @@ def parseArgs():
if re.search("^[0-9]*\.?[0-9]*$", sys.argv[i + 1]): if re.search("^[0-9]*\.?[0-9]*$", sys.argv[i + 1]):
args[sys.argv[i]] = float(sys.argv[i + 1].strip()) args[sys.argv[i]] = float(sys.argv[i + 1].strip())
else: else:
sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1]) sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1])
if sys.argv[i] == "--odm_meshing-solverDivide": if sys.argv[i] == "--odm_meshing-solverDivide":
if re.search("^[0-9]*$", sys.argv[i + 1]): if re.search("^[0-9]*$", sys.argv[i + 1]):
args[sys.argv[i]] = int(sys.argv[i + 1].strip()) args[sys.argv[i]] = int(sys.argv[i + 1].strip())
else: else:
sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1]) sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1])
@ -217,28 +222,32 @@ def parseArgs():
else: else:
sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1]) sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1])
if sys.argv[i] == "--odm_texturing-textureWithSize": if sys.argv[i] == "--odm_texturing-textureWithSize":
if re.search("^[0-9]*$", sys.argv[i + 1]): if re.search("^[0-9]*$", sys.argv[i + 1]):
args[sys.argv[i]] = int(sys.argv[i + 1].strip()) args[sys.argv[i]] = int(sys.argv[i + 1].strip())
else: else:
sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1]) sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1])
if sys.argv[i] == "--odm_georeferencing-gcpFile": if sys.argv[i] == "--odm_georeferencing-gcpFile":
args[sys.argv[i]] = sys.argv[i + 1] args[sys.argv[i]] = sys.argv[i + 1]
if sys.argv[i] == "--odm_georeferencing-useGcp": if sys.argv[i] == "--odm_georeferencing-useGcp":
if sys.argv[i + 1].strip() == "true" or sys.argv[i + 1].strip() == "false": if sys.argv[i + 1].strip() == "true" or sys.argv[i + 1].strip() == "false":
args[sys.argv[i]] = (sys.argv[i + 1].strip() == "true") args[sys.argv[i]] = (sys.argv[i + 1].strip() == "true")
else: else:
sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1]) sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1])
if sys.argv[i] == "--zip-results": if sys.argv[i] == "--zip-results":
if sys.argv[i + 1].strip() == "true" or sys.argv[i + 1].strip() == "false": if sys.argv[i + 1].strip() == "true" or sys.argv[i + 1].strip() == "false":
args[sys.argv[i]] = (sys.argv[i + 1].strip() == "true") args[sys.argv[i]] = (sys.argv[i + 1].strip() == "true")
else: else:
sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1]) sys.exit("\n invalid parameter for \"" + sys.argv[i] + "\": " + sys.argv[i + 1])
# then check if i is a --arg and the last argument
elif re.search("^--[^a-z\-]*", sys.argv[i]):# and i == (len(sys.argv)-1):
#default is to set args value to True
args[sys.argv[i]] = True
if '--help' in args: if args['--help'] == True:
print "Usage: run.py [options]" print "Usage: run.py [options]"
print "it should be run from the folder contining the images to which should reconstructed" print "it should be run from the folder contining the images to which should reconstructed"
print "" print ""