changeset 12:9f485ecdc2a9 draft

process_options: new function to handle CLI args
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Wed, 11 Mar 2015 16:44:20 -0400
parents 77a7215db2fc
children ad39a394a011
files optim.py
diffstat 1 files changed, 22 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/optim.py
+++ b/optim.py
@@ -5,6 +5,28 @@
 Machine = namedtuple("Machine", ["day", "buy", "sell", "profit", "maxprofit"])
 Case = namedtuple("Case", ["machines", "days", "capital"])
 
+from argparse import ArgumentParser
+
+def process_options():
+    parser = ArgumentParser(
+        description=("Solve problem F."))
+    parser.add_argument("file", help = "input file to read")
+    parser.add_argument("--debug", dest = "debug", action = "store_true",
+                        help = "enable debug output")
+
+    algorithm = parser.add_mutually_exclusive_group(required = False)
+
+    algorithm.add_argument("-b", "--brute-force", dest = "brute_force",
+                           action = "store_true",
+                           help = "Use brute force, O(2**N) time")
+    algorithm.add_argument("-g", "--greedy", dest = "greedy",
+                           action = "store_true", default = True,
+                           help = ("Use greedy algorithm, fails for some cases, "
+                                   "roughly O(N) time"))
+
+    args = parser.parse_args()
+    return args
+
 def parseinput(fname):
     """
     Parse the input file, forget about input validation