Mercurial > hg > problem6
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