URI: 
       tMerge pull request #3287 from JustinTArthur/clean-up-imports - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit e05854f0045138a68edd5f81c1a8d98e60360f24
   DIR parent 8c84b349b88d9e33e4d6838115770d3d17c4f89a
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Mon, 13 Nov 2017 09:58:59 +0100
       
       Merge pull request #3287 from JustinTArthur/clean-up-imports
       
       Clean up imports
       Diffstat:
         M contrib/make_download               |       2 --
         M contrib/sign_packages               |       3 +--
         M electrum                            |       2 +-
         M gui/qt/__init__.py                  |      15 ++++++++-------
         M gui/qt/address_dialog.py            |       4 ++--
         M gui/qt/address_list.py              |       2 +-
         M gui/qt/contact_list.py              |       5 ++---
         M gui/qt/fee_slider.py                |       2 --
         M gui/qt/history_list.py              |       3 +--
         M gui/qt/installwizard.py             |      12 ++++++------
         M gui/qt/invoice_list.py              |       5 ++---
         M gui/qt/main_window.py               |      26 +++++++++-----------------
         M gui/qt/network_dialog.py            |       2 +-
         M gui/qt/password_dialog.py           |       3 ++-
         M gui/qt/qrcodewidget.py              |       2 +-
         M gui/qt/qrwindow.py                  |      10 +++-------
         M gui/qt/request_list.py              |       4 ++--
         M gui/qt/seed_dialog.py               |       1 +
         M gui/qt/transaction_dialog.py        |       6 ++----
         M gui/qt/util.py                      |       4 +---
         M gui/qt/utxo_list.py                 |       1 -
         M gui/stdio.py                        |       9 +--------
         M gui/text.py                         |       6 ------
         M lib/base_wizard.py                  |       3 +--
         M lib/bitcoin.py                      |       1 -
         M lib/coinchooser.py                  |       7 +------
         M lib/commands.py                     |       8 --------
         M lib/contacts.py                     |      10 ----------
         M lib/daemon.py                       |       9 +--------
         M lib/dnssec.py                       |      11 ++---------
         M lib/exchange_rate.py                |       7 -------
         M lib/i18n.py                         |       5 -----
         M lib/interface.py                    |       5 -----
         M lib/keystore.py                     |       7 +------
         M lib/mnemonic.py                     |       8 --------
         M lib/msqr.py                         |       5 -----
         M lib/network.py                      |      10 ++--------
         M lib/old_mnemonic.py                 |       4 ----
         M lib/paymentrequest.py               |       8 --------
         M lib/pem.py                          |       4 ----
         M lib/plot.py                         |       2 --
         M lib/plugins.py                      |       2 +-
         M lib/rsakey.py                       |       7 -------
         M lib/simple_config.py                |       8 +-------
         M lib/storage.py                      |       5 +----
         M lib/synchronizer.py                 |       9 ++-------
         M lib/tests/test_simple_config.py     |       1 -
         M lib/tests/test_transaction.py       |       3 ---
         M lib/transaction.py                  |       8 +-------
         M lib/util.py                         |       6 ------
         M lib/wallet.py                       |      10 +---------
         M lib/websockets.py                   |       7 +------
         M lib/x509.py                         |       9 +--------
         M plugins/cosigner_pool/qt.py         |       2 --
         M plugins/digitalbitbox/cmdline.py    |       1 -
         M plugins/digitalbitbox/qt.py         |       5 ++---
         M plugins/email_requests/qt.py        |       1 -
         M plugins/keepkey/cmdline.py          |       1 -
         M plugins/ledger/auth2fa.py           |       7 +++----
         M plugins/ledger/ledger.py            |      11 ++++-------
         M plugins/ledger/qt.py                |       4 +---
         M plugins/trezor/plugin.py            |      13 ++++---------
         M plugins/trustedcoin/trustedcoin.py  |       6 ++----
         M scripts/bip70                       |       4 ----
         M scripts/peers                       |       3 +--
         M scripts/util.py                     |       5 +++--
       
       66 files changed, 84 insertions(+), 297 deletions(-)
       ---
   DIR diff --git a/contrib/make_download b/contrib/make_download
       t@@ -1,7 +1,5 @@
        #!/usr/bin/python2
       -import sys
        import re
       -import hashlib
        import os
        
        from versions import version, version_win, version_mac, version_android, version_apk
   DIR diff --git a/contrib/sign_packages b/contrib/sign_packages
       t@@ -1,7 +1,6 @@
        #!/usr/bin/python2
        
       -import sys, re, shutil, os, hashlib
       -import imp
       +import os
        import getpass
        
        if __name__ == '__main__':
   DIR diff --git a/electrum b/electrum
       t@@ -87,7 +87,7 @@ if is_local or is_android:
            imp.load_module('electrum_plugins', *imp.find_module('plugins'))
        
        
       -from electrum import bitcoin, network
       +from electrum import bitcoin
        from electrum import SimpleConfig, Network
        from electrum.wallet import Wallet, Imported_Wallet
        from electrum.storage import WalletStorage
   DIR diff --git a/gui/qt/__init__.py b/gui/qt/__init__.py
       t@@ -23,9 +23,9 @@
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
        
       -import sys
       -import os
        import signal
       +import sys
       +
        
        try:
            import PyQt5
       t@@ -39,11 +39,12 @@ import PyQt5.QtCore as QtCore
        
        from electrum.i18n import _, set_language
        from electrum.plugins import run_hook
       -from electrum import SimpleConfig, Wallet, WalletStorage
       -from electrum.synchronizer import Synchronizer
       -from electrum.verifier import SPV
       -from electrum.util import DebugMem, UserCancelled, InvalidPassword, print_error
       -from electrum.wallet import Abstract_Wallet
       +from electrum import WalletStorage
       +# from electrum.synchronizer import Synchronizer
       +# from electrum.verifier import SPV
       +# from electrum.util import DebugMem
       +from electrum.util import UserCancelled, print_error
       +# from electrum.wallet import Abstract_Wallet
        
        from .installwizard import InstallWizard, GoBack
        
   DIR diff --git a/gui/qt/address_dialog.py b/gui/qt/address_dialog.py
       t@@ -25,9 +25,9 @@
        
        from electrum.i18n import _
        
       -import PyQt5
       -from PyQt5.QtGui import *
        from PyQt5.QtCore import *
       +from PyQt5.QtGui import *
       +from PyQt5.QtWidgets import *
        
        from .util import *
        from .history_list import HistoryList
   DIR diff --git a/gui/qt/address_list.py b/gui/qt/address_list.py
       t@@ -26,7 +26,7 @@ import webbrowser
        
        from .util import *
        from electrum.i18n import _
       -from electrum.util import block_explorer_URL, format_satoshis, format_time
       +from electrum.util import block_explorer_URL
        from electrum.plugins import run_hook
        from electrum.bitcoin import is_address
        
   DIR diff --git a/gui/qt/contact_list.py b/gui/qt/contact_list.py
       t@@ -26,14 +26,13 @@ import webbrowser
        
        from electrum.i18n import _
        from electrum.bitcoin import is_address
       -from electrum.util import block_explorer_URL, format_satoshis, format_time, age
       +from electrum.util import block_explorer_URL
        from electrum.plugins import run_hook
       -from electrum.paymentrequest import PR_UNPAID, PR_PAID, PR_UNKNOWN, PR_EXPIRED
        from PyQt5.QtGui import *
        from PyQt5.QtCore import *
        from PyQt5.QtWidgets import (
            QAbstractItemView, QFileDialog, QMenu, QTreeWidgetItem)
       -from .util import MyTreeWidget, pr_tooltips, pr_icons
       +from .util import MyTreeWidget
        
        
        class ContactList(MyTreeWidget):
   DIR diff --git a/gui/qt/fee_slider.py b/gui/qt/fee_slider.py
       t@@ -1,10 +1,8 @@
        
        from electrum.i18n import _
        
       -import PyQt5
        from PyQt5.QtGui import *
        from PyQt5.QtCore import *
       -import PyQt5.QtCore as QtCore
        from PyQt5.QtWidgets import QSlider, QToolTip
        
        import threading
   DIR diff --git a/gui/qt/history_list.py b/gui/qt/history_list.py
       t@@ -27,8 +27,7 @@ import webbrowser
        
        from .util import *
        from electrum.i18n import _
       -from electrum.util import block_explorer_URL, format_satoshis, format_time
       -from electrum.plugins import run_hook
       +from electrum.util import block_explorer_URL
        from electrum.util import timestamp_to_datetime, profiler
        
        
   DIR diff --git a/gui/qt/installwizard.py b/gui/qt/installwizard.py
       t@@ -1,12 +1,13 @@
        
       -import sys
        import os
       +import sys
       +import threading
       +import traceback
        
       -from PyQt5.QtGui import *
        from PyQt5.QtCore import *
       -import PyQt5.QtCore as QtCore
       +from PyQt5.QtGui import *
       +from PyQt5.QtWidgets import *
        
       -import electrum
        from electrum import Wallet, WalletStorage
        from electrum.util import UserCancelled, InvalidPassword
        from electrum.base_wizard import BaseWizard
       t@@ -55,9 +56,8 @@ class CosignWidget(QWidget):
                self.update()
        
            def paintEvent(self, event):
       -        import math
                bgcolor = self.palette().color(QPalette.Background)
       -        pen = QPen(bgcolor, 7, QtCore.Qt.SolidLine)
       +        pen = QPen(bgcolor, 7, Qt.SolidLine)
                qp = QPainter()
                qp.begin(self)
                qp.setPen(pen)
   DIR diff --git a/gui/qt/invoice_list.py b/gui/qt/invoice_list.py
       t@@ -23,11 +23,10 @@
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
        
       -
        from .util import *
        from electrum.i18n import _
       -from electrum.util import block_explorer_URL, format_satoshis, format_time
       -from electrum.plugins import run_hook
       +from electrum.util import format_time
       +
        
        class InvoiceList(MyTreeWidget):
            filter_columns = [0, 1, 2, 3]  # Date, Requestor, Description, Amount
   DIR diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
       t@@ -25,7 +25,6 @@
        import sys, time, threading
        import os, json, traceback
        import shutil
       -import socket
        import weakref
        import webbrowser
        import csv
       t@@ -33,13 +32,11 @@ from decimal import Decimal
        import base64
        from functools import partial
        
       -import PyQt5
       +from PyQt5.QtCore import Qt
        from PyQt5.QtGui import *
       -from PyQt5.QtCore import *
       -import PyQt5.QtCore as QtCore
       +from PyQt5.QtWidgets import *
        
        from electrum.util import bh2u, bfh
       -from . import icons_rc
        
        from electrum import keystore
        from electrum.bitcoin import COIN, is_address, TYPE_ADDRESS
       t@@ -48,25 +45,21 @@ from electrum.i18n import _
        from electrum.util import (format_time, format_satoshis, PrintError,
                                   format_satoshis_plain, NotEnoughFunds,
                                   UserCancelled)
       -from electrum import Transaction, mnemonic
       +from electrum import Transaction
        from electrum import util, bitcoin, commands, coinchooser
       -from electrum import SimpleConfig, paymentrequest
       -from electrum.wallet import Wallet, Multisig_Wallet
       +from electrum import paymentrequest
       +from electrum.wallet import Multisig_Wallet
        try:
            from electrum.plot import plot_history
        except:
            plot_history = None
        
       -from .amountedit import AmountEdit, BTCAmountEdit, MyLineEdit, BTCkBEdit
       +from .amountedit import AmountEdit, BTCAmountEdit, MyLineEdit
        from .qrcodewidget import QRCodeWidget, QRDialog
        from .qrtextedit import ShowQRTextEdit, ScanQRTextEdit
        from .transaction_dialog import show_transaction
        from .fee_slider import FeeSlider
        
       -
       -from electrum import ELECTRUM_VERSION
       -import re
       -
        from .util import *
        
        
       t@@ -85,11 +78,11 @@ class StatusBarButton(QPushButton):
                self.func()
        
            def keyPressEvent(self, e):
       -        if e.key() == QtCore.Qt.Key_Return:
       +        if e.key() == Qt.Key_Return:
                    self.func()
        
        
       -from electrum.paymentrequest import PR_UNPAID, PR_PAID, PR_UNKNOWN, PR_EXPIRED
       +from electrum.paymentrequest import PR_PAID
        
        
        class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
       t@@ -928,7 +921,6 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
            def new_payment_request(self):
                addr = self.wallet.get_unused_address()
                if addr is None:
       -            from electrum.wallet import Imported_Wallet
                    if not self.wallet.is_deterministic():
                        msg = [
                            _('No more addresses in your wallet.'),
       t@@ -2071,7 +2063,7 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, PrintError):
                return d.run()
        
            def tx_from_text(self, txt):
       -        from electrum.transaction import tx_from_str, Transaction
       +        from electrum.transaction import tx_from_str
                try:
                    tx = tx_from_str(txt)
                    return Transaction(tx)
   DIR diff --git a/gui/qt/network_dialog.py b/gui/qt/network_dialog.py
       t@@ -27,11 +27,11 @@ import socket
        
        from PyQt5.QtGui import *
        from PyQt5.QtCore import *
       +from PyQt5.QtWidgets import *
        import PyQt5.QtCore as QtCore
        
        from electrum.i18n import _
        from electrum.bitcoin import NetworkConstants
       -from electrum.network import serialize_server, deserialize_server
        from electrum.util import print_error
        
        from .util import *
   DIR diff --git a/gui/qt/password_dialog.py b/gui/qt/password_dialog.py
       t@@ -23,8 +23,9 @@
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
        
       +from PyQt5.QtCore import Qt
        from PyQt5.QtGui import *
       -from PyQt5.QtCore import *
       +from PyQt5.QtWidgets import *
        from electrum.i18n import _
        from .util import *
        import re
   DIR diff --git a/gui/qt/qrcodewidget.py b/gui/qt/qrcodewidget.py
       t@@ -1,6 +1,6 @@
        
       -from PyQt5.QtGui import *
        from PyQt5.QtCore import *
       +from PyQt5.QtGui import *
        import PyQt5.QtGui as QtGui
        from PyQt5.QtWidgets import (
            QApplication, QVBoxLayout, QTextEdit, QHBoxLayout, QPushButton, QWidget)
   DIR diff --git a/gui/qt/qrwindow.py b/gui/qt/qrwindow.py
       t@@ -23,15 +23,11 @@
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
        
       -import re
        import platform
       -from decimal import Decimal
        
       +from PyQt5.QtCore import Qt
        from PyQt5.QtGui import *
       -from PyQt5.QtCore import *
       -import PyQt5.QtCore as QtCore
       -import PyQt5.QtGui as QtGui
       -from PyQt5.QtWidgets import (QHBoxLayout, QVBoxLayout, QLabel, QWidget)
       +from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QLabel, QWidget
        
        from electrum_gui.qt.qrcodewidget import QRCodeWidget
        from electrum.i18n import _
       t@@ -55,7 +51,7 @@ class QR_Window(QWidget):
                self.address = ''
                self.label = ''
                self.amount = 0
       -        self.setFocusPolicy(QtCore.Qt.NoFocus)
       +        self.setFocusPolicy(Qt.NoFocus)
        
                main_box = QHBoxLayout()
        
   DIR diff --git a/gui/qt/request_list.py b/gui/qt/request_list.py
       t@@ -24,9 +24,9 @@
        # SOFTWARE.
        
        from electrum.i18n import _
       -from electrum.util import block_explorer_URL, format_satoshis, format_time, age
       +from electrum.util import format_time, age
        from electrum.plugins import run_hook
       -from electrum.paymentrequest import PR_UNPAID, PR_PAID, PR_UNKNOWN, PR_EXPIRED
       +from electrum.paymentrequest import PR_UNKNOWN
        from PyQt5.QtGui import *
        from PyQt5.QtCore import *
        from PyQt5.QtWidgets import QTreeWidgetItem, QMenu
   DIR diff --git a/gui/qt/seed_dialog.py b/gui/qt/seed_dialog.py
       t@@ -25,6 +25,7 @@
        
        from PyQt5.QtGui import *
        from PyQt5.QtCore import *
       +from PyQt5.QtWidgets import *
        from electrum.i18n import _
        
        from .util import *
   DIR diff --git a/gui/qt/transaction_dialog.py b/gui/qt/transaction_dialog.py
       t@@ -26,12 +26,10 @@ import copy
        import datetime
        import json
        
       -import PyQt5
       -from PyQt5.QtGui import *
        from PyQt5.QtCore import *
       -import PyQt5.QtCore as QtCore
       +from PyQt5.QtGui import *
       +from PyQt5.QtWidgets import *
        
       -from electrum import transaction
        from electrum.bitcoin import base_encode
        from electrum.i18n import _
        from electrum.plugins import run_hook
   DIR diff --git a/gui/qt/util.py b/gui/qt/util.py
       t@@ -1,8 +1,6 @@
        import os.path
        import time
       -import traceback
        import sys
       -import threading
        import platform
        import queue
        from collections import namedtuple
       t@@ -23,7 +21,7 @@ else:
        
        dialogs = []
        
       -from electrum.paymentrequest import PR_UNPAID, PR_PAID, PR_UNKNOWN, PR_EXPIRED
       +from electrum.paymentrequest import PR_UNPAID, PR_PAID, PR_EXPIRED
        
        pr_icons = {
            PR_UNPAID:":icons/unpaid.png",
   DIR diff --git a/gui/qt/utxo_list.py b/gui/qt/utxo_list.py
       t@@ -24,7 +24,6 @@
        # SOFTWARE.
        from .util import *
        from electrum.i18n import _
       -from electrum.bitcoin import is_address
        
        
        class UTXOList(MyTreeWidget):
   DIR diff --git a/gui/stdio.py b/gui/stdio.py
       t@@ -1,17 +1,10 @@
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
       -import six
        from decimal import Decimal
        _ = lambda x:x
        #from i18n import _
        from electrum import WalletStorage, Wallet
        from electrum.util import format_satoshis, set_verbosity
        from electrum.bitcoin import is_address, COIN, TYPE_ADDRESS
       -from electrum.network import filter_protocol
       -import sys, getpass, datetime
       +import getpass, datetime
        
        # minimal fdisk like gui for console usage
        # written by rofl0r, with some bits stolen from the text gui (ncurses)
   DIR diff --git a/gui/text.py b/gui/text.py
       t@@ -1,9 +1,3 @@
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
       -import six
        import tty, sys
        import curses, datetime, locale
        from decimal import Decimal
   DIR diff --git a/lib/base_wizard.py b/lib/base_wizard.py
       t@@ -27,9 +27,8 @@ import os
        from . import bitcoin
        from . import keystore
        from .keystore import bip44_derivation
       -from .wallet import Wallet, Imported_Wallet, Standard_Wallet, Multisig_Wallet, wallet_types
       +from .wallet import Imported_Wallet, Standard_Wallet, Multisig_Wallet, wallet_types
        from .i18n import _
       -from .plugins import run_hook
        
        
        class BaseWizard(object):
   DIR diff --git a/lib/bitcoin.py b/lib/bitcoin.py
       t@@ -25,7 +25,6 @@
        
        import hashlib
        import base64
       -import re
        import hmac
        import os
        import json
   DIR diff --git a/lib/coinchooser.py b/lib/coinchooser.py
       t@@ -22,17 +22,12 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        from collections import defaultdict, namedtuple
        from math import floor, log10
        
        from .bitcoin import sha256, COIN, TYPE_ADDRESS
        from .transaction import Transaction
       -from .util import NotEnoughFunds, PrintError, profiler
       +from .util import NotEnoughFunds, PrintError
        
        
        # A simple deterministic PRNG.  Used to deterministically shuffle a
   DIR diff --git a/lib/commands.py b/lib/commands.py
       t@@ -22,15 +22,9 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
        
       -import os
        import sys
        import datetime
       -import time
        import copy
        import argparse
        import json
       t@@ -45,9 +39,7 @@ from .import bitcoin
        from .bitcoin import is_address,  hash_160, COIN, TYPE_ADDRESS
        from .i18n import _
        from .transaction import Transaction
       -from .import paymentrequest
        from .paymentrequest import PR_PAID, PR_UNPAID, PR_UNKNOWN, PR_EXPIRED
       -from .import contacts
        from .plugins import run_hook
        
        known_commands = {}
   DIR diff --git a/lib/contacts.py b/lib/contacts.py
       t@@ -20,22 +20,12 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
       -
       -import sys
        import re
        import dns
       -import os
        import json
        
        from . import bitcoin
        from . import dnssec
       -from .util import print_error
       -from .i18n import _
        
        
        class Contacts(dict):
   DIR diff --git a/lib/daemon.py b/lib/daemon.py
       t@@ -22,14 +22,8 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        import ast
        import os
       -import sys
        import time
        
        # from jsonrpc import JSONRPCResponseManager
       t@@ -39,12 +33,11 @@ from jsonrpclib.SimpleJSONRPCServer import SimpleJSONRPCServer, SimpleJSONRPCReq
        from .version import ELECTRUM_VERSION
        from .network import Network
        from .util import json_decode, DaemonThread
       -from .util import print_msg, print_error, print_stderr, UserCancelled
       +from .util import print_error
        from .wallet import Wallet
        from .storage import WalletStorage
        from .commands import known_commands, Commands
        from .simple_config import SimpleConfig
       -from .plugins import run_hook
        from .exchange_rate import FxThread
        
        
   DIR diff --git a/lib/dnssec.py b/lib/dnssec.py
       t@@ -22,12 +22,6 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
       -
        
        # Check DNSSEC trust chain.
        # Todo: verify expiration dates
       t@@ -37,8 +31,8 @@ from __future__ import unicode_literals
        #  https://github.com/rthalley/dnspython/blob/master/tests/test_dnssec.py
        
        
       -import traceback
       -import sys
       +# import traceback
       +# import sys
        import time
        import struct
        
       t@@ -62,7 +56,6 @@ import dns.rdtypes.ANY.SOA
        import dns.rdtypes.ANY.TXT
        import dns.rdtypes.IN.A
        import dns.rdtypes.IN.AAAA
       -from dns.exception import DNSException
        
        
        # Pure-Python version of dns.dnssec._validate_rsig
   DIR diff --git a/lib/exchange_rate.py b/lib/exchange_rate.py
       t@@ -1,22 +1,15 @@
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        from datetime import datetime
        import inspect
        import requests
        import sys
        from threading import Thread
        import time
       -import traceback
        import csv
        from decimal import Decimal
        
        from .bitcoin import COIN
        from .i18n import _
        from .util import PrintError, ThreadJob
       -from .util import format_satoshis
        
        
        # See https://en.wikipedia.org/wiki/ISO_4217
   DIR diff --git a/lib/i18n.py b/lib/i18n.py
       t@@ -22,11 +22,6 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        import gettext, os
        
        LOCALE_DIR = os.path.join(os.path.dirname(__file__), 'locale')
   DIR diff --git a/lib/interface.py b/lib/interface.py
       t@@ -22,11 +22,6 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        import os
        import re
        import socket
   DIR diff --git a/lib/keystore.py b/lib/keystore.py
       t@@ -24,21 +24,16 @@
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
        
       -import struct
       -
        from unicodedata import normalize
        
       -from .version import *
        from . import bitcoin
       -from .bitcoin import pw_encode, pw_decode, bip32_root, bip32_private_derivation, bip32_public_derivation, bip32_private_key, deserialize_xprv, deserialize_xpub
       -from .bitcoin import public_key_from_private_key, public_key_to_p2pkh
        from .bitcoin import *
        
       -from .bitcoin import is_old_seed, is_new_seed, is_seed
        from .util import PrintError, InvalidPassword, hfu
        from .mnemonic import Mnemonic, load_wordlist
        from .plugins import run_hook
        
       +
        class KeyStore(PrintError):
        
            def has_seed(self):
   DIR diff --git a/lib/mnemonic.py b/lib/mnemonic.py
       t@@ -22,12 +22,6 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
       -
        import os
        import hmac
        import math
       t@@ -41,7 +35,6 @@ import pbkdf2
        from .util import print_error
        from .bitcoin import is_old_seed, is_new_seed
        from . import version
       -from . import i18n
        
        # http://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/e_asia.html
        CJK_INTERVALS = [
       t@@ -170,7 +163,6 @@ class Mnemonic(object):
                return i % custom_entropy == 0
        
            def make_seed(self, seed_type='standard', num_bits=132, custom_entropy=1):
       -        from . import version
                prefix = version.seed_prefix(seed_type)
                # increase num_bits in order to obtain a uniform distibution for the last word
                bpw = math.log(len(self.wordlist), 2)
   DIR diff --git a/lib/msqr.py b/lib/msqr.py
       t@@ -1,8 +1,3 @@
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        # from http://eli.thegreenplace.net/2009/03/07/computing-modular-square-roots-in-python/
        
        def modular_sqrt(a, p):
   DIR diff --git a/lib/network.py b/lib/network.py
       t@@ -21,21 +21,15 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        import time
        import queue
        import os
        import stat
        import errno
       -import sys
        import random
       +import re
        import select
       -import traceback
       -from collections import defaultdict, deque
       +from collections import defaultdict
        import threading
        import socket
        import json
   DIR diff --git a/lib/old_mnemonic.py b/lib/old_mnemonic.py
       t@@ -22,10 +22,6 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
        
        
        # list of words from http://en.wiktionary.org/wiki/Wiktionary:Frequency_lists/Contemporary_poetry
   DIR diff --git a/lib/paymentrequest.py b/lib/paymentrequest.py
       t@@ -22,16 +22,8 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        import hashlib
       -import os.path
       -import re
        import sys
       -import threading
        import time
        import traceback
        import json
   DIR diff --git a/lib/pem.py b/lib/pem.py
       t@@ -22,10 +22,6 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
        
        
        # This module uses code from TLSLlite
   DIR diff --git a/lib/plot.py b/lib/plot.py
       t@@ -4,8 +4,6 @@ from electrum.i18n import _
        
        import datetime
        from collections import defaultdict
       -
       -from electrum.util import format_satoshis
        from electrum.bitcoin import COIN
        
        import matplotlib
   DIR diff --git a/lib/plugins.py b/lib/plugins.py
       t@@ -31,7 +31,7 @@ import pkgutil
        import time
        import threading
        
       -from .util import *
       +from .util import print_error
        from .i18n import _
        from .util import profiler, PrintError, DaemonThread, UserCancelled, ThreadJob
        from . import bitcoin
   DIR diff --git a/lib/rsakey.py b/lib/rsakey.py
       t@@ -33,15 +33,8 @@
        
        """Pure-Python RSA implementation."""
        
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        import os
        import math
       -import base64
       -import binascii
        import hashlib
        
        from .pem import *
   DIR diff --git a/lib/simple_config.py b/lib/simple_config.py
       t@@ -1,9 +1,3 @@
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
       -import ast
        import json
        import threading
        import time
       t@@ -11,7 +5,7 @@ import os
        import stat
        
        from copy import deepcopy
       -from .util import user_dir, print_error, print_msg, print_stderr, PrintError
       +from .util import user_dir, print_error, print_stderr, PrintError
        
        from .bitcoin import MAX_FEE_RATE, FEE_TARGETS
        
   DIR diff --git a/lib/storage.py b/lib/storage.py
       t@@ -25,8 +25,6 @@
        import os
        import ast
        import threading
       -import random
       -import time
        import json
        import copy
        import re
       t@@ -35,8 +33,7 @@ import pbkdf2, hmac, hashlib
        import base64
        import zlib
        
       -from .i18n import _
       -from .util import NotEnoughFunds, PrintError, profiler
       +from .util import PrintError, profiler
        from .plugins import run_hook, plugin_loaders
        from .keystore import bip44_derivation
        from . import bitcoin
   DIR diff --git a/lib/synchronizer.py b/lib/synchronizer.py
       t@@ -22,17 +22,12 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        from threading import Lock
        import hashlib
        
       -from .bitcoin import Hash, hash_encode
       +# from .bitcoin import Hash, hash_encode
        from .transaction import Transaction
       -from .util import print_error, print_msg, ThreadJob, bh2u
       +from .util import ThreadJob, bh2u
        
        
        class Synchronizer(ThreadJob):
   DIR diff --git a/lib/tests/test_simple_config.py b/lib/tests/test_simple_config.py
       t@@ -4,7 +4,6 @@ import os
        import unittest
        import tempfile
        import shutil
       -import json
        
        from io import StringIO
        from lib.simple_config import (SimpleConfig, read_system_config,
   DIR diff --git a/lib/tests/test_transaction.py b/lib/tests/test_transaction.py
       t@@ -2,13 +2,10 @@ import unittest
        from lib import transaction
        from lib.bitcoin import TYPE_ADDRESS
        
       -import pprint
        from lib.keystore import xpubkey_to_address
        
        from lib.util import bh2u
        
       -from lib.util import bh2u
       -
        unsigned_blob = '01000000012a5c9a94fcde98f5581cd00162c60a13936ceb75389ea65bf38633b424eb4031000000005701ff4c53ff0488b21e03ef2afea18000000089689bff23e1e7fb2f161daa37270a97a3d8c2e537584b2d304ecb47b86d21fc021b010d3bd425f8cf2e04824bfdf1f1f5ff1d51fadd9a41f9e3fb8dd3403b1bfe00000000ffffffff0140420f00000000001976a914230ac37834073a42146f11ef8414ae929feaafc388ac00000000'
        signed_blob = '01000000012a5c9a94fcde98f5581cd00162c60a13936ceb75389ea65bf38633b424eb4031000000006c493046022100a82bbc57a0136751e5433f41cf000b3f1a99c6744775e76ec764fb78c54ee100022100f9e80b7de89de861dc6fb0c1429d5da72c2b6b2ee2406bc9bfb1beedd729d985012102e61d176da16edd1d258a200ad9759ef63adf8e14cd97f53227bae35cdb84d2f6ffffffff0140420f00000000001976a914230ac37834073a42146f11ef8414ae929feaafc388ac00000000'
        v2_blob = "0200000001191601a44a81e061502b7bfbc6eaa1cef6d1e6af5308ef96c9342f71dbf4b9b5000000006b483045022100a6d44d0a651790a477e75334adfb8aae94d6612d01187b2c02526e340a7fd6c8022028bdf7a64a54906b13b145cd5dab21a26bd4b85d6044e9b97bceab5be44c2a9201210253e8e0254b0c95776786e40984c1aa32a7d03efa6bdacdea5f421b774917d346feffffff026b20fa04000000001976a914024db2e87dd7cfd0e5f266c5f212e21a31d805a588aca0860100000000001976a91421919b94ae5cefcdf0271191459157cdb41c4cbf88aca6240700"
   DIR diff --git a/lib/transaction.py b/lib/transaction.py
       t@@ -27,21 +27,15 @@
        
        # Note: The deserialization code originally comes from ABE.
        
       -from . import bitcoin
       -from .bitcoin import *
       -from .util import print_error, profiler, to_string
       +from .util import print_error, profiler
        
        from . import bitcoin
        from .bitcoin import *
       -import time
       -import sys
        import struct
        
        #
        # Workalike python implementation of Bitcoin's CDataStream class.
        #
       -import struct
       -import random
        from .keystore import xpubkey_to_address, xpubkey_to_pubkey
        
        NO_SIGNATURE = 'ff'
   DIR diff --git a/lib/util.py b/lib/util.py
       t@@ -20,11 +20,6 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        import binascii
        import os, sys, re, json
        from collections import defaultdict
       t@@ -588,7 +583,6 @@ class timeout(Exception):
            pass
        
        import socket
       -import errno
        import json
        import ssl
        import time
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -28,18 +28,14 @@
        
        
        import os
       -import hashlib
       -import ast
        import threading
        import random
        import time
        import json
        import copy
       -import re
       -import stat
        import errno
        from functools import partial
       -from collections import namedtuple, defaultdict
       +from collections import defaultdict
        
        from .i18n import _
        from .util import NotEnoughFunds, PrintError, UserCancelled, profiler, format_satoshis
       t@@ -56,15 +52,12 @@ from . import bitcoin
        from . import coinchooser
        from .synchronizer import Synchronizer
        from .verifier import SPV
       -from .mnemonic import Mnemonic
        
        from . import paymentrequest
        from .paymentrequest import PR_PAID, PR_UNPAID, PR_UNKNOWN, PR_EXPIRED
        from .paymentrequest import InvoiceStore
        from .contacts import Contacts
        
       -from .storage import WalletStorage
       -
        TX_STATUS = [
            _('Replaceable'),
            _('Unconfirmed parent'),
       t@@ -1281,7 +1274,6 @@ class Abstract_Wallet(PrintError):
                self.storage.put('payment_requests', self.receive_requests)
        
            def add_payment_request(self, req, config):
       -        import os
                addr = req['address']
                amount = req.get('amount')
                message = req.get('memo')
   DIR diff --git a/lib/websockets.py b/lib/websockets.py
       t@@ -22,13 +22,8 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
        import queue
       -import threading, os, json, time
       +import threading, os, json
        from collections import defaultdict
        try:
            from SimpleWebSocketServer import WebSocket, SimpleSSLWebSocketServer
   DIR diff --git a/lib/x509.py b/lib/x509.py
       t@@ -22,15 +22,8 @@
        # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
       -from __future__ import absolute_import
       -from __future__ import division
       -from __future__ import print_function
       -from __future__ import unicode_literals
       -
       -from datetime import datetime
       -import sys
        from . import util
       -from .util import profiler, print_error, bh2u
       +from .util import profiler, bh2u
        import ecdsa
        import hashlib
        
   DIR diff --git a/plugins/cosigner_pool/qt.py b/plugins/cosigner_pool/qt.py
       t@@ -23,8 +23,6 @@
        # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        # SOFTWARE.
        
       -import socket
       -import threading
        import time
        from xmlrpc.client import ServerProxy
        
   DIR diff --git a/plugins/digitalbitbox/cmdline.py b/plugins/digitalbitbox/cmdline.py
       t@@ -1,4 +1,3 @@
       -from electrum.util import print_msg
        from .digitalbitbox import DigitalBitboxPlugin
        from ..hw_wallet import CmdLineHandler
        
   DIR diff --git a/plugins/digitalbitbox/qt.py b/plugins/digitalbitbox/qt.py
       t@@ -1,11 +1,10 @@
       -from PyQt5.QtWidgets import (QInputDialog, QLineEdit)
        from ..hw_wallet.qt import QtHandlerBase, QtPluginBase
        from .digitalbitbox import DigitalBitboxPlugin
        
        from electrum.i18n import _
        from electrum.plugins import hook
       -from electrum.wallet import Wallet, Standard_Wallet
       -from electrum.bitcoin import EncodeAES
       +from electrum.wallet import Standard_Wallet
       +
        
        class Plugin(DigitalBitboxPlugin, QtPluginBase):
            icon_unpaired = ":icons/digitalbitbox_unpaired.png"
   DIR diff --git a/plugins/email_requests/qt.py b/plugins/email_requests/qt.py
       t@@ -37,7 +37,6 @@ from email.encoders import encode_base64
        
        from PyQt5.QtGui import *
        from PyQt5.QtCore import *
       -import PyQt5.QtCore as QtCore
        import PyQt5.QtGui as QtGui
        from PyQt5.QtWidgets import (QVBoxLayout, QLabel, QGridLayout, QLineEdit)
        
   DIR diff --git a/plugins/keepkey/cmdline.py b/plugins/keepkey/cmdline.py
       t@@ -1,5 +1,4 @@
        from electrum.plugins import hook
       -from electrum.util import print_msg, raw_input
        from .keepkey import KeepKeyPlugin
        from ..hw_wallet import CmdLineHandler
        
   DIR diff --git a/plugins/ledger/auth2fa.py b/plugins/ledger/auth2fa.py
       t@@ -1,7 +1,6 @@
        from binascii import hexlify, unhexlify
       -import threading
        
       -from PyQt5.Qt import (QDialog, QInputDialog, QLineEdit, QTextEdit, QVBoxLayout, QLabel)
       +from PyQt5.Qt import QDialog, QLineEdit, QTextEdit, QVBoxLayout, QLabel
        import PyQt5.QtCore as QtCore
        from PyQt5.QtWidgets import *
        
       t@@ -9,8 +8,8 @@ from electrum.i18n import _
        from electrum_gui.qt.util import *
        from electrum.util import print_msg
        
       -import os, hashlib, websocket, threading, logging, json, copy
       -from electrum_gui.qt.qrcodewidget import QRCodeWidget, QRDialog
       +import os, hashlib, websocket, logging, json, copy
       +from electrum_gui.qt.qrcodewidget import QRCodeWidget
        from btchip.btchip import *
        
        DEBUG = False
   DIR diff --git a/plugins/ledger/ledger.py b/plugins/ledger/ledger.py
       t@@ -1,19 +1,16 @@
        from struct import pack, unpack
        import hashlib
       -import time
        import sys
       -import os
        import traceback
        
       -import electrum
        from electrum import bitcoin
        from electrum.bitcoin import TYPE_ADDRESS, int_to_hex, var_int
        from electrum.i18n import _
       -from electrum.plugins import BasePlugin, hook
       -from electrum.keystore import Hardware_KeyStore, parse_xpubkey
       -from electrum.transaction import push_script, Transaction
       +from electrum.plugins import BasePlugin
       +from electrum.keystore import Hardware_KeyStore
       +from electrum.transaction import Transaction
        from ..hw_wallet import HW_PluginBase
       -from electrum.util import format_satoshis_plain, print_error, is_verbose, bfh, bh2u
       +from electrum.util import print_error, is_verbose, bfh, bh2u
        
        try:
            import hid
   DIR diff --git a/plugins/ledger/qt.py b/plugins/ledger/qt.py
       t@@ -1,8 +1,6 @@
        import threading
        
       -from PyQt5.Qt import (QDialog, QInputDialog, QLineEdit,
       -                      QVBoxLayout, QLabel)
       -import PyQt5.QtCore as QtCore
       +from PyQt5.Qt import QInputDialog, QLineEdit, QVBoxLayout, QLabel
        
        from electrum.i18n import _
        from .ledger import LedgerPlugin
   DIR diff --git a/plugins/trezor/plugin.py b/plugins/trezor/plugin.py
       t@@ -1,18 +1,13 @@
       -import base64
       -import re
        import threading
        
        from binascii import hexlify, unhexlify
       -from functools import partial
        
        from electrum.util import bfh, bh2u
       -from electrum.bitcoin import (is_segwit_address, b58_address_to_hash160, xpub_from_pubkey,
       -                              public_key_to_p2pkh, EncodeBase58Check,
       -                              TYPE_ADDRESS, TYPE_SCRIPT,
       -                              NetworkConstants)
       +from electrum.bitcoin import (b58_address_to_hash160, xpub_from_pubkey,
       +                              TYPE_ADDRESS, TYPE_SCRIPT, NetworkConstants)
        from electrum.i18n import _
       -from electrum.plugins import BasePlugin, hook
       -from electrum.transaction import deserialize, Transaction
       +from electrum.plugins import BasePlugin
       +from electrum.transaction import deserialize
        from electrum.keystore import Hardware_KeyStore, is_xpubkey, parse_xpubkey
        
        from ..hw_wallet import HW_PluginBase
   DIR diff --git a/plugins/trustedcoin/trustedcoin.py b/plugins/trustedcoin/trustedcoin.py
       t@@ -25,10 +25,8 @@
        
        import socket
        import os
       -import re
        import requests
        import json
       -from hashlib import sha256
        from urllib.parse import urljoin
        from urllib.parse import quote
        
       t@@ -38,9 +36,9 @@ from electrum import keystore
        from electrum.bitcoin import *
        from electrum.mnemonic import Mnemonic
        from electrum import version
       -from electrum.wallet import Multisig_Wallet, Deterministic_Wallet, Wallet
       +from electrum.wallet import Multisig_Wallet, Deterministic_Wallet
        from electrum.i18n import _
       -from electrum.plugins import BasePlugin, run_hook, hook
       +from electrum.plugins import BasePlugin, hook
        from electrum.util import NotEnoughFunds
        
        # signing_xpub is hardcoded so that the wallet can be restored from seed, without TrustedCoin's server
   DIR diff --git a/scripts/bip70 b/scripts/bip70
       t@@ -2,12 +2,8 @@
        # create a BIP70 payment request signed with a certificate
        
        import tlslite
       -import time
       -import hashlib
        
        from electrum.transaction import Transaction
       -from electrum import bitcoin
       -from electrum import x509
        from electrum import paymentrequest
        from electrum import paymentrequest_pb2 as pb2
        
   DIR diff --git a/scripts/peers b/scripts/peers
       t@@ -1,7 +1,6 @@
        #!/usr/bin/env python3
        
       -import util, json
       -from collections import defaultdict
       +import util
        
        from electrum.network import filter_protocol
        from electrum.blockchain import hash_header
   DIR diff --git a/scripts/util.py b/scripts/util.py
       t@@ -1,7 +1,8 @@
       -import select, time, electrum, queue
       +import select, time, queue
       +# import electrum
        from electrum import Connection, Interface, SimpleConfig
        
       -from electrum.network import filter_protocol, parse_servers
       +from electrum.network import parse_servers
        from collections import defaultdict
        
        # electrum.util.set_verbosity(1)