Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More linting #262

Merged
merged 9 commits into from
Jan 16, 2023
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ repos:
args:
- --max-line-length=88
- --select=E1,E2,E3,E4,E5,E7,E9,F4,F5,F6,F7,F8,W1,W2,W3,W504,W6
- --ignore=E266,E501,E722,E731,E741 # FIXME
- --ignore=E501 # FIXME
- --extend-ignore=E203 # This one is incompatible with black
additional_dependencies:
- flake8-mutable
# Less severe errors and warnings checked on a selection of cleaned-up files
- id: flake8
args:
- --max-line-length=88
- --ignore=E203,E501,E731,E741,W503,SIM106,SIM119,FS002,FS003
- --ignore=E203,E501,W503,SIM106,SIM119,FS002,FS003
additional_dependencies:
- flake8-comprehensions
- flake8-mutable
Expand Down
5 changes: 3 additions & 2 deletions contrib/build-wine/deterministic.spec
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ for i, x in enumerate(sys.argv):
cmdline_name = sys.argv[i+1]
break
else:
raise BaseException('no name')
raise RuntimeError('no name')

home = 'C:\\electrumabc\\'

Expand Down Expand Up @@ -61,7 +61,8 @@ datas = [
datas += collect_data_files('trezorlib')
datas += collect_data_files('btchip')
datas += collect_data_files('keepkeylib')
datas += collect_data_files('mnemonic') # wordlists used by keepkeylib from lib mnemonic
# wordlists used by keepkeylib from lib mnemonic
datas += collect_data_files('mnemonic')

# We don't put these files in to actually include them in the script but to make the Analysis method scan them for imports
a = Analysis([home+'electrum-abc',
Expand Down
5 changes: 3 additions & 2 deletions contrib/osx/osx.spec
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ for i, x in enumerate(sys.argv):
VERSION = sys.argv[i+1]
break
else:
raise BaseException('no version')
raise Exception('no version')

home = os.path.abspath(".") + "/"
block_cipher = None
Expand All @@ -41,7 +41,8 @@ datas = [
datas += collect_data_files('trezorlib')
datas += collect_data_files('btchip')
datas += collect_data_files('keepkeylib')
datas += collect_data_files('mnemonic') # wordlists used by keepkeylib from lib mnemonic
# wordlists used by keepkeylib from lib mnemonic
datas += collect_data_files('mnemonic')


# Add libusb so Trezor will work
Expand Down
6 changes: 1 addition & 5 deletions contrib/package_plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,10 @@
from PyQt5.QtCore import Qt


## Start copied from .util
def versiontuple(v):
return tuple(map(int, (v.split("."))))


## End copied from .util


def write_plugin_archive(metadata, source_package_path, archive_file_path):
suffixless_path = archive_file_path.strip()
# Ensure we don't end up with .zip.zip, as `make_archive` adds the suffix as well.
Expand Down Expand Up @@ -368,7 +364,7 @@ def on_export_manifest_clicked(self):
self, "File Error", "Unable to write to selected file."
)
return
except:
except Exception:
QtWidgets.QMessageBox.critical(
self, "Encoding Error", "Problem serialising json data."
)
Expand Down
2 changes: 1 addition & 1 deletion electrum-abc
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,7 @@ def main():
for i, arg in enumerate(sys.argv):
if arg == "-":
if sys.stdin.isatty():
raise BaseException("Cannot get argument from stdin")
raise RuntimeError("Cannot get argument from stdin")
sys.argv[i] = sys.stdin.read()
break
if arg == "?":
Expand Down
8 changes: 4 additions & 4 deletions electrumabc/address.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
import hashlib
import struct
from collections import namedtuple
from typing import Tuple, Union
from typing import Optional, Tuple, Union

from . import cashaddr, networks
from .bitcoin import (
Expand Down Expand Up @@ -280,7 +280,7 @@ def lookup(x):
# if too many escaped characters, it's too ugly!
if friendlystring.count("\\") * 3 > len(astext):
friendlystring = None
except:
except Exception:
friendlystring = None

if not friendlystring:
Expand Down Expand Up @@ -394,7 +394,7 @@ def from_cashaddr_string(
cls,
string: str,
*,
net: networks.AbstractNet = None,
net: Optional[networks.AbstractNet] = None,
support_arbitrary_prefix: bool = False,
):
"""Construct from a cashaddress string.
Expand Down Expand Up @@ -451,7 +451,7 @@ def from_string(
cls,
string: str,
*,
net: networks.AbstractNet = None,
net: Optional[networks.AbstractNet] = None,
support_arbitrary_prefix: bool = False,
):
"""Construct from an address string.
Expand Down
2 changes: 1 addition & 1 deletion electrumabc/asert_daa.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def _get_asert_activation_mtp():
mtp = os.environ.get("ASERT_MTP", default_mtp)
try:
mtp = int(mtp)
except:
except Exception:
pass
if not isinstance(mtp, int) or mtp <= 1510600000:
print_error(
Expand Down
8 changes: 4 additions & 4 deletions electrumabc/avalanche/delegation.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
)


class WrongDelegatorKeyError(BaseException):
class WrongDelegatorKeyError(Exception):
pass


Expand Down Expand Up @@ -198,9 +198,9 @@ def from_proof(cls, p: Proof) -> DelegationBuilder:
@classmethod
def from_delegation(cls, dg: Delegation) -> DelegationBuilder:
dg_builder = cls(dg.limited_proofid, dg.proof_master, dg.dgid)
for l in dg.levels:
dg_builder.levels[-1].sig = l.sig
dg_builder.levels.append(Level(l.pubkey, b""))
for level in dg.levels:
dg_builder.levels[-1].sig = level.sig
dg_builder.levels.append(Level(level.pubkey, b""))
return dg_builder

def add_level(self, delegator_key: Key, delegated_pubkey: PublicKey):
Expand Down
86 changes: 48 additions & 38 deletions electrumabc/base_wizard.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def run(self, *args, **kwargs):
f = getattr(self, action)
f(*args, **kwargs)
else:
raise BaseException("unknown action", action)
raise RuntimeError("unknown action", action)

def can_go_back(self):
return len(self._stack) > 1
Expand Down Expand Up @@ -146,7 +146,7 @@ def do_upgrade():
do_upgrade, _("Upgrading wallet format..."), on_finished=on_finished
)

def run_task_without_blocking_gui(self, task, *, msg: str = None) -> Any:
def run_task_without_blocking_gui(self, task, *, msg: Optional[str] = None) -> Any:
"""Perform a task in a thread without blocking the GUI.
Returns the result of 'task', or raises the same exception.
This method blocks until 'task' is finished.
Expand Down Expand Up @@ -205,9 +205,11 @@ def choose_keystore(self):
)

def import_addresses_or_keys(self):
v = lambda x: keystore.is_address_list(x) or keystore.is_private_key_list(
x, allow_bip38=True
)
def is_valid(x):
return keystore.is_address_list(x) or keystore.is_private_key_list(
x, allow_bip38=True
)

title = _(f"Import {CURRENCY} Addresses")
message = _(
f"Enter a list of {CURRENCY} addresses (this will create a"
Expand All @@ -219,7 +221,7 @@ def import_addresses_or_keys(self):
title=title,
message=message,
run_next=self.on_import,
is_valid=v,
is_valid=is_valid,
allow_multi=True,
)

Expand All @@ -234,7 +236,7 @@ def on_import(self, text):
for addr in text.split():
try:
Address.from_string(addr)
except BaseException:
except Exception:
pass
else:
self.data["addresses"][addr] = {}
Expand All @@ -252,13 +254,15 @@ def on_import(self, text):
return
for b38, tup in decrypted.items():
wif, adr = tup
text = text.replace(
b38, wif
) # kind of a hack.. but works. replace the bip38 key with the wif key in the text.
# kind of a hack.. but works. replace the bip38 key with the wif
# key in the text.
text = text.replace(b38, wif)

self.keystores = [keystore.from_private_key_list(text)]
self.data["wallet_type"] = self.wallet_type = "imported_privkey"
self.reset_stack() # 'Back' button wasn't working anyway at this point, so we just force it to read 'Cancel' and this proceeds with no password set.
# 'Back' button wasn't working anyway at this point, so we just force it to
# read 'Cancel' and this proceeds with no password set.
self.reset_stack()
else:
return self.terminate()
return self.run("create_wallet")
Expand Down Expand Up @@ -324,7 +328,7 @@ def choose_hw_device(self, purpose=HWD_SETUP_NEW_WALLET, *, storage=None):
try:
# FIXME: side-effect: unpaired_device_info sets client.handler
u = devmgr.unpaired_device_infos(None, plugin)
except:
except Exception:
devmgr.print_error("error", name)
continue
devices += list(map(lambda x: (name, x), u))
Expand Down Expand Up @@ -387,7 +391,7 @@ def choose_hw_device(self, purpose=HWD_SETUP_NEW_WALLET, *, storage=None):
label = info.label or _("An unnamed {}").format(name)
try:
transport_str = str(info.device.path)[:20]
except:
except Exception:
transport_str = "unknown transport"
descr = f"{label} [{info.model_name or name}, {state}, {transport_str}]"
choices.append(((name, info), descr))
Expand Down Expand Up @@ -424,7 +428,7 @@ def on_device(self, name, device_info: DeviceInfo, *, purpose, storage=None):
except (GoBack, util.UserCancelled):
self.choose_hw_device(purpose, storage=storage)
return
except BaseException:
except Exception:
self.choose_hw_device(purpose, storage=storage)
return

Expand Down Expand Up @@ -513,7 +517,7 @@ def on_hw_derivation(self, name, device_info: DeviceInfo, derivation):
xpub = self.plugin.get_xpub(device_info.device.id_, derivation, xtype, self)
client = devmgr.client_by_id(device_info.device.id_, scan_now=False)
label = client.label()
except BaseException as e:
except Exception as e:
self.print_error(traceback.format_exc())
self.show_error(str(e))
return
Expand Down Expand Up @@ -555,29 +559,36 @@ def passphrase_dialog(self, run_next):
def restore_from_seed(self):
self.opt_bip39 = True
self.opt_ext = True
test = (
mnemo.is_seed
) # TODO FIX #bitcoin.is_seed if self.wallet_type == 'standard' else bitcoin.is_new_seed
# TODO FIX #bitcoin.is_seed if self.wallet_type == 'standard' else bitcoin.is_new_seed
test = mnemo.is_seed
self.restore_seed_dialog(run_next=self.on_restore_seed, test=test)

def on_restore_seed(self, seed, is_bip39, is_ext):
self.seed_type = (
"bip39" if is_bip39 else mnemo.seed_type_name(seed)
) # NB: seed_type_name here may also auto-detect 'bip39'
# NB: seed_type_name here may also auto-detect 'bip39'
self.seed_type = "bip39" if is_bip39 else mnemo.seed_type_name(seed)
if self.seed_type == "bip39":
f = lambda passphrase: self.on_restore_bip39(seed, passphrase)

def f(passphrase):
self.on_restore_bip39(seed, passphrase)

self.passphrase_dialog(run_next=f) if is_ext else f("")
elif self.seed_type in ["standard", "electrum"]:
f = lambda passphrase: self.run("create_keystore", seed, passphrase)

def f(passphrase):
self.run("create_keystore", seed, passphrase)

self.passphrase_dialog(run_next=f) if is_ext else f("")
elif self.seed_type == "old":
self.run("create_keystore", seed, "")
else:
raise BaseException("Unknown seed type", self.seed_type)
raise RuntimeError("Unknown seed type", self.seed_type)

def on_restore_bip39(self, seed, passphrase):
f = lambda x: self.run("on_bip44", seed, passphrase, str(x))
self.derivation_dialog(f, keystore.bip44_derivation_xec(0), seed=seed)
self.derivation_dialog(
lambda x: self.run("on_bip44", seed, passphrase, str(x)),
keystore.bip44_derivation_xec(0),
seed=seed,
)

def create_keystore(self, seed, passphrase):
# auto-detect, prefers old, electrum, bip39 in that order. Since we
Expand Down Expand Up @@ -653,7 +664,7 @@ def create_wallet(self):
devmgr.unpair_xpub(k.xpub)
self.choose_hw_device()
return
except BaseException as e:
except Exception as e:
traceback.print_exc(file=sys.stderr)
self.show_error(str(e))
return
Expand Down Expand Up @@ -737,8 +748,6 @@ def create_standard_seed(self):
self.create_seed("bip39")

def create_seed(self, seed_type):
from . import mnemo

self.seed_type = seed_type
if seed_type in ["standard", "electrum"]:
seed = mnemo.Mnemonic_Electrum("en").make_seed()
Expand All @@ -748,22 +757,23 @@ def create_seed(self, seed_type):
# This should never happen.
raise ValueError("Cannot make seed for unknown seed type " + str(seed_type))
self.opt_bip39 = False
f = lambda x: self.request_passphrase(seed, x)
self.show_seed_dialog(run_next=f, seed_text=seed)
self.show_seed_dialog(
run_next=lambda x: self.request_passphrase(seed, x), seed_text=seed
)

def request_passphrase(self, seed, opt_passphrase):
if opt_passphrase:
f = lambda x: self.confirm_seed(seed, x)
self.passphrase_dialog(run_next=f)
self.passphrase_dialog(run_next=lambda x: self.confirm_seed(seed, x))
else:
self.run("confirm_seed", seed, "")

def confirm_seed(self, seed, passphrase):
f = lambda x: self.confirm_passphrase(seed, passphrase)
self.confirm_seed_dialog(run_next=f, test=lambda x: x == seed)
self.confirm_seed_dialog(
run_next=lambda x: self.confirm_passphrase(seed, passphrase),
test=lambda x: x == seed,
)

def confirm_passphrase(self, seed, passphrase):
f = lambda x: self.run("create_keystore", seed, x)
if passphrase:
title = _("Confirm Seed Extension")
message = "\n".join(
Expand All @@ -773,14 +783,14 @@ def confirm_passphrase(self, seed, passphrase):
]
)
self.line_dialog(
run_next=f,
run_next=lambda x: self.run("create_keystore", seed, x),
title=title,
message=message,
default="",
test=lambda x: x == passphrase,
)
else:
f("")
self.run("create_keystore", seed, "")

def create_addresses(self):
def task():
Expand Down
Loading