tMerge pull request #1189 from kyuupichan/if-cleanup - electrum - Electrum Bitcoin wallet (HTM) git clone https://git.parazyd.org/electrum (DIR) Log (DIR) Files (DIR) Refs (DIR) Submodules --- (DIR) commit 5e2e82d5166df32e314818da852c0a721554bde4 (DIR) parent 1fcd8de290abf3094bd04e0a2f5e2df04bcca546 (HTM) Author: ThomasV <electrumdev@gmail.com> Date: Tue, 5 May 2015 12:45:42 +0200 Merge pull request #1189 from kyuupichan/if-cleanup First of several incremental patches tightening up interface.py. Diffstat: M gui/qt/main_window.py | 2 +- M lib/interface.py | 25 +++++++++++++++---------- M scripts/servers | 2 +- 3 files changed, 17 insertions(+), 12 deletions(-) --- (DIR) diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py t@@ -38,7 +38,7 @@ import icons_rc from electrum.util import format_satoshis, format_time, NotEnoughFunds, StoreDict from electrum import Transaction from electrum import mnemonic -from electrum import util, bitcoin, commands, Interface, Wallet +from electrum import util, bitcoin, commands, Wallet from electrum import SimpleConfig, Wallet, WalletStorage from electrum import Imported_Wallet (DIR) diff --git a/lib/interface.py b/lib/interface.py t@@ -17,28 +17,33 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. -import random, ast, re, errno, os -import threading, traceback, sys, time, json, Queue +import re, errno, os +import threading, traceback, sys, time, Queue import socket import ssl +import x509 +import util import requests ca_path = requests.certs.where() from version import ELECTRUM_VERSION, PROTOCOL_VERSION -import util from simple_config import SimpleConfig -import x509 -import util - -DEFAULT_TIMEOUT = 5 - - def Interface(server, config = None): + """Interface factory function. The returned interface class handles the connection + to a single remote electrum server. The object handles all necessary locking. It's + exposed API is: + + - Inherits everything from threading.Thread. + - Member functions start(), send_request(), stop() + - Member variables is_connected, server. + + "is_connected" is currently racy. "server" is constant for the object's lifetime and hence + synchronization is unnecessary. + """ host, port, protocol = server.split(':') - port = int(port) if protocol in 'st': return TcpInterface(server, config) else: (DIR) diff --git a/scripts/servers b/scripts/servers t@@ -1,6 +1,6 @@ #!/usr/bin/env python -from electrum import Interface, SimpleConfig, set_verbosity +from electrum import SimpleConfig, set_verbosity from electrum.network import DEFAULT_SERVERS, filter_protocol import time, Queue from collections import defaultdict