commit 99d18a48f2e22604b8fdfbc236ce5d58e17db0c2
parent 082a83dd85ae8aa8a3faf10ef12d360a7e22ac42
Author: SomberNight <somber.night@protonmail.com>
Date: Thu, 25 Oct 2018 23:01:53 +0200
types: make some import conditional
Diffstat:
3 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/electrum/address_synchronizer.py b/electrum/address_synchronizer.py
@@ -25,6 +25,7 @@ import threading
import asyncio
import itertools
from collections import defaultdict
+from typing import TYPE_CHECKING
from . import bitcoin
from .bitcoin import COINBASE_MATURITY, TYPE_ADDRESS, TYPE_PUBKEY
@@ -34,8 +35,10 @@ from .synchronizer import Synchronizer
from .verifier import SPV
from .blockchain import hash_header
from .i18n import _
-from .storage import WalletStorage
-from .network import Network
+
+if TYPE_CHECKING:
+ from .storage import WalletStorage
+ from .network import Network
TX_HEIGHT_LOCAL = -2
@@ -56,7 +59,7 @@ class AddressSynchronizer(PrintError):
inherited by wallet
"""
- def __init__(self, storage: WalletStorage):
+ def __init__(self, storage: 'WalletStorage'):
self.storage = storage
self.network = None # type: Network
# verifier (SPV) and synchronizer are started in start_network
diff --git a/electrum/commands.py b/electrum/commands.py
@@ -32,7 +32,7 @@ import ast
import base64
from functools import wraps
from decimal import Decimal
-from typing import Optional
+from typing import Optional, TYPE_CHECKING
from .import util, ecc
from .util import bfh, bh2u, format_satoshis, json_decode, print_error, json_encode
@@ -46,8 +46,10 @@ from .storage import WalletStorage
from . import keystore
from .wallet import Wallet, Imported_Wallet, Abstract_Wallet
from .mnemonic import Mnemonic
-from .network import Network
-from .simple_config import SimpleConfig
+
+if TYPE_CHECKING:
+ from .network import Network
+ from .simple_config import SimpleConfig
known_commands = {}
diff --git a/electrum/wallet.py b/electrum/wallet.py
@@ -38,6 +38,7 @@ import traceback
from functools import partial
from numbers import Number
from decimal import Decimal
+from typing import TYPE_CHECKING
from .i18n import _
from .util import (NotEnoughFunds, PrintError, UserCancelled, profiler,
@@ -59,8 +60,10 @@ from .address_synchronizer import (AddressSynchronizer, TX_HEIGHT_LOCAL,
from .paymentrequest import (PR_PAID, PR_UNPAID, PR_UNKNOWN, PR_EXPIRED,
InvoiceStore)
from .contacts import Contacts
-from .network import Network
-from .simple_config import SimpleConfig
+
+if TYPE_CHECKING:
+ from .network import Network
+ from .simple_config import SimpleConfig
TX_STATUS = [
@@ -72,18 +75,18 @@ TX_STATUS = [
-def relayfee(network: Network):
+def relayfee(network: 'Network'):
from .simple_config import FEERATE_DEFAULT_RELAY
MAX_RELAY_FEE = 50000
f = network.relay_fee if network and network.relay_fee else FEERATE_DEFAULT_RELAY
return min(f, MAX_RELAY_FEE)
-def dust_threshold(network: Network):
+def dust_threshold(network: 'Network'):
# Change <= dust threshold is added to the tx fee
return 182 * 3 * relayfee(network) / 1000
-def append_utxos_to_inputs(inputs, network: Network, pubkey, txin_type, imax):
+def append_utxos_to_inputs(inputs, network: 'Network', pubkey, txin_type, imax):
if txin_type != 'p2pk':
address = bitcoin.pubkey_to_address(txin_type, pubkey)
scripthash = bitcoin.address_to_scripthash(address)
@@ -106,7 +109,7 @@ def append_utxos_to_inputs(inputs, network: Network, pubkey, txin_type, imax):
item['num_sig'] = 1
inputs.append(item)
-def sweep_preparations(privkeys, network: Network, imax=100):
+def sweep_preparations(privkeys, network: 'Network', imax=100):
def find_utxos_for_privkey(txin_type, privkey, compressed):
pubkey = ecc.ECPrivkey(privkey).get_public_key_hex(compressed=compressed)
@@ -132,7 +135,7 @@ def sweep_preparations(privkeys, network: Network, imax=100):
return inputs, keypairs
-def sweep(privkeys, network: Network, config: SimpleConfig, recipient, fee=None, imax=100):
+def sweep(privkeys, network: 'Network', config: 'SimpleConfig', recipient, fee=None, imax=100):
inputs, keypairs = sweep_preparations(privkeys, network, imax)
total = sum(i.get('value') for i in inputs)
if fee is None: