electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

commit 6192bfce463fbd05e3ccdc851aab24a994a7258c
parent 194ee395e70ad44d19732acd69fe8eec2693f968
Author: SomberNight <somber.night@protonmail.com>
Date:   Thu,  2 Aug 2018 15:38:01 +0200

util.profiler: prepend class name to prints

Diffstat:
Melectrum/util.py | 19+++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/electrum/util.py b/electrum/util.py @@ -32,6 +32,7 @@ import urllib import threading import hmac import stat +import inspect from .i18n import _ @@ -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():