import decimal import importlib import sys import oxrlib.config def decimal_context(base=decimal.BasicContext): context = base.copy() context.rounding = decimal.ROUND_HALF_EVEN context.traps = { decimal.Clamped: True, decimal.DivisionByZero: True, decimal.FloatOperation: True, decimal.Inexact: False, decimal.InvalidOperation: True, decimal.Overflow: True, decimal.Rounded: False, decimal.Subnormal: True, decimal.Underflow: True, } return context def main(arglist=None, stdout=sys.stdout, stderr=sys.stderr): config = oxrlib.config.Configuration(arglist) subcmd_module = importlib.import_module('.commands.' + config.args.command, 'oxrlib') with decimal.localcontext(decimal_context()): subcmd_module.run(config, stdout, stderr) return 0 if __name__ == '__main__': exit(main())