def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument('degree')
parser.add_argument('prec', type=int)
parser.add_argument('--division', type=int)
parser.add_argument('--c', type=float)
parser.add_argument('--maxsteps', type=int)
parser.add_argument('--max-loops', type=int)
parser.add_argument('--convergence-value', type=mpmath.mpf)
parser.add_argument('--tol', type=mpmath.mpf)
parser.add_argument('--nsolve-type', default=None,
choices=['points', 'intervals'])
parser.add_argument('--solver', default=None)
parser.add_argument('--D-scale', default=None, type=float)
parser.add_argument('--scale', default=None, type=bool)
parser.add_argument('--plot', default=True, type=bool)
parser.add_argument('--seed', default=None, type=int)
parser.add_argument('--initial-points', default=None,
choices=['chebyshev', 'random'])
parser.add_argument('--log-to-file', default=True, type=bool,
help="Log output to a file (in the logs/ directory)")
parser.add_argument('--log-level', default='info',
choices=['debug', 'info', 'warning', 'error', 'critical'])
parser.add_argument('--save-cache', action="store_true", default=False,
help="""Save the computed CRAM expression to the local cache.""")
try:
import argcomplete
argcomplete.autocomplete(parser)
except ImportError:
pass
args = parser.parse_args()
try:
args.degree = ast.literal_eval(args.degree)
except (ValueError, SyntaxError) as e:
parser.error("Invalid degree: " + str(e))
arguments = args.__dict__.copy()
for i in arguments.copy():
if not arguments[i]:
del arguments[i]
if args.log_level:
logger.setLevel(getattr(logging, args.log_level.upper()))
del arguments['log_level']
expr = CRAM_exp(**arguments)
if args.save_cache:
local_cache_file = get_local_CRAM_cache_file(args.degree, args.prec)
print("Saving to", local_cache_file)
with open(local_cache_file, 'w') as f:
f.write(srepr(expr))
评论列表
文章目录