URI: 
       tWhitelist classes in verbose (-v) option - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 780b2d067c1ade3575e9511e9e3c71a4a39f50c2
   DIR parent 8f17f38b02406ff4f90940ea66dda4b5f93bf227
  HTML Author: Janus <ysangkok@gmail.com>
       Date:   Wed, 18 Jul 2018 13:31:41 +0200
       
       Whitelist classes in verbose (-v) option
       
       Diffstat:
         M electrum/commands.py                |       2 +-
         M electrum/interface.py               |       1 +
         M electrum/network.py                 |       1 +
         M electrum/plugin.py                  |       1 +
         M electrum/util.py                    |      16 +++++++++-------
         M electrum/wallet.py                  |       1 +
         M run_electrum                        |       4 ++--
       
       7 files changed, 16 insertions(+), 10 deletions(-)
       ---
   DIR diff --git a/electrum/commands.py b/electrum/commands.py
       t@@ -829,7 +829,7 @@ def add_network_options(parser):
        
        def add_global_options(parser):
            group = parser.add_argument_group('global options')
       -    group.add_argument("-v", "--verbose", action="store_true", dest="verbose", default=False, help="Show debugging information")
       +    group.add_argument("-v", "--verbosity", dest="verbosity", default='', help="Set verbosity filter")
            group.add_argument("-D", "--dir", dest="electrum_path", help="electrum directory")
            group.add_argument("-P", "--portable", action="store_true", dest="portable", default=False, help="Use local 'electrum_data' directory")
            group.add_argument("-w", "--wallet", dest="wallet_path", help="wallet path")
   DIR diff --git a/electrum/interface.py b/electrum/interface.py
       t@@ -59,6 +59,7 @@ def Connection(server, queue, config_path):
        
        
        class TcpConnection(threading.Thread, util.PrintError):
       +    verbosity_filter = 'i'
        
            def __init__(self, server, queue, config_path):
                threading.Thread.__init__(self)
   DIR diff --git a/electrum/network.py b/electrum/network.py
       t@@ -170,6 +170,7 @@ class Network(util.DaemonThread):
                  get_parameters(), get_server_height(), get_status_value(),
                  is_connected(), set_parameters(), stop()
            """
       +    verbosity_filter = 'n'
        
            def __init__(self, config=None):
                if config is None:
   DIR diff --git a/electrum/plugin.py b/electrum/plugin.py
       t@@ -43,6 +43,7 @@ hooks = {}
        
        
        class Plugins(DaemonThread):
       +    verbosity_filter = 'p'
        
            @profiler
            def __init__(self, config, is_local, gui_name):
   DIR diff --git a/electrum/util.py b/electrum/util.py
       t@@ -164,12 +164,14 @@ class MyEncoder(json.JSONEncoder):
        
        class PrintError(object):
            '''A handy base class'''
       +    verbosity_filter = ''
       +
            def diagnostic_name(self):
                return self.__class__.__name__
        
            def print_error(self, *msg):
       -        # only prints with --verbose flag
       -        print_error("[%s]" % self.diagnostic_name(), *msg)
       +        if self.verbosity_filter in verbosity:
       +            print_stderr("[%s]" % self.diagnostic_name(), *msg)
        
            def print_stderr(self, *msg):
                print_stderr("[%s]" % self.diagnostic_name(), *msg)
       t@@ -213,6 +215,7 @@ class DebugMem(ThreadJob):
        
        class DaemonThread(threading.Thread, PrintError):
            """ daemon thread that terminates cleanly """
       +    verbosity_filter = 'd'
        
            def __init__(self):
                threading.Thread.__init__(self)
       t@@ -263,15 +266,14 @@ class DaemonThread(threading.Thread, PrintError):
                self.print_error("stopped")
        
        
       -# TODO: disable
       -is_verbose = True
       +verbosity = ''
        def set_verbosity(b):
       -    global is_verbose
       -    is_verbose = b
       +    global verbosity
       +    verbosity = b
        
        
        def print_error(*args):
       -    if not is_verbose: return
       +    if not verbosity: return
            print_stderr(*args)
        
        def print_stderr(*args):
   DIR diff --git a/electrum/wallet.py b/electrum/wallet.py
       t@@ -165,6 +165,7 @@ class Abstract_Wallet(AddressSynchronizer):
        
            max_change_outputs = 3
            gap_limit_for_change = 6
       +    verbosity_filter = 'w'
        
            def __init__(self, storage):
                AddressSynchronizer.__init__(self, storage)
   DIR diff --git a/run_electrum b/run_electrum
       t@@ -355,7 +355,7 @@ if __name__ == '__main__':
            # config is an object passed to the various constructors (wallet, interface, gui)
            if is_android:
                config_options = {
       -            'verbose': True,
       +            'verbosity': '',
                    'cmd': 'gui',
                    'gui': 'kivy',
                }
       t@@ -376,7 +376,7 @@ if __name__ == '__main__':
                config_options['electrum_path'] = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'electrum_data')
        
            # kivy sometimes freezes when we write to sys.stderr
       -    set_verbosity(config_options.get('verbose') and config_options.get('gui')!='kivy')
       +    set_verbosity(config_options.get('verbosity') if config_options.get('gui') != 'kivy' else '')
        
            # check uri
            uri = config_options.get('url')