Redo all the argument parsing with argparse.
This commit is contained in:
@ -1,3 +1,4 @@
|
|||||||
|
import argparse
|
||||||
import curses
|
import curses
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
@ -9,17 +10,17 @@ from curses_reporter import CursesReporter
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
logging.basicConfig(level=logging.INFO, format='%(message)s', filename='./copycat.log', filemode='w')
|
logging.basicConfig(level=logging.INFO, format='%(message)s', filename='./copycat.log', filemode='w')
|
||||||
|
|
||||||
try:
|
parser = argparse.ArgumentParser()
|
||||||
args = sys.argv[1:]
|
parser.add_argument('--seed', type=int, default=None, help='Provide a deterministic seed for the RNG.')
|
||||||
initial, modified, target = args
|
parser.add_argument('initial', type=str, help='A...')
|
||||||
except ValueError:
|
parser.add_argument('modified', type=str, help='...is to B...')
|
||||||
print >>sys.stderr, 'Usage: %s initial modified target [iterations]' % sys.argv[0]
|
parser.add_argument('target', type=str, help='...as C is to... what?')
|
||||||
sys.exit(1)
|
options = parser.parse_args()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
window = curses.initscr()
|
window = curses.initscr()
|
||||||
copycat = Copycat(reporter=CursesReporter(window))
|
copycat = Copycat(reporter=CursesReporter(window), rng_seed=options.seed)
|
||||||
copycat.run_forever(initial, modified, target)
|
copycat.run_forever(options.initial, options.modified, options.target)
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
pass
|
pass
|
||||||
finally:
|
finally:
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
@ -14,20 +15,16 @@ class SimpleReporter(Reporter):
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
logging.basicConfig(level=logging.INFO, format='%(message)s', filename='./copycat.log', filemode='w')
|
logging.basicConfig(level=logging.INFO, format='%(message)s', filename='./copycat.log', filemode='w')
|
||||||
|
|
||||||
try:
|
parser = argparse.ArgumentParser()
|
||||||
args = sys.argv[1:]
|
parser.add_argument('--seed', type=int, default=None, help='Provide a deterministic seed for the RNG.')
|
||||||
if len(args) == 4:
|
parser.add_argument('--iterations', type=int, default=1, help='Run the given case this many times.')
|
||||||
initial, modified, target = args[:-1]
|
parser.add_argument('initial', type=str, help='A...')
|
||||||
iterations = int(args[-1])
|
parser.add_argument('modified', type=str, help='...is to B...')
|
||||||
else:
|
parser.add_argument('target', type=str, help='...as C is to... what?')
|
||||||
initial, modified, target = args
|
options = parser.parse_args()
|
||||||
iterations = 1
|
|
||||||
except ValueError:
|
|
||||||
print >>sys.stderr, 'Usage: %s initial modified target [iterations]' % sys.argv[0]
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
copycat = Copycat(reporter=SimpleReporter())
|
copycat = Copycat(reporter=SimpleReporter(), rng_seed=options.seed)
|
||||||
answers = copycat.run(initial, modified, target, iterations)
|
answers = copycat.run(options.initial, options.modified, options.target, options.iterations)
|
||||||
|
|
||||||
for answer, d in sorted(answers.iteritems(), key=lambda kv: kv[1]['avgtemp']):
|
for answer, d in sorted(answers.iteritems(), key=lambda kv: kv[1]['avgtemp']):
|
||||||
print '%s: %d (avg time %.1f, avg temp %.1f)' % (answer, d['count'], d['avgtime'], d['avgtemp'])
|
print '%s: %d (avg time %.1f, avg temp %.1f)' % (answer, d['count'], d['avgtime'], d['avgtemp'])
|
||||||
|
|||||||
Reference in New Issue
Block a user