Browse Source

SimpleConfig: change API of set_key(): "save" is now kwarg-only

master
SomberNight 3 years ago
parent
commit
03ab33f4b2
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 4
      electrum/exchange_rate.py
  2. 8
      electrum/gui/kivy/main_window.py
  3. 10
      electrum/gui/kivy/uix/dialogs/fee_dialog.py
  4. 2
      electrum/gui/kivy/uix/dialogs/settings.py
  5. 10
      electrum/gui/qml/qeconfig.py
  6. 10
      electrum/gui/qml/qetxfinalizer.py
  7. 2
      electrum/gui/qt/__init__.py
  8. 6
      electrum/gui/qt/confirm_tx_dialog.py
  9. 4
      electrum/gui/qt/installwizard.py
  10. 14
      electrum/gui/qt/settings_dialog.py
  11. 6
      electrum/gui/qt/swap_dialog.py
  12. 4
      electrum/gui/qt/util.py
  13. 2
      electrum/gui/text.py
  14. 8
      electrum/network.py
  15. 4
      electrum/plugin.py
  16. 2
      electrum/plugins/trustedcoin/qt.py
  17. 8
      electrum/simple_config.py

4
electrum/exchange_rate.py

@ -599,7 +599,7 @@ class FxThread(ThreadJob, EventListener):
def set_currency(self, ccy: str):
self.ccy = ccy
self.config.set_key('currency', ccy, True)
self.config.set_key('currency', ccy, save=True)
self.trigger_update()
self.on_quotes()
@ -611,7 +611,7 @@ class FxThread(ThreadJob, EventListener):
class_ = globals().get(name) or globals().get(DEFAULT_EXCHANGE)
self.logger.info(f"using exchange {name}")
if self.config_exchange() != name:
self.config.set_key('use_exchange', name, True)
self.config.set_key('use_exchange', name, save=True)
assert issubclass(class_, ExchangeBase), f"unexpected type {class_} for {name}"
self.exchange = class_(self.on_quotes, self.on_history) # type: ExchangeBase
# A new exchange means new fx quotes, initially empty. Force

8
electrum/gui/kivy/main_window.py

@ -196,7 +196,7 @@ class ElectrumWindow(App, Logger, EventListener):
use_gossip = BooleanProperty(False)
def on_use_gossip(self, instance, x):
self.electrum_config.set_key('use_gossip', self.use_gossip, True)
self.electrum_config.set_key('use_gossip', self.use_gossip, save=True)
if self.network:
if self.use_gossip:
self.network.start_gossip()
@ -206,7 +206,7 @@ class ElectrumWindow(App, Logger, EventListener):
enable_debug_logs = BooleanProperty(False)
def on_enable_debug_logs(self, instance, x):
self.electrum_config.set_key('gui_enable_debug_logs', self.enable_debug_logs, True)
self.electrum_config.set_key('gui_enable_debug_logs', self.enable_debug_logs, save=True)
use_change = BooleanProperty(False)
def on_use_change(self, instance, x):
@ -217,11 +217,11 @@ class ElectrumWindow(App, Logger, EventListener):
use_unconfirmed = BooleanProperty(False)
def on_use_unconfirmed(self, instance, x):
self.electrum_config.set_key('confirmed_only', not self.use_unconfirmed, True)
self.electrum_config.set_key('confirmed_only', not self.use_unconfirmed, save=True)
use_recoverable_channels = BooleanProperty(True)
def on_use_recoverable_channels(self, instance, x):
self.electrum_config.set_key('use_recoverable_channels', self.use_recoverable_channels, True)
self.electrum_config.set_key('use_recoverable_channels', self.use_recoverable_channels, save=True)
def switch_to_send_screen(func):
# try until send_screen is available

10
electrum/gui/kivy/uix/dialogs/fee_dialog.py

@ -99,15 +99,15 @@ class FeeSliderDialog:
def save_config(self):
value = int(self.slider.value)
dynfees, mempool = self.get_method()
self.config.set_key('dynamic_fees', dynfees, False)
self.config.set_key('mempool_fees', mempool, False)
self.config.set_key('dynamic_fees', dynfees, save=False)
self.config.set_key('mempool_fees', mempool, save=False)
if dynfees:
if mempool:
self.config.set_key('depth_level', value, True)
self.config.set_key('depth_level', value, save=True)
else:
self.config.set_key('fee_level', value, True)
self.config.set_key('fee_level', value, save=True)
else:
self.config.set_key('fee_per_kb', self.config.static_fee(value), True)
self.config.set_key('fee_per_kb', self.config.static_fee(value), save=True)
def update_text(self):
pass

2
electrum/gui/kivy/uix/dialogs/settings.py

@ -159,7 +159,7 @@ class SettingsDialog(Factory.Popup):
if self._language_dialog is None:
l = self.config.get('language') or ''
def cb(key):
self.config.set_key("language", key, True)
self.config.set_key("language", key, save=True)
item.lang = self.get_language_name()
self.app.language = key
self._language_dialog = ChoiceDialog(_('Language'), languages, l, cb)

10
electrum/gui/qml/qeconfig.py

@ -55,7 +55,7 @@ class QEConfig(AuthMixin, QObject):
@autoConnect.setter
def autoConnect(self, auto_connect):
self.config.set_key('auto_connect', auto_connect, True)
self.config.set_key('auto_connect', auto_connect, save=True)
self.autoConnectChanged.emit()
# auto_connect is actually a tri-state, expose the undefined case
@ -70,7 +70,7 @@ class QEConfig(AuthMixin, QObject):
@manualServer.setter
def manualServer(self, oneserver):
self.config.set_key('oneserver', oneserver, True)
self.config.set_key('oneserver', oneserver, save=True)
self.manualServerChanged.emit()
baseUnitChanged = pyqtSignal()
@ -113,7 +113,7 @@ class QEConfig(AuthMixin, QObject):
@spendUnconfirmed.setter
def spendUnconfirmed(self, checked):
self.config.set_key('confirmed_only', not checked, True)
self.config.set_key('confirmed_only', not checked, save=True)
self.spendUnconfirmedChanged.emit()
requestExpiryChanged = pyqtSignal()
@ -136,12 +136,12 @@ class QEConfig(AuthMixin, QObject):
if pin_code == '':
self.pinCodeRemoveAuth()
else:
self.config.set_key('pin_code', pin_code, True)
self.config.set_key('pin_code', pin_code, save=True)
self.pinCodeChanged.emit()
@auth_protect(method='wallet')
def pinCodeRemoveAuth(self):
self.config.set_key('pin_code', '', True)
self.config.set_key('pin_code', '', save=True)
self.pinCodeChanged.emit()
useGossipChanged = pyqtSignal()

10
electrum/gui/qml/qetxfinalizer.py

@ -110,15 +110,15 @@ class FeeSlider(QObject):
def save_config(self):
value = int(self._sliderPos)
dynfees, mempool = self.get_method()
self._config.set_key('dynamic_fees', dynfees, False)
self._config.set_key('mempool_fees', mempool, False)
self._config.set_key('dynamic_fees', dynfees, save=False)
self._config.set_key('mempool_fees', mempool, save=False)
if dynfees:
if mempool:
self._config.set_key('depth_level', value, True)
self._config.set_key('depth_level', value, save=True)
else:
self._config.set_key('fee_level', value, True)
self._config.set_key('fee_level', value, save=True)
else:
self._config.set_key('fee_per_kb', self._config.static_fee(value), True)
self._config.set_key('fee_per_kb', self._config.static_fee(value), save=True)
self.update_target()
self.update()

2
electrum/gui/qt/__init__.py

@ -219,7 +219,7 @@ class ElectrumGui(BaseElectrumGui, Logger):
if not self.tray:
return
self.dark_icon = not self.dark_icon
self.config.set_key("dark_icon", self.dark_icon, True)
self.config.set_key("dark_icon", self.dark_icon, save=True)
self.tray.setIcon(self.tray_icon())
def tray_activated(self, reason):

6
electrum/gui/qt/confirm_tx_dialog.py

@ -127,11 +127,11 @@ class TxEditor(WindowModalDialog):
def set_fee_config(self, dyn, pos, fee_rate):
if dyn:
if self.config.use_mempool_fees():
self.config.set_key('depth_level', pos, False)
self.config.set_key('depth_level', pos, save=False)
else:
self.config.set_key('fee_level', pos, False)
self.config.set_key('fee_level', pos, save=False)
else:
self.config.set_key('fee_per_kb', fee_rate, False)
self.config.set_key('fee_per_kb', fee_rate, save=False)
def update_tx(self, *, fallback_to_zero_fee: bool = False):
# expected to set self.tx, self.message and self.error

4
electrum/gui/qt/installwizard.py

@ -746,10 +746,10 @@ class InstallWizard(QDialog, MessageBoxMixin, BaseWizard):
nlayout = NetworkChoiceLayout(network, self.config, wizard=True)
if self.exec_layout(nlayout.layout()):
nlayout.accept()
self.config.set_key('auto_connect', network.auto_connect, True)
self.config.set_key('auto_connect', network.auto_connect, save=True)
else:
network.auto_connect = True
self.config.set_key('auto_connect', True, True)
self.config.set_key('auto_connect', True, save=True)
@wizard_dialog
def multisig_dialog(self, run_next):

14
electrum/gui/qt/settings_dialog.py

@ -83,7 +83,7 @@ class SettingsDialog(QDialog, QtEventListener):
def on_lang(x):
lang_request = list(languages.keys())[lang_combo.currentIndex()]
if lang_request != self.config.get('language'):
self.config.set_key("language", lang_request, True)
self.config.set_key("language", lang_request, save=True)
self.need_restart = True
lang_combo.currentIndexChanged.connect(on_lang)
@ -99,7 +99,7 @@ class SettingsDialog(QDialog, QtEventListener):
value = nz.value()
if self.config.num_zeros != value:
self.config.num_zeros = value
self.config.set_key('num_zeros', value, True)
self.config.set_key('num_zeros', value, save=True)
self.app.refresh_tabs_signal.emit()
self.app.update_status_signal.emit()
nz.valueChanged.connect(on_nz)
@ -211,7 +211,7 @@ class SettingsDialog(QDialog, QtEventListener):
qr_combo.addItem(cam_desc, cam_path)
index = qr_combo.findData(self.config.get("video_device"))
qr_combo.setCurrentIndex(index)
on_video_device = lambda x: self.config.set_key("video_device", qr_combo.itemData(x), True)
on_video_device = lambda x: self.config.set_key("video_device", qr_combo.itemData(x), save=True)
qr_combo.currentIndexChanged.connect(on_video_device)
colortheme_combo = QComboBox()
@ -221,7 +221,7 @@ class SettingsDialog(QDialog, QtEventListener):
colortheme_combo.setCurrentIndex(index)
colortheme_label = QLabel(_('Color theme') + ':')
def on_colortheme(x):
self.config.set_key('qt_gui_color_theme', colortheme_combo.itemData(x), True)
self.config.set_key('qt_gui_color_theme', colortheme_combo.itemData(x), save=True)
self.need_restart = True
colortheme_combo.currentIndexChanged.connect(on_colortheme)
@ -279,8 +279,8 @@ class SettingsDialog(QDialog, QtEventListener):
on_be_edit()
else:
be_result = block_explorers[block_ex_combo.currentIndex()]
self.config.set_key('block_explorer_custom', None, False)
self.config.set_key('block_explorer', be_result, True)
self.config.set_key('block_explorer_custom', None, save=False)
self.config.set_key('block_explorer', be_result, save=True)
showhide_block_ex_custom_e()
block_ex_combo.currentIndexChanged.connect(on_be_combo)
def on_be_edit():
@ -429,7 +429,7 @@ class SettingsDialog(QDialog, QtEventListener):
def on_alias_edit(self):
self.alias_e.setStyleSheet("")
alias = str(self.alias_e.text())
self.config.set_key('alias', alias, True)
self.config.set_key('alias', alias, save=True)
if alias:
self.wallet.contacts.fetch_openalias(self.config)

6
electrum/gui/qt/swap_dialog.py

@ -138,11 +138,11 @@ class SwapDialog(WindowModalDialog, QtEventListener):
def fee_slider_callback(self, dyn, pos, fee_rate):
if dyn:
if self.config.use_mempool_fees():
self.config.set_key('depth_level', pos, False)
self.config.set_key('depth_level', pos, save=False)
else:
self.config.set_key('fee_level', pos, False)
self.config.set_key('fee_level', pos, save=False)
else:
self.config.set_key('fee_per_kb', fee_rate, False)
self.config.set_key('fee_per_kb', fee_rate, save=False)
if self.send_follows:
self.on_recv_edited()
else:

4
electrum/gui/qt/util.py

@ -1051,7 +1051,7 @@ def getOpenFileName(*, parent, title, filter="", config: 'SimpleConfig') -> Opti
directory = config.get('io_dir', os.path.expanduser('~'))
fileName, __ = QFileDialog.getOpenFileName(parent, title, directory, filter)
if fileName and directory != os.path.dirname(fileName):
config.set_key('io_dir', os.path.dirname(fileName), True)
config.set_key('io_dir', os.path.dirname(fileName), save=True)
return fileName
@ -1082,7 +1082,7 @@ def getSaveFileName(
selected_path = file_dialog.selectedFiles()[0]
if selected_path and directory != os.path.dirname(selected_path):
config.set_key('io_dir', os.path.dirname(selected_path), True)
config.set_key('io_dir', os.path.dirname(selected_path), save=True)
return selected_path

2
electrum/gui/text.py

@ -747,7 +747,7 @@ class ElectrumGui(BaseElectrumGui, EventListener):
if out:
if out.get('Default fee'):
fee = int(Decimal(out['Default fee']) * COIN)
self.config.set_key('fee_per_kb', fee, True)
self.config.set_key('fee_per_kb', fee, save=True)
def password_dialog(self):
out = self.run_dialog('Password', [

8
electrum/network.py

@ -628,10 +628,10 @@ class Network(Logger, NetworkRetryManager[ServerAddr]):
int(proxy['port'])
except Exception:
return
self.config.set_key('auto_connect', net_params.auto_connect, False)
self.config.set_key('oneserver', net_params.oneserver, False)
self.config.set_key('proxy', proxy_str, False)
self.config.set_key('server', str(server), True)
self.config.set_key('auto_connect', net_params.auto_connect, save=False)
self.config.set_key('oneserver', net_params.oneserver, save=False)
self.config.set_key('proxy', proxy_str, save=False)
self.config.set_key('server', str(server), save=True)
# abort if changes were not allowed by config
if self.config.get('server') != str(server) \
or self.config.get('proxy') != proxy_str \

4
electrum/plugin.py

@ -132,14 +132,14 @@ class Plugins(DaemonThread):
self.remove_jobs(plugin.thread_jobs())
def enable(self, name: str) -> 'BasePlugin':
self.config.set_key('use_' + name, True, True)
self.config.set_key('use_' + name, True, save=True)
p = self.get(name)
if p:
return p
return self.load_plugin(name)
def disable(self, name: str) -> None:
self.config.set_key('use_' + name, False, True)
self.config.set_key('use_' + name, False, save=True)
p = self.get(name)
if not p:
return

2
electrum/plugins/trustedcoin/qt.py

@ -208,7 +208,7 @@ class Plugin(TrustedCoinPlugin):
grid.addWidget(QLabel(window.format_amount(v/k) + ' ' + window.base_unit() + "/tx"), i, 1)
b = QRadioButton()
b.setChecked(k == n_prepay)
b.clicked.connect(lambda b, k=k: self.config.set_key('trustedcoin_prepay', k, True))
b.clicked.connect(lambda b, k=k: self.config.set_key('trustedcoin_prepay', k, save=True))
grid.addWidget(b, i, 2)
i += 1

8
electrum/simple_config.py

@ -158,7 +158,7 @@ class SimpleConfig(Logger):
updated = True
return updated
def set_key(self, key, value, save=True):
def set_key(self, key, value, *, save=True):
if not self.is_modifiable(key):
self.logger.warning(f"not changing config key '{key}' set on the command line")
return
@ -168,9 +168,9 @@ class SimpleConfig(Logger):
except Exception:
self.logger.info(f"json error: cannot save {repr(key)} ({repr(value)})")
return
self._set_key_in_user_config(key, value, save)
self._set_key_in_user_config(key, value, save=save)
def _set_key_in_user_config(self, key, value, save=True):
def _set_key_in_user_config(self, key, value, *, save=True):
with self.lock:
if value is not None:
self.user_config[key] = value
@ -709,7 +709,7 @@ class SimpleConfig(Logger):
def set_base_unit(self, unit):
assert unit in base_units.keys()
self.decimal_point = base_unit_name_to_decimal_point(unit)
self.set_key('decimal_point', self.decimal_point, True)
self.set_key('decimal_point', self.decimal_point, save=True)
def get_decimal_point(self):
return self.decimal_point

Loading…
Cancel
Save