From 3a2cc8bdee6399ad72b69c20064a30eff828dad4 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 20 Oct 2019 10:30:16 -0700 Subject: [PATCH] Replace .format with python 3.6 f-strings in onionshare_gui module --- onionshare_gui/__init__.py | 6 +++--- onionshare_gui/mode/__init__.py | 16 ++++----------- onionshare_gui/mode/file_selection.py | 2 +- onionshare_gui/mode/history.py | 24 +++++++++-------------- onionshare_gui/onionshare_gui.py | 19 ++++++------------ onionshare_gui/server_status.py | 6 ++---- onionshare_gui/settings_dialog.py | 12 ++++-------- onionshare_gui/tor_connection_dialog.py | 6 +++--- onionshare_gui/update_checker.py | 26 ++++++++++--------------- 9 files changed, 42 insertions(+), 75 deletions(-) diff --git a/onionshare_gui/__init__.py b/onionshare_gui/__init__.py index 23d8dd3d..73e0d305 100644 --- a/onionshare_gui/__init__.py +++ b/onionshare_gui/__init__.py @@ -63,7 +63,7 @@ def main(): common.define_css() # Display OnionShare banner - print("OnionShare {0:s} | https://onionshare.org/".format(common.version)) + print(f"OnionShare {common.version} | https://onionshare.org/") # Allow Ctrl-C to smoothly quit the program instead of throwing an exception # https://stackoverflow.com/questions/42814093/how-to-handle-ctrlc-in-python-app-with-pyqt @@ -124,10 +124,10 @@ def main(): valid = True for filename in filenames: if not os.path.isfile(filename) and not os.path.isdir(filename): - Alert(common, "{0:s} is not a valid file.".format(filename)) + Alert(common, f"{filename} is not a valid file.") valid = False if not os.access(filename, os.R_OK): - Alert(common, "{0:s} is not a readable file.".format(filename)) + Alert(common, f"{filename} is not a readable file.") valid = False if not valid: sys.exit() diff --git a/onionshare_gui/mode/__init__.py b/onionshare_gui/mode/__init__.py index 04709dc2..7180f24f 100644 --- a/onionshare_gui/mode/__init__.py +++ b/onionshare_gui/mode/__init__.py @@ -119,18 +119,10 @@ class Mode(QtWidgets.QWidget): if not seconds: seconds = "0" result = ( - ("{0}{1}, ".format(days, strings._("days_first_letter")) if days else "") - + ( - "{0}{1}, ".format(hours, strings._("hours_first_letter")) - if hours - else "" - ) - + ( - "{0}{1}, ".format(minutes, strings._("minutes_first_letter")) - if minutes - else "" - ) - + "{0}{1}".format(seconds, strings._("seconds_first_letter")) + (f"{days}{strings._('days_first_letter')}, " if days else "") + + (f"{hours}{strings._('hours_first_letter')}, " if hours else "") + + (f"{minutes}{strings._('minutes_first_letter')}, " if minutes else "") + + f"{seconds}{strings._('seconds_first_letter')}" ) return result diff --git a/onionshare_gui/mode/file_selection.py b/onionshare_gui/mode/file_selection.py index c505dc03..62cff0a7 100644 --- a/onionshare_gui/mode/file_selection.py +++ b/onionshare_gui/mode/file_selection.py @@ -171,7 +171,7 @@ class FileList(QtWidgets.QListWidget): if event.mimeData().hasUrls: self.setStyleSheet(self.common.css["share_file_list_drag_enter"]) count = len(event.mimeData().urls()) - self.drop_count.setText("+{}".format(count)) + self.drop_count.setText(f"+{count}") size_hint = self.drop_count.sizeHint() self.drop_count.setGeometry( diff --git a/onionshare_gui/mode/history.py b/onionshare_gui/mode/history.py index 85eec7e4..67b23072 100644 --- a/onionshare_gui/mode/history.py +++ b/onionshare_gui/mode/history.py @@ -181,9 +181,7 @@ class ReceiveHistoryItemFile(QtWidgets.QWidget): super(ReceiveHistoryItemFile, self).__init__() self.common = common - self.common.log( - "ReceiveHistoryItemFile", "__init__", "filename: {}".format(filename) - ) + self.common.log("ReceiveHistoryItemFile", "__init__", f"filename: {filename}") self.filename = filename self.dir = None @@ -265,7 +263,7 @@ class ReceiveHistoryItemFile(QtWidgets.QWidget): # Windows elif self.common.platform == "Windows": - subprocess.Popen(["explorer", "/select,{}".format(abs_filename)]) + subprocess.Popen(["explorer", f"/select,{abs_filename}"]) class ReceiveHistoryItem(HistoryItem): @@ -409,7 +407,7 @@ class IndividualFileHistoryItem(HistoryItem): self.timestamp_label.setStyleSheet( self.common.css["history_individual_file_timestamp_label"] ) - self.path_label = QtWidgets.QLabel("{}".format(self.path)) + self.path_label = QtWidgets.QLabel(self.path) self.status_code_label = QtWidgets.QLabel() # Progress bar @@ -437,7 +435,7 @@ class IndividualFileHistoryItem(HistoryItem): # Is a status code already sent? if "status_code" in data: - self.status_code_label.setText("{}".format(data["status_code"])) + self.status_code_label.setText(str(data["status_code"])) if data["status_code"] >= 200 and data["status_code"] < 300: self.status_code_label.setStyleSheet( self.common.css["history_individual_file_status_code_label_2xx"] @@ -649,7 +647,7 @@ class History(QtWidgets.QWidget): """ Add a new item. """ - self.common.log("History", "add", "id: {}, item: {}".format(id, item)) + self.common.log("History", "add", f"id: {id}, item: {item}") # Hide empty, show not empty self.empty.hide() @@ -699,9 +697,7 @@ class History(QtWidgets.QWidget): image = self.common.get_resource_path("images/history_completed_none.png") else: image = self.common.get_resource_path("images/history_completed.png") - self.completed_label.setText( - ' {1:d}'.format(image, self.completed_count) - ) + self.completed_label.setText(f' {self.completed_count}') self.completed_label.setToolTip( strings._("history_completed_tooltip").format(self.completed_count) ) @@ -716,7 +712,7 @@ class History(QtWidgets.QWidget): image = self.common.get_resource_path("images/history_in_progress.png") self.in_progress_label.setText( - ' {1:d}'.format(image, self.in_progress_count) + f' {self.in_progress_count}' ) self.in_progress_label.setToolTip( strings._("history_in_progress_tooltip").format(self.in_progress_count) @@ -731,9 +727,7 @@ class History(QtWidgets.QWidget): else: image = self.common.get_resource_path("images/history_requests.png") - self.requests_label.setText( - ' {1:d}'.format(image, self.requests_count) - ) + self.requests_label.setText(f' {self.requests_count}') self.requests_label.setToolTip( strings._("history_requests_tooltip").format(self.requests_count) ) @@ -777,7 +771,7 @@ class ToggleHistory(QtWidgets.QPushButton): if increment and not self.history_widget.isVisible(): self.indicator_count += 1 - self.indicator_label.setText("{}".format(self.indicator_count)) + self.indicator_label.setText(str(self.indicator_count)) if self.indicator_count == 0: self.indicator_label.hide() diff --git a/onionshare_gui/onionshare_gui.py b/onionshare_gui/onionshare_gui.py index 4639ea13..299130a9 100644 --- a/onionshare_gui/onionshare_gui.py +++ b/onionshare_gui/onionshare_gui.py @@ -655,22 +655,15 @@ class OnionShareGui(QtWidgets.QMainWindow): ) if event["type"] == Web.REQUEST_OTHER: - if event["path"] != "/favicon.ico" and event[ - "path" - ] != "/{}/shutdown".format(mode.web.shutdown_password): - self.status_bar.showMessage( - "{0:s}: {1:s}".format( - strings._("other_page_loaded"), event["path"] - ) - ) + if ( + event["path"] != "/favicon.ico" + and event["path"] != f"/{mode.web.shutdown_password}/shutdown" + ): + self.status_bar.showMessage(f"{strings._("other_page_loaded")}: {event["path"]}") if event["type"] == Web.REQUEST_INVALID_PASSWORD: self.status_bar.showMessage( - "[#{0:d}] {1:s}: {2:s}".format( - mode.web.invalid_passwords_count, - strings._("incorrect_password"), - event["data"], - ) + f"[#{mode.web.invalid_passwords_count}] {strings._('incorrect_password')}: {event['data']}" ) mode.timer_callback() diff --git a/onionshare_gui/server_status.py b/onionshare_gui/server_status.py index 4ce1f5d2..5732ce91 100644 --- a/onionshare_gui/server_status.py +++ b/onionshare_gui/server_status.py @@ -540,9 +540,7 @@ class ServerStatus(QtWidgets.QWidget): Returns the OnionShare URL. """ if self.common.settings.get("public_mode"): - url = "http://{0:s}".format(self.app.onion_host) + url = f"http://{self.app.onion_host}" else: - url = "http://onionshare:{0:s}@{1:s}".format( - self.web.password, self.app.onion_host - ) + url = f"http://onionshare:{self.web.password}@{self.app.onion_host}" return url diff --git a/onionshare_gui/settings_dialog.py b/onionshare_gui/settings_dialog.py index 503e53a0..4c03bd23 100644 --- a/onionshare_gui/settings_dialog.py +++ b/onionshare_gui/settings_dialog.py @@ -672,7 +672,7 @@ class SettingsDialog(QtWidgets.QDialog): strings._("gui_settings_button_cancel") ) self.cancel_button.clicked.connect(self.cancel_clicked) - version_label = QtWidgets.QLabel("OnionShare {0:s}".format(self.common.version)) + version_label = QtWidgets.QLabel(f"OnionShare {self.common.version}") version_label.setStyleSheet(self.common.css["settings_version"]) self.help_button = QtWidgets.QPushButton(strings._("gui_settings_button_help")) self.help_button.clicked.connect(self.help_clicked) @@ -1040,7 +1040,7 @@ class SettingsDialog(QtWidgets.QDialog): self.common.log( "SettingsDialog", "data_dir_button_clicked", - "selected dir: {}".format(selected_dir), + f"selected dir: {selected_dir}", ) self.data_dir_lineedit.setText(selected_dir) @@ -1255,9 +1255,7 @@ class SettingsDialog(QtWidgets.QDialog): self.common.log( "SettingsDialog", "save_clicked", - "Onion done rebooting, connected to Tor: {}".format( - self.onion.connected_to_tor - ), + f"Onion done rebooting, connected to Tor: {self.onion.connected_to_tor}", ) if self.onion.is_authenticated() and not tor_con.wasCanceled(): @@ -1473,9 +1471,7 @@ class SettingsDialog(QtWidgets.QDialog): def _tor_status_update(self, progress, summary): self.tor_status.setText( - "{}
{}% {}".format( - strings._("connecting_to_tor"), progress, summary - ) + f"{strings._('connecting_to_tor')}
{progress}% {summary}" ) self.qtapp.processEvents() if "Done" in summary: diff --git a/onionshare_gui/tor_connection_dialog.py b/onionshare_gui/tor_connection_dialog.py index 58fc01d0..3d20cd22 100644 --- a/onionshare_gui/tor_connection_dialog.py +++ b/onionshare_gui/tor_connection_dialog.py @@ -86,7 +86,7 @@ class TorConnectionDialog(QtWidgets.QProgressDialog): def _tor_status_update(self, progress, summary): self.setValue(int(progress)) self.setLabelText( - "{}
{}".format(strings._("connecting_to_tor"), summary) + f"{strings._("connecting_to_tor")}
{summary}" ) def _connected_to_tor(self): @@ -112,7 +112,7 @@ class TorConnectionDialog(QtWidgets.QProgressDialog): # Display the exception in an alert box Alert( self.common, - "{}\n\n{}".format(msg, strings._("gui_tor_connection_error_settings")), + f"{msg}\n\n{strings._("gui_tor_connection_error_settings")}", QtWidgets.QMessageBox.Warning, ) @@ -162,7 +162,7 @@ class TorConnectionThread(QtCore.QThread): except Exception as e: self.common.log( - "TorConnectionThread", "run", "caught exception: {}".format(e.args[0]) + "TorConnectionThread", "run", f"caught exception: {e.args[0]}" ) self.error_connecting_to_tor.emit(str(e.args[0])) diff --git a/onionshare_gui/update_checker.py b/onionshare_gui/update_checker.py index a8bd7979..2b0edec9 100644 --- a/onionshare_gui/update_checker.py +++ b/onionshare_gui/update_checker.py @@ -71,7 +71,7 @@ class UpdateChecker(QtCore.QObject): self.config = config def check(self, force=False, config=False): - self.common.log("UpdateChecker", "check", "force={}".format(force)) + self.common.log("UpdateChecker", "check", f"force={force}") # Load the settings settings = Settings(self.common, config) settings.load() @@ -100,9 +100,7 @@ class UpdateChecker(QtCore.QObject): # Download the latest-version file over Tor try: # User agent string includes OnionShare version and platform - user_agent = "OnionShare {}, {}".format( - self.common.version, self.common.platform - ) + user_agent = f"OnionShare {self.common.version}, {self.common.platform}" # If the update is forced, add '?force=1' to the URL, to more # accurately measure daily users @@ -118,9 +116,7 @@ class UpdateChecker(QtCore.QObject): onion_domain = "elx57ue5uyfplgva.onion" self.common.log( - "UpdateChecker", - "check", - "loading http://{}{}".format(onion_domain, path), + "UpdateChecker", "check", f"loading http://{onion_domain}{path}" ) (socks_address, socks_port) = self.onion.get_tor_socks_port() @@ -130,9 +126,9 @@ class UpdateChecker(QtCore.QObject): s.settimeout(15) # 15 second timeout s.connect((onion_domain, 80)) - http_request = "GET {} HTTP/1.0\r\n".format(path) - http_request += "Host: {}\r\n".format(onion_domain) - http_request += "User-Agent: {}\r\n".format(user_agent) + http_request = f"GET {path} HTTP/1.0\r\n" + http_request += f"Host: {onion_domain}\r\n" + http_request += f"User-Agent: {user_agent}\r\n" http_request += "\r\n" s.sendall(http_request.encode("utf-8")) @@ -146,11 +142,11 @@ class UpdateChecker(QtCore.QObject): self.common.log( "UpdateChecker", "check", - "latest OnionShare version: {}".format(latest_version), + f"latest OnionShare version: {latest_version}", ) except Exception as e: - self.common.log("UpdateChecker", "check", "{}".format(e)) + self.common.log("UpdateChecker", "check", str(e)) self.update_error.emit() raise UpdateCheckerCheckError @@ -174,9 +170,7 @@ class UpdateChecker(QtCore.QObject): settings.save() # Do we need to update? - update_url = "https://github.com/micahflee/onionshare/releases/tag/v{}".format( - latest_version - ) + update_url = f"https://github.com/micahflee/onionshare/releases/tag/v{latest_version}" installed_version = self.common.version if installed_version < latest_version: self.update_available.emit( @@ -217,7 +211,7 @@ class UpdateThread(QtCore.QThread): u.check(config=self.config, force=self.force) except Exception as e: # If update check fails, silently ignore - self.common.log("UpdateThread", "run", "{}".format(e)) + self.common.log("UpdateThread", "run", str(e)) pass def _update_available(self, update_url, installed_version, latest_version):