diff --git a/src/benchmark.py b/src/shamira/benchmark.py copy from src/benchmark.py copy to src/shamira/benchmark.py --- a/src/benchmark.py +++ b/src/shamira/benchmark.py @@ -1,9 +1,8 @@ -from argparse import ArgumentParser import cProfile import timeit -from shamira import generate, reconstruct -from tests.test_shamira import TestShamira +from . import generate, reconstruct +from .tests.test_shamira import TestShamira def measure(args): @@ -13,10 +12,10 @@ def measure(args): symbols.update(locals()) time = timeit.timeit("""generate(secret, args.k, args.n)""", number=1, globals=symbols) - print("The generation took {0:.3}s, {1:.3} per byte.".format(time, time/16)) + print("The generation took {0:.3}s, {1:.3}s per byte.".format(time, time/16)) time = timeit.timeit("""reconstruct(*shares)""", number=1, globals=symbols) - print("The reconstruction took {0:.3}s, {1:.3} per byte.".format(time, time/16)) + print("The reconstruction took {0:.3}s, {1:.3}s per byte.".format(time, time/16)) def profile(args): @@ -25,17 +24,14 @@ def profile(args): cProfile.runctx(r"""t.test_generate_reconstruct()""", globals=globals(), locals=locals()) -parser = ArgumentParser() -parser.set_defaults(func=lambda _: parser.error("missing command")) -subparsers = parser.add_subparsers() - -profile_parser = subparsers.add_parser("profile") -profile_parser.set_defaults(func=profile) +def build_subparsers(parent): + parent.set_defaults(func=lambda _: parent.error("missing command")) + subparsers = parent.add_subparsers() -measure_parser = subparsers.add_parser("measure") -measure_parser.add_argument("-k", type=int, required=True) -measure_parser.add_argument("-n", type=int, required=True) -measure_parser.set_defaults(func=measure) + profile_parser = subparsers.add_parser("profile") + profile_parser.set_defaults(func=profile) -args = parser.parse_args() -args.func(args) + measure_parser = subparsers.add_parser("measure") + measure_parser.add_argument("-k", type=int, required=True) + measure_parser.add_argument("-n", type=int, required=True) + measure_parser.set_defaults(func=measure)