commit 9056865bdec2cdc3cf2a636da5a3f85117135a25
parent a7369a2bfd1f2a91fa41de486f8c08a93aa0d4ca
Author: ThomasV <thomasv1@gmx.de>
Date: Sun, 10 Nov 2013 02:39:01 -0800
Merge pull request #386 from WyseNynja/dont_use_base_exception
replace BaseException with Exception
Diffstat:
20 files changed, 73 insertions(+), 73 deletions(-)
diff --git a/electrum b/electrum
@@ -103,7 +103,7 @@ def run_command(cmd, password = None, args = []):
cmd_runner.password = password
try:
result = func(*args[1:])
- except BaseException, e:
+ except Exception as e:
import traceback
traceback.print_exc(file=sys.stdout)
sys.exit(1)
diff --git a/gui/android.py b/gui/android.py
@@ -458,7 +458,7 @@ def pay_to(recipient, amount, fee, label):
try:
tx = wallet.mktx( [(recipient, amount)], password, fee)
- except BaseException, e:
+ except Exception as e:
modal_dialog('error', e.message)
droid.dialogDismiss()
return
diff --git a/gui/gtk.py b/gui/gtk.py
@@ -807,7 +807,7 @@ class ElectrumWindow:
try:
tx = self.wallet.mktx( [(to_address, amount)], password, fee )
- except BaseException, e:
+ except Exception as e:
self.show_message(str(e))
return
diff --git a/gui/qt/lite_window.py b/gui/qt/lite_window.py
@@ -750,7 +750,7 @@ class MiniActuator:
try:
tx = self.g.wallet.mktx([(dest_address, amount)], password, fee)
- except BaseException as error:
+ except Exception as error:
QMessageBox.warning(parent_window, _('Error'), str(error), _('OK'))
return False
@@ -778,7 +778,7 @@ class MiniActuator:
with open(fileName,'w') as f:
f.write(json.dumps(tx.as_dict(),indent=4) + '\n')
QMessageBox.information(QWidget(), _('Unsigned transaction created'), _("Unsigned transaction was saved to file:") + " " +fileName, _('OK'))
- except BaseException as e:
+ except Exception as e:
QMessageBox.warning(QWidget(), _('Error'), _('Could not write transaction to file: %s' % e), _('OK'))
return True
diff --git a/gui/qt/main_window.py b/gui/qt/main_window.py
@@ -889,7 +889,7 @@ class ElectrumWindow(QMainWindow):
try:
tx = self.wallet.mktx_from_account( [(to_address, amount)], password, fee, self.current_account)
- except BaseException, e:
+ except Exception as e:
traceback.print_exc(file=sys.stdout)
self.show_message(str(e))
return
@@ -1635,7 +1635,7 @@ class ElectrumWindow(QMainWindow):
if not address: return
try:
pk_list = self.wallet.get_private_key(address, password)
- except BaseException, e:
+ except Exception as e:
self.show_message(str(e))
return
QMessageBox.information(self, _('Private key'), _('Address')+ ': ' + address + '\n\n' + _('Private key') + ': ' + '\n'.join(pk_list), _('OK'))
@@ -1648,7 +1648,7 @@ class ElectrumWindow(QMainWindow):
try:
sig = self.wallet.sign_message(str(address.text()), message, password)
signature.setText(sig)
- except BaseException, e:
+ except Exception as e:
self.show_message(str(e))
def sign_message(self, address):
@@ -1840,7 +1840,7 @@ class ElectrumWindow(QMainWindow):
try:
tx = self.wallet.make_unsigned_transaction(outputs, None, None)
- except BaseException, e:
+ except Exception as e:
self.show_message(str(e))
return
@@ -1893,7 +1893,7 @@ class ElectrumWindow(QMainWindow):
export_error_label = _("Electrum was unable to produce a private key-export.")
QMessageBox.critical(None, _("Unable to create csv"), export_error_label + "\n" + str(reason))
- except BaseException, e:
+ except Exception as e:
self.show_message(str(e))
return
@@ -1946,7 +1946,7 @@ class ElectrumWindow(QMainWindow):
for key in text:
try:
addr = self.wallet.import_key(key, password)
- except BaseException as e:
+ except Exception as e:
badkeys.append(key)
continue
if not addr:
diff --git a/gui/stdio.py b/gui/stdio.py
@@ -198,7 +198,7 @@ class ElectrumGui:
try:
tx = self.wallet.mktx( [(self.str_recipient, amount)], password, fee)
- except BaseException, e:
+ except Exception as e:
print(str(e))
return
diff --git a/gui/text.py b/gui/text.py
@@ -309,7 +309,7 @@ class ElectrumGui:
try:
tx = self.wallet.mktx( [(self.str_recipient, amount)], password, fee)
- except BaseException, e:
+ except Exception as e:
self.show_message(str(e))
return
diff --git a/lib/account.py b/lib/account.py
@@ -109,7 +109,7 @@ class OldAccount(Account):
master_public_key = master_private_key.get_verifying_key().to_string()
if master_public_key != self.mpk:
print_error('invalid password (mpk)')
- raise BaseException('Invalid password')
+ raise Exception('Invalid password')
return True
def redeem_script(self, sequence):
diff --git a/lib/bitcoin.py b/lib/bitcoin.py
@@ -115,7 +115,7 @@ def hash_160(public_key):
md = hashlib.new('ripemd160')
md.update(hashlib.sha256(public_key).digest())
return md.digest()
- except:
+ except Exception:
import ripemd
md = ripemd.new(hashlib.sha256(public_key).digest())
return md.digest()
@@ -268,7 +268,7 @@ def is_valid(addr):
if not ADDRESS_RE.match(addr): return False
try:
addrtype, h = bc_address_to_hash_160(addr)
- except:
+ except Exception:
return False
return addr == hash_160_to_bc_address(h, addrtype)
@@ -277,7 +277,7 @@ def is_valid(addr):
try:
from ecdsa.ecdsa import curve_secp256k1, generator_secp256k1
-except:
+except Exception:
print "cannot import ecdsa.curve_secp256k1. You probably need to upgrade ecdsa.\nTry: sudo pip install --upgrade ecdsa"
exit()
from ecdsa.curves import SECP256k1
@@ -294,7 +294,7 @@ def verify_message(address, signature, message):
try:
EC_KEY.verify_message(address, signature, message)
return True
- except BaseException as e:
+ except Exception as e:
print_error("Verification error: {0}".format(e))
return False
@@ -316,10 +316,10 @@ class EC_KEY(object):
try:
self.verify_message( address, sig, message)
return sig
- except:
+ except Exception:
continue
else:
- raise BaseException("error: cannot sign message")
+ raise Exception("error: cannot sign message")
@classmethod
def verify_message(self, address, signature, message):
@@ -331,11 +331,11 @@ class EC_KEY(object):
order = G.order()
# extract r,s from signature
sig = base64.b64decode(signature)
- if len(sig) != 65: raise BaseException("Wrong encoding")
+ if len(sig) != 65: raise Exception("Wrong encoding")
r,s = util.sigdecode_string(sig[1:], order)
nV = ord(sig[0])
if nV < 27 or nV >= 35:
- raise BaseException("Bad encoding")
+ raise Exception("Bad encoding")
if nV >= 31:
compressed = True
nV -= 4
@@ -364,7 +364,7 @@ class EC_KEY(object):
# check that we get the original signing address
addr = public_key_to_bc_address( encode_point(public_key, compressed) )
if address != addr:
- raise BaseException("Bad signature")
+ raise Exception("Bad signature")
###################################### BIP32 ##############################
diff --git a/lib/blockchain.py b/lib/blockchain.py
@@ -119,7 +119,7 @@ class Blockchain(threading.Thread):
assert prev_hash == header.get('prev_block_hash')
assert bits == header.get('bits')
assert eval('0x'+_hash) < target
- except:
+ except Exception:
return False
prev_header = header
@@ -176,7 +176,7 @@ class Blockchain(threading.Thread):
assert prev_hash == header.get('prev_block_hash')
assert bits == header.get('bits')
assert eval('0x'+_hash) < target
- except:
+ except Exception:
# this can be caused by a reorg.
print_error("verify header failed"+ repr(header))
verifier.undo_verifications()
@@ -227,7 +227,7 @@ class Blockchain(threading.Thread):
print_error("downloading ", self.headers_url )
urllib.urlretrieve(self.headers_url, filename)
print_error("done.")
- except:
+ except Exception:
print_error( "download failed. creating file", filename )
open(filename,'wb+').close()
@@ -411,7 +411,7 @@ class Blockchain(threading.Thread):
index = params[0]
try:
self.verify_chunk(index, result)
- except:
+ except Exception:
print_error('Verify chunk failed!!')
return False
requested_chunks.remove(index)
diff --git a/lib/commands.py b/lib/commands.py
@@ -228,7 +228,7 @@ class Commands:
try:
addr = self.wallet.import_key(sec,self.password)
out = "Keypair imported: ", addr
- except BaseException as e:
+ except Exception as e:
out = "Error: Keypair import failed: " + str(e)
return out
@@ -245,19 +245,19 @@ class Commands:
for to_address, amount in outputs:
if not is_valid(to_address):
- raise BaseException("Invalid Bitcoin address", to_address)
+ raise Exception("Invalid Bitcoin address", to_address)
if change_addr:
if not is_valid(change_addr):
- raise BaseException("Invalid Bitcoin address", change_addr)
+ raise Exception("Invalid Bitcoin address", change_addr)
if domain is not None:
for addr in domain:
if not is_valid(addr):
- raise BaseException("invalid Bitcoin address", addr)
+ raise Exception("invalid Bitcoin address", addr)
if not self.wallet.is_mine(addr):
- raise BaseException("address not in wallet", addr)
+ raise Exception("address not in wallet", addr)
for k, v in self.wallet.labels.items():
if change_addr and v == change_addr:
@@ -306,7 +306,7 @@ class Commands:
tx_hash, conf, is_mine, value, fee, balance, timestamp = item
try:
time_str = datetime.datetime.fromtimestamp( timestamp).isoformat(' ')[:-3]
- except:
+ except Exception:
time_str = "----"
label, is_default_label = self.wallet.get_label(tx_hash)
diff --git a/lib/interface.py b/lib/interface.py
@@ -49,7 +49,7 @@ def check_cert(host, cert):
def cert_has_expired(cert_path):
try:
import OpenSSL
- except:
+ except Exception:
print_error("Warning: cannot import OpenSSL")
return False
from OpenSSL import crypto as c
@@ -112,12 +112,12 @@ class Interface(threading.Thread):
try:
host, port, protocol = self.server.split(':')
port = int(port)
- except:
+ except Exception:
self.server = None
return
if protocol not in 'ghst':
- raise BaseException('Unknown protocol: %s'%protocol)
+ raise Exception('Unknown protocol: %s'%protocol)
self.host = host
self.port = port
@@ -196,7 +196,7 @@ class Interface(threading.Thread):
self.connection_msg = ('https' if self.use_ssl else 'http') + '://%s:%d'%( self.host, self.port )
try:
self.poll()
- except:
+ except Exception:
print_error("http init session failed")
self.is_connected = False
return
@@ -218,7 +218,7 @@ class Interface(threading.Thread):
break
except socket.error:
break
- except:
+ except Exception:
traceback.print_exc(file=sys.stdout)
break
@@ -265,7 +265,7 @@ class Interface(threading.Thread):
try:
req = urllib2.Request(self.connection_msg, data_json, headers)
response_stream = urllib2.urlopen(req, timeout=DEFAULT_TIMEOUT)
- except:
+ except Exception:
return
for index, cookie in enumerate(cj):
@@ -318,7 +318,7 @@ class Interface(threading.Thread):
s = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
try:
s.connect((self.host, self.port))
- except:
+ except Exception:
# print_error("failed to connect", self.host, self.port)
return
@@ -346,7 +346,7 @@ class Interface(threading.Thread):
try:
s.connect(( self.host.encode('ascii'), int(self.port)))
- except:
+ except Exception:
print_error("failed to connect", self.host, self.port)
return
@@ -370,7 +370,7 @@ class Interface(threading.Thread):
else:
print_msg("wrong certificate", self.host)
return
- except:
+ except Exception:
print_error("wrap_socket failed", self.host)
traceback.print_exc(file=sys.stdout)
return
@@ -424,7 +424,7 @@ class Interface(threading.Thread):
c = json.loads(c)
self.queue_json_response(c)
- except:
+ except Exception:
traceback.print_exc(file=sys.stdout)
self.is_connected = False
diff --git a/lib/network.py b/lib/network.py
@@ -385,7 +385,7 @@ class Network(threading.Thread):
if pruning_level == '': pruning_level = '0'
try:
is_recent = float(version)>=float(PROTOCOL_VERSION)
- except:
+ except Exception:
is_recent = False
if out and is_recent:
diff --git a/lib/plugins.py b/lib/plugins.py
@@ -24,7 +24,7 @@ def init_plugins(self):
for name, p in zip(plugin_names, plugin_modules):
try:
plugins.append( p.Plugin(self, name) )
- except:
+ except Exception:
print_msg(_("Error: cannot initialize plugin"),p)
traceback.print_exc(file=sys.stdout)
@@ -45,7 +45,7 @@ def run_hook(name, *args):
try:
f(*args)
- except:
+ except Exception:
print_error("Plugin error")
traceback.print_exc(file=sys.stdout)
diff --git a/lib/simple_config.py b/lib/simple_config.py
@@ -103,7 +103,7 @@ a SimpleConfig instance then reads the wallet file.
import ast
try:
out = ast.literal_eval(out)
- except:
+ except Exception:
print "type error for '%s': using default value"%key
out = default
@@ -154,7 +154,7 @@ a SimpleConfig instance then reads the wallet file.
return
try:
d = ast.literal_eval( data ) #parse raw data from reading wallet file
- except:
+ except Exception:
raise IOError("Cannot read config file.")
self.user_config = d
diff --git a/lib/transaction.py b/lib/transaction.py
@@ -298,7 +298,7 @@ def match_decoded(decoded, to_match):
def get_address_from_input_script(bytes):
try:
decoded = [ x for x in script_GetOp(bytes) ]
- except:
+ except Exception:
# coinbase transactions raise an exception
print_error("cannot find address in input script", bytes.encode('hex'))
return [], [], "(None)"
diff --git a/lib/util.py b/lib/util.py
@@ -49,7 +49,7 @@ def user_dir():
elif 'ANDROID_DATA' in os.environ:
return "/sdcard/electrum/"
else:
- #raise BaseException("No home directory found in environment variables.")
+ #raise Exception("No home directory found in environment variables.")
return
def appdata_dir():
diff --git a/lib/wallet.py b/lib/wallet.py
@@ -55,8 +55,8 @@ def pw_decode(s, password):
secret = Hash(password)
try:
d = DecodeAES(secret, s)
- except:
- raise BaseException('Invalid password')
+ except Exception:
+ raise Exception('Invalid password')
return d
else:
return s
@@ -117,7 +117,7 @@ class WalletStorage:
return
try:
d = ast.literal_eval( data ) #parse raw data from reading wallet file
- except:
+ except Exception:
raise IOError("Cannot read wallet file.")
self.data = d
@@ -192,7 +192,7 @@ class Wallet:
for k,v in tx_list.items():
try:
tx = Transaction(v)
- except:
+ except Exception:
print_msg("Warning: Cannot deserialize transactions. skipping")
continue
@@ -256,11 +256,11 @@ class Wallet:
seed = self.get_seed(password)
try:
address = address_from_private_key(sec)
- except:
- raise BaseException('Invalid private key')
+ except Exception:
+ raise Exception('Invalid private key')
if self.is_mine(address):
- raise BaseException('Address already in wallet')
+ raise Exception('Address already in wallet')
# store the originally requested keypair into the imported keys table
self.imported_keys[address] = pw_encode(sec, password )
@@ -296,7 +296,7 @@ class Wallet:
import mnemonic
if self.seed:
- raise BaseException("a seed exists")
+ raise Exception("a seed exists")
if not seed:
self.seed = random_seed(128)
@@ -314,7 +314,7 @@ class Wallet:
self.seed_version = 4
self.seed = str(seed)
return
- except:
+ except Exception:
pass
words = seed.split()
@@ -324,7 +324,7 @@ class Wallet:
#try:
# mnemonic.mn_decode(words)
# uses_electrum_words = True
- #except:
+ #except Exception:
# uses_electrum_words = False
#
#if uses_electrum_words and len(words) != 13:
@@ -438,7 +438,7 @@ class Wallet:
elif account_type == '2of3':
return "m/3'/%d & m/4'/%d & m/5'/%d"%(i,i,i)
else:
- raise BaseException('unknown account type')
+ raise Exception('unknown account type')
def num_accounts(self, account_type):
@@ -608,8 +608,8 @@ class Wallet:
try:
K, Kc = get_pubkeys_from_secret(master_k.decode('hex'))
assert K.encode('hex') == master_K
- except:
- raise BaseException("Invalid password")
+ except Exception:
+ raise Exception("Invalid password")
return master_k
@@ -628,7 +628,7 @@ class Wallet:
if v == address:
return k, (0,0)
- raise BaseException("Address not found", address)
+ raise Exception("Address not found", address)
def get_roots(self, account):
@@ -1110,7 +1110,7 @@ class Wallet:
if h == ['*']: continue
for tx_hash, tx_height in h:
tx = self.transactions.get(tx_hash)
- if tx is None: raise BaseException("Wallet not synchronized")
+ if tx is None: raise Exception("Wallet not synchronized")
is_coinbase = tx.inputs[0].get('prevout_hash') == '0'*64
for output in tx.d.get('outputs'):
if output.get('address') != addr: continue
@@ -1245,7 +1245,7 @@ class Wallet:
def receive_history_callback(self, addr, hist):
if not self.check_new_history(addr, hist):
- raise BaseException("error: received history for %s is not consistent with known transactions"%addr)
+ raise Exception("error: received history for %s is not consistent with known transactions"%addr)
with self.lock:
self.history[addr] = hist
@@ -1754,12 +1754,12 @@ class WalletSynchronizer(threading.Thread):
hist.append( (tx_hash, item['height']) )
if len(hist) != len(result):
- raise BaseException("error: server sent history with non-unique txid", result)
+ raise Exception("error: server sent history with non-unique txid", result)
# check that the status corresponds to what was announced
rs = requested_histories.pop(addr)
if self.wallet.get_status(hist) != rs:
- raise BaseException("error: status mismatch: %s"%addr)
+ raise Exception("error: status mismatch: %s"%addr)
# store received history
self.wallet.receive_history_callback(addr, hist)
diff --git a/plugins/aliases.py b/plugins/aliases.py
@@ -52,7 +52,7 @@ class Plugin(BasePlugin):
def get_alias(self, alias, interactive = False, show_message=None, question = None):
try:
target, signing_address, auth_name = read_alias(self, alias)
- except BaseException, e:
+ except Exception as e:
# raise exception if verify fails (verify the chain)
if interactive:
show_message("Alias error: " + str(e))
diff --git a/plugins/qrscanner.py b/plugins/qrscanner.py
@@ -110,7 +110,7 @@ class Plugin(BasePlugin):
try:
tx = self.gui.main_window.wallet.mktx( [(to_address, amount)], None, fee)
- except BaseException, e:
+ except Exception as e:
self.gui.main_window.show_message(str(e))
return
@@ -126,13 +126,13 @@ class Plugin(BasePlugin):
input_info = []
- except BaseException, e:
+ except Exception as e:
self.gui.main_window.show_message(str(e))
try:
json_text = json.dumps(tx.as_dict()).replace(' ', '')
self.show_tx_qrcode(json_text, 'Unsigned Transaction')
- except BaseException, e:
+ except Exception as e:
self.gui.main_window.show_message(str(e))
def show_tx_qrcode(self, data, title):
@@ -235,7 +235,7 @@ class Plugin(BasePlugin):
self.gui.main_window.wallet.signrawtransaction(tx, input_info, [], password)
txtext = json.dumps(tx.as_dict()).replace(' ', '')
self.show_tx_qrcode(txtext, 'Signed Transaction')
- except BaseException, e:
+ except Exception as e:
self.gui.main_window.show_message(str(e))