URI: 
       tutil.profiler: prepend class name to prints - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 6192bfce463fbd05e3ccdc851aab24a994a7258c
   DIR parent 194ee395e70ad44d19732acd69fe8eec2693f968
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Thu,  2 Aug 2018 15:38:01 +0200
       
       util.profiler: prepend class name to prints
       
       Diffstat:
         M electrum/util.py                    |      19 +++++++++++++++----
       
       1 file changed, 15 insertions(+), 4 deletions(-)
       ---
   DIR diff --git a/electrum/util.py b/electrum/util.py
       t@@ -32,6 +32,7 @@ import urllib
        import threading
        import hmac
        import stat
       +import inspect
        
        from .i18n import _
        
       t@@ -310,14 +311,24 @@ def constant_time_compare(val1, val2):
        
        # decorator that prints execution time
        def profiler(func):
       -    def do_profile(func, args, kw_args):
       -        n = func.__name__
       +    def get_func_name(args):
       +        arg_names_from_sig = inspect.getfullargspec(func).args
       +        # prepend class name if there is one (and if we can find it)
       +        if len(arg_names_from_sig) > 0 and len(args) > 0 \
       +                and arg_names_from_sig[0] in ('self', 'cls', 'klass'):
       +            classname = args[0].__class__.__name__
       +        else:
       +            classname = ''
       +        name = '{}.{}'.format(classname, func.__name__) if classname else func.__name__
       +        return name
       +    def do_profile(args, kw_args):
       +        name = get_func_name(args)
                t0 = time.time()
                o = func(*args, **kw_args)
                t = time.time() - t0
       -        print_error("[profiler]", n, "%.4f"%t)
       +        print_error("[profiler]", name, "%.4f"%t)
                return o
       -    return lambda *args, **kw_args: do_profile(func, args, kw_args)
       +    return lambda *args, **kw_args: do_profile(args, kw_args)
        
        
        def android_ext_dir():