URI: 
       tuse functools.wraps() for some wrappers - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit ff485cee62d33c5f6f95a425839026fa8872cd02
   DIR parent 859f8ccf8e5c784d9c2e307f5ff4f8cc293ee27d
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Thu,  4 Mar 2021 16:44:13 +0100
       
       use functools.wraps() for some wrappers
       
       tto help debugging
       
       Diffstat:
         M electrum/interface.py               |       9 +++++++--
         M electrum/lnpeer.py                  |       3 +++
         M electrum/util.py                    |       3 +++
       
       3 files changed, 13 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/electrum/interface.py b/electrum/interface.py
       t@@ -35,6 +35,7 @@ from ipaddress import IPv4Network, IPv6Network, ip_address, IPv6Address, IPv4Add
        import itertools
        import logging
        import hashlib
       +import functools
        
        import aiorpcx
        from aiorpcx import TaskGroup
       t@@ -375,10 +376,13 @@ class Interface(Logger):
                # Dump network messages (only for this interface).  Set at runtime from the console.
                self.debug = False
        
       -        asyncio.run_coroutine_threadsafe(
       -            self.network.taskgroup.spawn(self.run()), self.network.asyncio_loop)
                self.taskgroup = SilentTaskGroup()
        
       +        async def spawn_task():
       +            task = await self.network.taskgroup.spawn(self.run())
       +            task.set_name(f"interface::{str(server)}")
       +        asyncio.run_coroutine_threadsafe(spawn_task(), self.network.asyncio_loop)
       +
            @property
            def host(self):
                return self.server.host
       t@@ -476,6 +480,7 @@ class Interface(Logger):
                return sslc
        
            def handle_disconnect(func):
       +        @functools.wraps(func)
                async def wrapper_func(self: 'Interface', *args, **kwargs):
                    try:
                        return await func(self, *args, **kwargs)
   DIR diff --git a/electrum/lnpeer.py b/electrum/lnpeer.py
       t@@ -11,6 +11,7 @@ import os
        import time
        from typing import Tuple, Dict, TYPE_CHECKING, Optional, Union
        from datetime import datetime
       +import functools
        
        import aiorpcx
        
       t@@ -289,6 +290,7 @@ class Peer(Logger):
                    self.announcement_signatures[chan.channel_id].put_nowait(payload)
        
            def handle_disconnect(func):
       +        @functools.wraps(func)
                async def wrapper_func(self, *args, **kwargs):
                    try:
                        return await func(self, *args, **kwargs)
       t@@ -550,6 +552,7 @@ class Peer(Logger):
                # During the channel open flow, if we initiated, we might have used a change address
                # of ours in the funding tx. The funding tx is not part of the wallet history
                # at that point yet, but we should already consider this change address as 'used'.
       +        @functools.wraps(func)
                async def wrapper(self: 'Peer', *args, **kwargs):
                    funding_tx = kwargs['funding_tx']  # type: PartialTransaction
                    wallet = self.lnworker.wallet
   DIR diff --git a/electrum/util.py b/electrum/util.py
       t@@ -45,6 +45,7 @@ import ipaddress
        from ipaddress import IPv4Address, IPv6Address
        import random
        import secrets
       +import functools
        
        import attr
        import aiohttp
       t@@ -1086,6 +1087,7 @@ def make_dir(path, allow_symlink=True):
        def log_exceptions(func):
            """Decorator to log AND re-raise exceptions."""
            assert asyncio.iscoroutinefunction(func), 'func needs to be a coroutine'
       +    @functools.wraps(func)
            async def wrapper(*args, **kwargs):
                self = args[0] if len(args) > 0 else None
                try:
       t@@ -1105,6 +1107,7 @@ def log_exceptions(func):
        def ignore_exceptions(func):
            """Decorator to silently swallow all exceptions."""
            assert asyncio.iscoroutinefunction(func), 'func needs to be a coroutine'
       +    @functools.wraps(func)
            async def wrapper(*args, **kwargs):
                try:
                    return await func(*args, **kwargs)