From 9e1935ad19117799f5154b1c34c13492826555a4 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Tue, 4 Apr 2023 16:04:10 +0000 Subject: [PATCH] opts.init() -> Config() --- examples/halving-calculator.py | 4 ++-- mmgen/altcoin.py | 3 +-- mmgen/cfg.py | 35 +++++++++++++++++++++++++++++ mmgen/contrib/license.py | 2 +- mmgen/fileutil.py | 5 ++--- mmgen/main_addrgen.py | 4 ++-- mmgen/main_addrimport.py | 2 +- mmgen/main_autosign.py | 8 +++---- mmgen/main_msg.py | 11 ++++----- mmgen/main_passgen.py | 5 +++-- mmgen/main_regtest.py | 4 ++-- mmgen/main_seedjoin.py | 4 ++-- mmgen/main_split.py | 2 +- mmgen/main_tool.py | 10 +++++---- mmgen/main_txbump.py | 2 +- mmgen/main_txcreate.py | 2 +- mmgen/main_txdo.py | 2 +- mmgen/main_txsend.py | 4 ++-- mmgen/main_txsign.py | 4 ++-- mmgen/main_wallet.py | 8 +++---- mmgen/main_xmrwallet.py | 10 ++++----- mmgen/opts.py | 8 +++---- mmgen/tool/api.py | 9 +++----- scripts/compute-file-chksum.py | 2 +- scripts/create-token.py | 4 ++-- scripts/tx-v2-to-v3.py | 4 ++-- scripts/uninstall-mmgen.py | 4 ++-- test/gentest.py | 4 ++-- test/include/coin_daemon_control.py | 4 ++-- test/misc/cfg.py | 2 +- test/misc/get_passphrase.py | 2 +- test/misc/input_func.py | 2 +- test/misc/oneshot_warning.py | 2 +- test/misc/opts.py | 2 +- test/misc/term.py | 2 +- test/misc/term_ni.py | 13 ++++++----- test/misc/tool_api_test.py | 4 ++-- test/objattrtest.py | 2 +- test/objtest.py | 2 +- test/scrambletest.py | 2 +- test/test.py | 6 ++--- test/tooltest.py | 2 +- test/tooltest2.py | 4 ++-- test/unit_tests.py | 2 +- 44 files changed, 126 insertions(+), 93 deletions(-) diff --git a/examples/halving-calculator.py b/examples/halving-calculator.py index 51374208..9e60c9b2 100755 --- a/examples/halving-calculator.py +++ b/examples/halving-calculator.py @@ -14,7 +14,7 @@ examples.halving-calculator.py: Demonstrate use of the MMGen asyncio/aiohttp JSO import time -import mmgen.opts as opts +from mmgen.cfg import Config from mmgen.util import async_run opts_data = { @@ -39,7 +39,7 @@ mmgen-node-tools repository. } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) def date(t): return '{}-{:02}-{:02} {:02}:{:02}:{:02}'.format(*time.gmtime(t)[:6]) diff --git a/mmgen/altcoin.py b/mmgen/altcoin.py index 9490cbfe..8e454a3c 100755 --- a/mmgen/altcoin.py +++ b/mmgen/altcoin.py @@ -791,8 +791,7 @@ if __name__ == '__main__': } } - from mmgen.opts import init - cfg = init( opts_data, need_amt=False ) + cfg = Config( opts_data=opts_data, need_amt=False ) msg('Checking CoinInfo WIF/P2PKH/P2SH version numbers and trust levels against protocol.py') CoinInfo.verify_core_coin_data( cfg, cfg.quiet, cfg.verbose ) diff --git a/mmgen/cfg.py b/mmgen/cfg.py index bf0791b2..7d4b650d 100755 --- a/mmgen/cfg.py +++ b/mmgen/cfg.py @@ -402,3 +402,38 @@ class Config(Lockable): 'mainnet': (self.data_dir_root,), }[self.network] )) return self._data_dir + + def __init__( + self, + cfg = None, + opts_data = None, + add_opts = None, + init_opts = None, + opt_filter = None, + parse_only = False, + parsed_opts = None, + need_proto = True, + need_amt = True, + do_post_init = False, + process_opts = False ): + + if opts_data or parsed_opts or process_opts: + + import mmgen.opts as opts + + self._opts = opts + + opts.init( + cfg = self, + opts_data = opts_data, + add_opts = add_opts, + init_opts = init_opts, + opt_filter = opt_filter, + parse_only = parse_only, + parsed_opts = parsed_opts, + need_proto = need_proto, + need_amt = need_amt, + do_post_init = do_post_init ) + + if do_post_init: + self._post_init = opts.post_init diff --git a/mmgen/contrib/license.py b/mmgen/contrib/license.py index 95eb4e4e..90049838 100755 --- a/mmgen/contrib/license.py +++ b/mmgen/contrib/license.py @@ -20,7 +20,7 @@ contrib.license: Copyright notice and text of GPLv3 """ -from ..globalvars import gc +from ..cfg import gc warning = f""" {gc.proj_name} Copyright (C) {gc.Cdates} by {gc.author} {gc.email}. This diff --git a/mmgen/fileutil.py b/mmgen/fileutil.py index 0ea0fd58..f296dae3 100755 --- a/mmgen/fileutil.py +++ b/mmgen/fileutil.py @@ -123,13 +123,12 @@ def get_seed_file(cfg,nargs,wallets=None,invoked_as=None): wd_from_opt = bool(cfg.hidden_incog_input_params or cfg.in_fmt) # have wallet data from opt? - import mmgen.opts as opts if len(wallets) + (wd_from_opt or bool(wf)) < nargs: if not wf: msg('No default wallet found, and no other seed source was specified') - opts.usage() + cfg._opts.usage() elif len(wallets) > nargs: - opts.usage() + cfg._opts.usage() elif len(wallets) == nargs and wf and invoked_as != 'gen': cfg._util.qmsg('Warning: overriding default wallet with user-supplied wallet') diff --git a/mmgen/main_addrgen.py b/mmgen/main_addrgen.py index b4922f90..7ce0f1ea 100755 --- a/mmgen/main_addrgen.py +++ b/mmgen/main_addrgen.py @@ -126,7 +126,7 @@ FMT CODES: } } -cfg = opts.init(opts_data,opt_filter=opt_filter,need_amt=False) +cfg = Config( opts_data=opts_data, opt_filter=opt_filter, need_amt=False ) proto = cfg._proto @@ -136,7 +136,7 @@ addr_type = MMGenAddrType( errmsg = f'{cfg.type!r}: invalid parameter for --type option' ) if len(cfg._args) < 1: - opts.usage() + cfg._opts.usage() if cfg.keygen_backend: from .keygen import check_backend diff --git a/mmgen/main_addrimport.py b/mmgen/main_addrimport.py index 8f203012..5ff837b9 100755 --- a/mmgen/main_addrimport.py +++ b/mmgen/main_addrimport.py @@ -186,7 +186,7 @@ async def main(): del twctl -cfg = opts.init(opts_data,need_amt=False) +cfg = Config( opts_data=opts_data, need_amt=False ) proto = cfg._proto diff --git a/mmgen/main_autosign.py b/mmgen/main_autosign.py index 96c319cf..5575ea8f 100755 --- a/mmgen/main_autosign.py +++ b/mmgen/main_autosign.py @@ -25,7 +25,7 @@ from subprocess import run,PIPE,DEVNULL from collections import namedtuple from stat import * -import mmgen.opts as opts +from .cfg import Config from .util import msg,msg_r,ymsg,rmsg,gmsg,bmsg,die,suf,fmt_list,async_run,exit_if_mswin from .color import yellow,red,orange @@ -120,8 +120,8 @@ This command is currently available only on Linux-based platforms. } } -cfg = opts.init( - opts_data, +cfg = Config( + opts_data = opts_data, add_opts = ['outdir','passwd_file'], # in _set_ok, so must be set init_opts = { 'quiet': True, @@ -433,7 +433,7 @@ async def do_loop(): n += 1 if len(cmd_args) not in (0,1): - opts.usage() + cfg._opts.usage() if len(cmd_args) == 1: cmd = cmd_args[0] diff --git a/mmgen/main_msg.py b/mmgen/main_msg.py index 600b9a07..785b281a 100755 --- a/mmgen/main_msg.py +++ b/mmgen/main_msg.py @@ -14,6 +14,7 @@ mmgen-msg: Message signing operations for the MMGen suite import sys import mmgen.opts as opts +from .cfg import Config from .base_obj import AsyncInit from .util import msg,suf,async_run from .msg import ( @@ -203,12 +204,12 @@ $ mmgen-msg verify signatures.json } } -cfg = opts.init(opts_data,need_amt=False) +cfg = Config( opts_data=opts_data, need_amt=False ) cmd_args = cfg._args if len(cmd_args) < 2: - opts.usage() + cfg._opts.usage() op = cmd_args.pop(0) @@ -218,15 +219,15 @@ if cfg.msghash_type and op != 'create': async def main(): if op == 'create': if len(cmd_args) < 2: - opts.usage() + cfg._opts.usage() MsgOps.create( cmd_args[0], ' '.join(cmd_args[1:]) ) elif op == 'sign': if len(cmd_args) < 1: - opts.usage() + cfg._opts.usage() await MsgOps.sign( cmd_args[0], cmd_args[1:] ) elif op in ('verify','export'): if len(cmd_args) not in (1,2): - opts.usage() + cfg._opts.usage() await getattr(MsgOps,op)( cmd_args[0], cmd_args[1] if len(cmd_args) == 2 else None ) else: die(1,f'{op!r}: unrecognized operation') diff --git a/mmgen/main_passgen.py b/mmgen/main_passgen.py index dbbc9b2f..af9e38d7 100755 --- a/mmgen/main_passgen.py +++ b/mmgen/main_passgen.py @@ -134,9 +134,10 @@ FMT CODES: } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) -if len(cfg._args) < 2: opts.usage() +if len(cfg._args) < 2: + cfg._opts.usage() pw_idxs = AddrIdxList(fmt_str=cfg._args.pop()) diff --git a/mmgen/main_regtest.py b/mmgen/main_regtest.py index 1e23331b..3f2ec876 100755 --- a/mmgen/main_regtest.py +++ b/mmgen/main_regtest.py @@ -57,7 +57,7 @@ opts_data = { } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) cmd_args = cfg._args @@ -77,7 +77,7 @@ def check_num_args(): die(1,m.format(args,'many','more',amax)) if not cmd_args: - opts.usage() + cfg._opts.usage() elif cmd_args[0] not in MMGenRegtest.usr_cmds: die(1,f'{cmd_args[0]!r}: invalid command') elif cmd_args[0] not in ('cli','wallet_cli','balances'): diff --git a/mmgen/main_seedjoin.py b/mmgen/main_seedjoin.py index cc971f9d..3899e6a5 100755 --- a/mmgen/main_seedjoin.py +++ b/mmgen/main_seedjoin.py @@ -110,10 +110,10 @@ def print_shares_info(): out += f'{n:3}: {s.sid}\n' cfg._util.qmsg(out) -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) if len(cfg._args) + bool(cfg.hidden_incog_input_params) < 2: - opts.usage() + cfg._opts.usage() if cfg.master_share: master_idx = MasterShareIdx(cfg.master_share) diff --git a/mmgen/main_split.py b/mmgen/main_split.py index 84ac06c8..0b59c44f 100755 --- a/mmgen/main_split.py +++ b/mmgen/main_split.py @@ -86,7 +86,7 @@ transaction reconfirmed before the timelock expires. Use at your own risk. } } -cfg = opts.init(opts_data,need_amt=False) +cfg = Config( opts_data=opts_data, need_amt=False ) proto = cfg._proto diff --git a/mmgen/main_tool.py b/mmgen/main_tool.py index dd3a627b..355d0bb0 100755 --- a/mmgen/main_tool.py +++ b/mmgen/main_tool.py @@ -347,7 +347,8 @@ def get_mod_cls(modname): if gc.prog_name == 'mmgen-tool': - po = opts.init( opts_data, parse_only=True ) + cfg = Config( opts_data=opts_data, parse_only=True ) + po = cfg._parsed_opts if po.user_opts.get('list'): def gen(): @@ -362,7 +363,7 @@ if gc.prog_name == 'mmgen-tool': sys.exit(0) if len(po.cmd_args) < 1: - opts.usage() + cfg._opts.usage() cmd = po.cmd_args[0] @@ -371,11 +372,12 @@ if gc.prog_name == 'mmgen-tool': if not cls: die(1,f'{cmd!r}: no such command') - cfg = opts.init( + cfg = Config( opts_data, parsed_opts = po, need_proto = cls.need_proto, - init_opts = {'rpc_backend':'aiohttp'} if cmd == 'twimport' else None ) + init_opts = {'rpc_backend':'aiohttp'} if cmd == 'twimport' else None, + process_opts = True ) cmd,*args = cfg._args diff --git a/mmgen/main_txbump.py b/mmgen/main_txbump.py index 58104642..d5ab853c 100755 --- a/mmgen/main_txbump.py +++ b/mmgen/main_txbump.py @@ -103,7 +103,7 @@ FMT CODES: } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) tx_file = cfg._args.pop(0) diff --git a/mmgen/main_txcreate.py b/mmgen/main_txcreate.py index 5feb2fa3..30fcc5b3 100755 --- a/mmgen/main_txcreate.py +++ b/mmgen/main_txcreate.py @@ -79,7 +79,7 @@ opts_data = { } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) async def main(): diff --git a/mmgen/main_txdo.py b/mmgen/main_txdo.py index 97b583a6..113482f9 100755 --- a/mmgen/main_txdo.py +++ b/mmgen/main_txdo.py @@ -123,7 +123,7 @@ FMT CODES: } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) from .tx import NewTX,OnlineSignedTX from .tx.sign import txsign,get_seed_files,get_keyaddrlist,get_keylist diff --git a/mmgen/main_txsend.py b/mmgen/main_txsend.py index 77ee8bbd..7755396e 100755 --- a/mmgen/main_txsend.py +++ b/mmgen/main_txsend.py @@ -42,14 +42,14 @@ opts_data = { } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) if len(cfg._args) == 1: infile = cfg._args[0] from .fileutil import check_infile check_infile(infile) else: - opts.usage() + cfg._opts.usage() if not cfg.status: from .ui import do_license_msg diff --git a/mmgen/main_txsign.py b/mmgen/main_txsign.py index f70bfb2b..5161f8f4 100755 --- a/mmgen/main_txsign.py +++ b/mmgen/main_txsign.py @@ -99,12 +99,12 @@ FMT CODES: } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) infiles = cfg._args if not infiles: - opts.usage() + cfg._opts.usage() from .fileutil import check_infile for i in infiles: diff --git a/mmgen/main_wallet.py b/mmgen/main_wallet.py index c4803de3..01f4df4b 100755 --- a/mmgen/main_wallet.py +++ b/mmgen/main_wallet.py @@ -145,7 +145,7 @@ FMT CODES: } } -cfg = opts.init(opts_data,opt_filter=opt_filter,need_proto=False) +cfg = Config( opts_data=opts_data, opt_filter=opt_filter, need_proto=False ) cmd_args = cfg._args @@ -166,17 +166,17 @@ elif invoked_as == 'seedsplit': m2 = 'To generate a master share, omit the seed split specifier.' die(1,m1+' '+m2) elif not sss: - opts.usage() + cfg._opts.usage() elif master_share: sss = SeedSplitSpecifier('1:2') else: - opts.usage() + cfg._opts.usage() from .fileutil import check_infile,get_seed_file if cmd_args: if invoked_as == 'gen' or len(cmd_args) > 1: - opts.usage() + cfg._opts.usage() check_infile(cmd_args[0]) sf = get_seed_file(cfg,nargs,invoked_as=invoked_as) diff --git a/mmgen/main_xmrwallet.py b/mmgen/main_xmrwallet.py index 375f0d84..46ca7ab7 100755 --- a/mmgen/main_xmrwallet.py +++ b/mmgen/main_xmrwallet.py @@ -225,12 +225,12 @@ $ mmgen-xmrwallet --pager txview *XMR*.sigtx } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) cmd_args = cfg._args if len(cmd_args) < 2: - opts.usage() + cfg._opts.usage() op = cmd_args.pop(0) infile = cmd_args.pop(0) @@ -242,17 +242,17 @@ wallets = spec = '' if op == 'relay': if len(cmd_args) != 0: - opts.usage() + cfg._opts.usage() elif op == 'txview': infile = [infile] + cmd_args elif op in ('create','sync','list'): if len(cmd_args) not in (0,1): - opts.usage() + cfg._opts.usage() if cmd_args: wallets = cmd_args[0] elif op in ('new','transfer','sweep','label'): if len(cmd_args) != 1: - opts.usage() + cfg._opts.usage() spec = cmd_args[0] ua = namedtuple('uargs',[ 'op', 'infile', 'wallets', 'spec' ]) diff --git a/mmgen/opts.py b/mmgen/opts.py index d922b1ad..4b66898c 100755 --- a/mmgen/opts.py +++ b/mmgen/opts.py @@ -281,6 +281,7 @@ opts_data_dfl = { } def init( + cfg, opts_data = None, add_opts = None, init_opts = None, @@ -309,9 +310,8 @@ def init( po.user_opts[uopt] = val if parse_only and not any(k in po.user_opts for k in ('version','help','longhelp')): - return po - - cfg = Config() + cfg._parsed_opts = po + return if cfg.debug_opts: # TODO: this does nothing opt_preproc_debug(po) @@ -444,8 +444,6 @@ def init( else: delete_data(opts_data) - return cfg - def check_usr_opts(cfg,usr_opts): # Raises an exception if any check fails def opt_splits(val,sep,n,desc): diff --git a/mmgen/tool/api.py b/mmgen/tool/api.py index 38ef8f2e..6b3b8062 100755 --- a/mmgen/tool/api.py +++ b/mmgen/tool/api.py @@ -35,10 +35,10 @@ class tool_api( Example: from mmgen.tool.api import tool_api - from mmgen.opts import init + from mmgen.cfg import Config # Initialize a tool API instance: - tool = tool_api(init()) + tool = tool_api(Config()) # Set the coin and network: tool.init_coin('btc','mainnet') @@ -71,10 +71,7 @@ class tool_api( Initializer - takes no arguments """ type(cfg)._reset_ok += ('usr_randchars',) - if not cfg._lock: - import mmgen.opts as opts - opts.init() - super().__init__(cfg) + super().__init__(cfg=cfg) def init_coin(self,coinsym,network): """ diff --git a/scripts/compute-file-chksum.py b/scripts/compute-file-chksum.py index b4ae85a9..d7b01da7 100755 --- a/scripts/compute-file-chksum.py +++ b/scripts/compute-file-chksum.py @@ -17,7 +17,7 @@ opts_data = { } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) from mmgen.fileutil import get_lines_from_file lines = get_lines_from_file( cfg, cfg._args[0] ) diff --git a/scripts/create-token.py b/scripts/create-token.py index d16e06a3..1c7f297e 100755 --- a/scripts/create-token.py +++ b/scripts/create-token.py @@ -256,7 +256,7 @@ def compile_code(cfg,code): if __name__ == '__main__': - cfg = opts.init(opts_data) + cfg = Config(opts_data=opts_data) if cfg.check_solc_version: sys.exit(0 if check_solc_version() else 1) @@ -265,7 +265,7 @@ if __name__ == '__main__': die(1,'--coin option must be ETH or ETC') if not len(cfg._args) == 1: - opts.usage() + cfg._opts.usage() code = create_src( cfg, solidity_code_template, token_data ) diff --git a/scripts/tx-v2-to-v3.py b/scripts/tx-v2-to-v3.py index 0be1b099..2b099c64 100755 --- a/scripts/tx-v2-to-v3.py +++ b/scripts/tx-v2-to-v3.py @@ -22,13 +22,13 @@ opts_data = { } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) import asyncio from mmgen.tx import CompletedTX if len(cfg._args) != 1: - opts.usage() + cfg._opts.usage() tx = asyncio.run(CompletedTX(cfg._args[0],quiet_open=True)) tx.file.write(ask_tty=False,ask_overwrite=not cfg.quiet,ask_write=not cfg.quiet) diff --git a/scripts/uninstall-mmgen.py b/scripts/uninstall-mmgen.py index 78a60085..820f682e 100755 --- a/scripts/uninstall-mmgen.py +++ b/scripts/uninstall-mmgen.py @@ -51,13 +51,13 @@ opts_data = { } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) if gc.platform == 'linux' and os.getenv('USER') != 'root': die(1,'This program must be run as root') if len(cfg._args): - opts.usage() + cfg._opts.usage() mod_dir = os.path.split(normalize_path(modpath_save))[0] mod_pardir = os.path.split(mod_dir)[0] diff --git a/test/gentest.py b/test/gentest.py index 2d56ac74..1e7133ac 100755 --- a/test/gentest.py +++ b/test/gentest.py @@ -462,7 +462,7 @@ def get_protos(proto,addr_type,toolname): def parse_args(): if len(cfg._args) != 2: - opts.usage() + cfg._opts.usage() arg1,arg2 = cfg._args gen1,gen2,rounds = (0,0,0) @@ -553,7 +553,7 @@ sd = namedtuple('saved_data_item',['reduced','wif','addr','viewkey']) sys.argv = [sys.argv[0]] + ['--skip-cfg-file'] + sys.argv[1:] -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) set_globals(cfg) qmsg = cfg._util.qmsg diff --git a/test/include/coin_daemon_control.py b/test/include/coin_daemon_control.py index 1c1b06fb..10f1ac14 100755 --- a/test/include/coin_daemon_control.py +++ b/test/include/coin_daemon_control.py @@ -49,7 +49,7 @@ Valid network IDs: {nid}, all, or no_xmr } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) from mmgen.daemon import * @@ -114,7 +114,7 @@ else: ids = cfg._args network_ids = CoinDaemon.get_network_ids(cfg) if not ids: - opts.usage() + cfg._opts.usage() for i in ids: if i not in network_ids: die(1,f'{i!r}: invalid network ID') diff --git a/test/misc/cfg.py b/test/misc/cfg.py index ea44b900..9cb0f524 100755 --- a/test/misc/cfg.py +++ b/test/misc/cfg.py @@ -2,7 +2,7 @@ from mmgen.common import * -cfg = opts.init() +cfg = Config(process_opts=True) cmd_args = cfg._args diff --git a/test/misc/get_passphrase.py b/test/misc/get_passphrase.py index 8c8341b1..b5ac7187 100755 --- a/test/misc/get_passphrase.py +++ b/test/misc/get_passphrase.py @@ -21,7 +21,7 @@ opts_data = { } } -cfg = opts.init( opts_data, init_opts={'color':True} ) +cfg = Config( opts_data=opts_data, init_opts={'color':True} ) def crypto(): desc = 'test data' diff --git a/test/misc/input_func.py b/test/misc/input_func.py index a874c3ac..28ce1c8e 100755 --- a/test/misc/input_func.py +++ b/test/misc/input_func.py @@ -15,7 +15,7 @@ opts_data = { } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) cmd_args = cfg._args diff --git a/test/misc/oneshot_warning.py b/test/misc/oneshot_warning.py index f70e2d03..62b26e91 100755 --- a/test/misc/oneshot_warning.py +++ b/test/misc/oneshot_warning.py @@ -2,7 +2,7 @@ from mmgen.common import * -cfg = opts.init() +cfg = Config() class foo(oneshot_warning): diff --git a/test/misc/opts.py b/test/misc/opts.py index 36bad3ca..3b923d70 100755 --- a/test/misc/opts.py +++ b/test/misc/opts.py @@ -45,7 +45,7 @@ sample note: {nn} } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) if cfg._args == ['show_common_opts_diff']: from mmgen.opts import show_common_opts_diff diff --git a/test/misc/term.py b/test/misc/term.py index 7a6a10d4..b26a6188 100755 --- a/test/misc/term.py +++ b/test/misc/term.py @@ -44,7 +44,7 @@ available commands for platform {gc.platform!r}: } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) from mmgen.term import get_char,get_char_raw,get_terminal_size,get_term from mmgen.ui import line_input,keypress_confirm,do_license_msg diff --git a/test/misc/term_ni.py b/test/misc/term_ni.py index b412d7b3..c69e9de8 100755 --- a/test/misc/term_ni.py +++ b/test/misc/term_ni.py @@ -4,16 +4,17 @@ import sys,os os.chdir(os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(sys.argv[0]))))) sys.path[0] = os.curdir -from mmgen.common import * +from mmgen.cfg import Config +cfg = Config() -cfg = opts.init() - -from mmgen.term import get_term,get_char_raw +from mmgen.term import init_term,get_term +init_term(cfg) term = get_term() -if cfg._args[0] == 'echo': +if sys.argv[1] == 'echo': from mmgen.ui import line_input + from mmgen.term import get_char_raw term.init(noecho=True) line_input( cfg, 'noecho> ' ) @@ -26,7 +27,7 @@ if cfg._args[0] == 'echo': line_input( cfg, 'noecho> ' ) get_char_raw() -elif cfg._args[0] == 'cleanup': +elif sys.argv[1] == 'cleanup': term.register_cleanup() diff --git a/test/misc/tool_api_test.py b/test/misc/tool_api_test.py index e10911c3..1233e542 100755 --- a/test/misc/tool_api_test.py +++ b/test/misc/tool_api_test.py @@ -109,8 +109,8 @@ def run_test(): 'SKxuS56e99jpCeD9mMQ5o63zoGPakNdM9HCvt4Vt2cypvRjCdvGJ', 'zchFELwBxqsAubsLQ8yZgPCDDGukjXJssgCbiTPwFNmFwn9haLnDatzfhLdZzJT4PcU4o2yr92B52UFirUzEdF6ZYM2gBkM' ) -from mmgen.opts import init +from mmgen.cfg import Config -cfg = init() +cfg = Config(process_opts=True) run_test() diff --git a/test/objattrtest.py b/test/objattrtest.py index eff3480b..ed109a5d 100755 --- a/test/objattrtest.py +++ b/test/objattrtest.py @@ -54,7 +54,7 @@ opts_data = { } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) from test.include.common import set_globals set_globals(cfg) diff --git a/test/objtest.py b/test/objtest.py index 745d67b0..44979faa 100755 --- a/test/objtest.py +++ b/test/objtest.py @@ -60,7 +60,7 @@ opts_data = { } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) from test.include.common import set_globals set_globals(cfg) diff --git a/test/scrambletest.py b/test/scrambletest.py index f3bea7b0..a0b1a7c0 100755 --- a/test/scrambletest.py +++ b/test/scrambletest.py @@ -50,7 +50,7 @@ If no command is given, the whole suite of tests is run. } } -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) from test.include.common import set_globals,end_msg,green diff --git a/test/test.py b/test/test.py index d6e89c64..c4d628ef 100755 --- a/test/test.py +++ b/test/test.py @@ -65,7 +65,7 @@ def create_shm_dir(data_dir,trash_dir): os.symlink(dest,trash_dir) dest = os.path.join(shm_dir,os.path.basename(data_dir)) - shutil.move(data_dir,dest) # data_dir was created by opts.init() + shutil.move(data_dir,dest) # data_dir was created by Config() os.symlink(dest,data_dir) return shm_dir @@ -167,7 +167,7 @@ environment var } # we need some opt values before running opts.init, so parse without initializing: -po = opts.init(opts_data,parse_only=True) +po = Config(opts_data=opts_data,parse_only=True)._parsed_opts from test.include.common import set_globals,get_test_data_dir @@ -179,7 +179,7 @@ if not po.user_opts.get('skipping_deps'): except: pass # step 2: opts.init will create new data_dir in ./test (if not cfg.skipping_deps) -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) set_globals(cfg) diff --git a/test/tooltest.py b/test/tooltest.py index 8595e6d2..71dd8e01 100755 --- a/test/tooltest.py +++ b/test/tooltest.py @@ -55,7 +55,7 @@ If no command is given, the whole suite of tests is run. sys.argv = [sys.argv[0]] + ['--skip-cfg-file'] + sys.argv[1:] -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) set_globals(cfg) diff --git a/test/tooltest2.py b/test/tooltest2.py index e27e36e6..e2756de4 100755 --- a/test/tooltest2.py +++ b/test/tooltest2.py @@ -91,8 +91,8 @@ If no command is given, the whole suite of tests is run. sys.argv = [sys.argv[0]] + ['--skip-cfg-file'] + sys.argv[1:] -cfg = opts.init( - opts_data, +cfg = Config( + opts_data = opts_data, init_opts = { 'usr_randchars': 0, 'hash_preset': '1', diff --git a/test/unit_tests.py b/test/unit_tests.py index 6de98c50..d5c29876 100755 --- a/test/unit_tests.py +++ b/test/unit_tests.py @@ -54,7 +54,7 @@ If no test is specified, all available tests are run sys.argv.insert(1,'--skip-cfg-file') -cfg = opts.init(opts_data) +cfg = Config(opts_data=opts_data) type(cfg)._reset_ok += ('use_internal_keccak_module','debug_addrlist')