diff --git a/electrum/commands.py b/electrum/commands.py index 2c1e338fd..3ca2701c3 100644 --- a/electrum/commands.py +++ b/electrum/commands.py @@ -1574,6 +1574,9 @@ def plugin_command(s, plugin_name): @command(s) @wraps(func) async def func_wrapper(*args, **kwargs): + cmd_runner = args[0] # type: Commands + daemon = cmd_runner.daemon + kwargs['plugin'] = daemon._plugins.get_plugin(plugin_name) return await func(*args, **kwargs) setattr(Commands, name, func_wrapper) return func_wrapper @@ -1838,6 +1841,8 @@ def get_parser(): if optname in ['wallet_path', 'wallet']: add_wallet_option(p) continue + if optname in ['plugin']: + continue a, help = command_options[optname] b = '--' + optname action = "store_true" if default is False else 'store' diff --git a/electrum/plugins/labels/commands.py b/electrum/plugins/labels/commands.py index e74fcf98c..7b4e1100e 100644 --- a/electrum/plugins/labels/commands.py +++ b/electrum/plugins/labels/commands.py @@ -7,16 +7,14 @@ if TYPE_CHECKING: plugin_name = "labels" + @plugin_command('w', plugin_name) -async def push(self: 'Commands', wallet=None) -> int: +async def push(self: 'Commands', plugin: 'LabelsPlugin' = None, wallet=None) -> int: """ push labels to server """ - plugin: 'LabelsPlugin' = self.daemon._plugins.get_plugin(plugin_name) return await plugin.push_thread(wallet) @plugin_command('w', plugin_name) -async def pull(self: 'Commands', wallet=None) -> int: +async def pull(self: 'Commands', plugin: 'LabelsPlugin' = None, wallet=None) -> int: """ pull labels from server """ - assert wallet is not None - plugin: 'LabelsPlugin' = self.daemon._plugins.get_plugin(plugin_name) return await plugin.pull_thread(wallet, force=False)