From c5db9d63277201ee58829f7eb0656c534d04c249 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Wed, 12 May 2021 14:27:15 +0200 Subject: examples: use f-strings Change-Id: I0360f1476af666494c730e4f3c8f4f3c562abc09 Reviewed-by: Christian Tismer --- examples/charts/audio/audio.py | 2 +- examples/external/matplotlib/widget3d/widget3d.py | 14 +++++++------- examples/installer_test/hello.py | 8 ++++---- examples/multimedia/camera/camera.py | 2 +- examples/opengl/contextinfo/contextinfo.py | 20 +++++++++++++------- examples/remoteobjects/modelview/modelviewserver.py | 9 ++++----- examples/texttospeech/hello_speak/hello_speak.py | 2 +- examples/utils/pyside_config.py | 8 ++++---- examples/webchannel/standalone/core.py | 2 +- examples/webchannel/standalone/dialog.py | 2 +- examples/webchannel/standalone/main.py | 3 +-- .../webenginewidgets/tabbedbrowser/bookmarkwidget.py | 19 +++++++++---------- .../tabbedbrowser/browsertabwidget.py | 2 +- .../webenginewidgets/tabbedbrowser/downloadwidget.py | 14 ++++++++------ examples/webenginewidgets/tabbedbrowser/main.py | 2 +- examples/widgets/gallery/widgetgallery.py | 18 +++++++++++------- 16 files changed, 68 insertions(+), 59 deletions(-) (limited to 'examples') diff --git a/examples/charts/audio/audio.py b/examples/charts/audio/audio.py index 0075139ba..ccb6b2e9a 100644 --- a/examples/charts/audio/audio.py +++ b/examples/charts/audio/audio.py @@ -69,7 +69,7 @@ class MainWindow(QMainWindow): self.chart.setAxisX(self.axisX, self.series) self.chart.setAxisY(self.axisY, self.series) self.chart.legend().hide() - self.chart.setTitle("Data from the microphone ({})".format(device.deviceName())) + self.chart.setTitle(f"Data from the microphone ({device.deviceName()})") formatAudio = QAudioFormat() formatAudio.setSampleRate(8000) diff --git a/examples/external/matplotlib/widget3d/widget3d.py b/examples/external/matplotlib/widget3d/widget3d.py index 1996bf699..9000372ef 100644 --- a/examples/external/matplotlib/widget3d/widget3d.py +++ b/examples/external/matplotlib/widget3d/widget3d.py @@ -86,14 +86,14 @@ class ApplicationWindow(QMainWindow): self.slider_elev = QSlider(minimum=0, maximum=360, orientation=Qt.Horizontal) self.slider_azim_layout = QHBoxLayout() - self.slider_azim_layout.addWidget(QLabel("{}".format(self.slider_azim.minimum()))) + self.slider_azim_layout.addWidget(QLabel(f"{self.slider_azim.minimum()}")) self.slider_azim_layout.addWidget(self.slider_azim) - self.slider_azim_layout.addWidget(QLabel("{}".format(self.slider_azim.maximum()))) + self.slider_azim_layout.addWidget(QLabel(f"{self.slider_azim.maximum())) self.slider_elev_layout = QHBoxLayout() - self.slider_elev_layout.addWidget(QLabel("{}".format(self.slider_elev.minimum()))) + self.slider_elev_layout.addWidget(QLabel(f"{self.slider_elev.minimum())) self.slider_elev_layout.addWidget(self.slider_elev) - self.slider_elev_layout.addWidget(QLabel("{}".format(self.slider_elev.maximum()))) + self.slider_elev_layout.addWidget(QLabel(f"{self.slider_elev.maximum())) # Table (Right) self.table = QTableWidget() @@ -147,9 +147,9 @@ class ApplicationWindow(QMainWindow): def set_table_data(self, X, Y, Z): for i in range(len(X)): - self.table.setItem(i, 0, QTableWidgetItem("{:.2f}".format(X[i]))) - self.table.setItem(i, 1, QTableWidgetItem("{:.2f}".format(Y[i]))) - self.table.setItem(i, 2, QTableWidgetItem("{:.2f}".format(Z[i]))) + self.table.setItem(i, 0, QTableWidgetItem(f"{X[i]:.2f}")) + self.table.setItem(i, 1, QTableWidgetItem(f"{Y[i]:.2f}")) + self.table.setItem(i, 2, QTableWidgetItem(f"{Z[i]:.2f}")) def set_canvas_table_configuration(self, row_count, data): self.fig.set_canvas(self.canvas) diff --git a/examples/installer_test/hello.py b/examples/installer_test/hello.py index b8e5df914..94d82d4ab 100644 --- a/examples/installer_test/hello.py +++ b/examples/installer_test/hello.py @@ -74,7 +74,7 @@ class MyWidget(QWidget): "Hola Mundo", "Привет мир"] self.button = QPushButton("Click me!") - self.text = QLabel("Hello World auto_quit={}".format(auto_quit)) + self.text = QLabel(f"Hello World auto_quit={auto_quit}") self.text.setAlignment(Qt.AlignCenter) self.layout = QVBoxLayout() @@ -91,9 +91,9 @@ class MyWidget(QWidget): if __name__ == "__main__": - print("Start of hello.py ", time.ctime()) - print(" sys.version = {}".format(sys.version.splitlines()[0])) - print(" platform.platform() = {}".format(platform.platform())) + print("Start of hello.py ", time.ctime()) + print(" sys.version = ", sys.version.splitlines()[0]) + print(" platform.platform() = ", platform.platform()) app = QApplication() diff --git a/examples/multimedia/camera/camera.py b/examples/multimedia/camera/camera.py index 0337ecc36..e7e12cbe7 100644 --- a/examples/multimedia/camera/camera.py +++ b/examples/multimedia/camera/camera.py @@ -159,7 +159,7 @@ class MainWindow(QMainWindow): def imageSaved(self, id, fileName): index = self.tabWidget.count() imageView = ImageView(self.currentPreview, fileName) - self.tabWidget.addTab(imageView, "Capture #{}".format(index)) + self.tabWidget.addTab(imageView, f"Capture #{index}") self.tabWidget.setCurrentIndex(index) diff --git a/examples/opengl/contextinfo/contextinfo.py b/examples/opengl/contextinfo/contextinfo.py index 5a64f168e..4e2704f1c 100644 --- a/examples/opengl/contextinfo/contextinfo.py +++ b/examples/opengl/contextinfo/contextinfo.py @@ -238,13 +238,19 @@ class RenderWindow(QWindow): if not self.context.makeCurrent(self): raise Exception("makeCurrent() failed") functions = self.context.functions() - text = """Vendor: {}\nRenderer: {}\nVersion: {}\nShading language: {} -\nContext Format: {}\n\nSurface Format: {}""".format( - functions.glGetString(GL.GL_VENDOR), functions.glGetString(GL.GL_RENDERER), - functions.glGetString(GL.GL_VERSION), - functions.glGetString(GL.GL_SHADING_LANGUAGE_VERSION), - print_surface_format(self.context.format()), - print_surface_format(self.format())) + gl_vendor = functions.glGetString(GL.GL_VENDOR) + gl_renderer = functions.glGetString(GL.GL_RENDERER) + gl_version = functions.glGetString(GL.GL_VERSION) + gl_lang_version = functions.glGetString(GL.GL_SHADING_LANGUAGE_VERSION) + context_surface_format = print_surface_format(self.context.format()) + surface_format = print_surface_format(self.format()) + + text = ("Vendor: {gl_vendor}\n" + "Renderer: {gl_renderer}\n" + "Version: {gl_version}\n" + "Shading language: {gl_lang_version}\n" + "Context Format: {context_surface_format}\n\n" + "Surface Format: {surface_format}") self.context.doneCurrent() return text diff --git a/examples/remoteobjects/modelview/modelviewserver.py b/examples/remoteobjects/modelview/modelviewserver.py index 012fbf6ae..ac3acf999 100644 --- a/examples/remoteobjects/modelview/modelviewserver.py +++ b/examples/remoteobjects/modelview/modelviewserver.py @@ -85,8 +85,7 @@ def add_child(num_children, nesting_level): if nesting_level == 0: return result for i in range(num_children): - child = QStandardItem("Child num {}, nesting Level {}".format(i + 1, - nesting_level)) + child = QStandardItem(f"Child num {i + 1}, nesting Level {nesting_level}") if i == 0: child.appendRow(add_child(num_children, nesting_level - 1)) result.append(child) @@ -102,15 +101,15 @@ if __name__ == '__main__': "Second Column with spacing"] source_model.setHorizontalHeaderLabels(horizontal_header_list) for i in range(model_size): - first_item = QStandardItem("FancyTextNumber {}".format(i)) + first_item = QStandardItem(f"FancyTextNumber {i}") if i == 0: first_item.appendRow(add_child(2, 2)) - second_item = QStandardItem("FancyRow2TextNumber {}".format(i)) + second_item = QStandardItem(f"FancyRow2TextNumber {i}") if i % 2 == 0: first_item.setBackground(Qt.red) row = [first_item, second_item] source_model.invisibleRootItem().appendRow(row) - list.append("FancyTextNumber {}".format(i)) + list.append(f"FancyTextNumber {i}") # Needed by QMLModelViewClient role_names = { diff --git a/examples/texttospeech/hello_speak/hello_speak.py b/examples/texttospeech/hello_speak/hello_speak.py index 970d58b57..98be4f0c6 100644 --- a/examples/texttospeech/hello_speak/hello_speak.py +++ b/examples/texttospeech/hello_speak/hello_speak.py @@ -82,7 +82,7 @@ class MainWindow(QMainWindow): engineName = engineNames[0] self.engine = QTextToSpeech(engineName) self.engine.stateChanged.connect(self.stateChanged) - self.setWindowTitle('QTextToSpeech Example ({})'.format(engineName)) + self.setWindowTitle(f'QTextToSpeech Example ({engineName})') self.voices = [] for voice in self.engine.availableVoices(): self.voices.append(voice) diff --git a/examples/utils/pyside_config.py b/examples/utils/pyside_config.py index 523879c12..02d4a5da2 100644 --- a/examples/utils/pyside_config.py +++ b/examples/utils/pyside_config.py @@ -126,16 +126,16 @@ for i, (flag, _, _, description) in enumerate(options): if i < len(options) - 1: options_usage += '\n' -usage = """ +usage = f""" Utility to determine include/link options of shiboken/PySide and Python for qmake/CMake projects that would like to embed or build custom shiboken/PySide bindings. Usage: pyside_config.py [option] Options: -{} +{options_usage} -a Print all options and their values --help/-h Print this help -""".format(options_usage) +""" option = sys.argv[1] if len(sys.argv) == 2 else '-a' if option == '-h' or option == '--help': @@ -300,7 +300,7 @@ def get_package_include_path(which_package): if package_path is None: return None - includes = "{0}/include".format(package_path) + includes = f"{package_path}/include" return includes diff --git a/examples/webchannel/standalone/core.py b/examples/webchannel/standalone/core.py index f26b6b834..ff62bdde1 100644 --- a/examples/webchannel/standalone/core.py +++ b/examples/webchannel/standalone/core.py @@ -59,4 +59,4 @@ class Core(QObject): @Slot(str) def receiveText(self, text): - self._dialog.displayMessage("Received message: {}".format(text)) + self._dialog.displayMessage(f"Received message: {text}") diff --git a/examples/webchannel/standalone/dialog.py b/examples/webchannel/standalone/dialog.py index 2db033fcd..886a323f8 100644 --- a/examples/webchannel/standalone/dialog.py +++ b/examples/webchannel/standalone/dialog.py @@ -64,5 +64,5 @@ class Dialog(QDialog): if not text: return self.sendText.emit(text) - self.displayMessage("Sent message: {}".format(text)) + self.displayMessage(f"Sent message: {text}") self._ui.input.clear() diff --git a/examples/webchannel/standalone/main.py b/examples/webchannel/standalone/main.py index 0efe324eb..f61954fc5 100644 --- a/examples/webchannel/standalone/main.py +++ b/examples/webchannel/standalone/main.py @@ -91,8 +91,7 @@ if __name__ == '__main__': url = QUrl.fromLocalFile(cur_dir + "/index.html") QDesktopServices.openUrl(url) - message = "Initialization complete, opening browser at {}.".format( - url.toDisplayString()) + message = f"Initialization complete, opening browser at {url.toDisplayString()}." dialog.displayMessage(message) dialog.show() diff --git a/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py b/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py index 8689c9d3f..5310a46f0 100644 --- a/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py +++ b/examples/webenginewidgets/tabbedbrowser/bookmarkwidget.py @@ -64,8 +64,8 @@ _default_bookmarks = [ def _config_dir(): - return '{}/QtForPythonBrowser'.format( - QStandardPaths.writableLocation(QStandardPaths.ConfigLocation)) + location = QStandardPaths.writableLocation(QStandardPaths.ConfigLocation) + return f'{location}/QtForPythonBrowser' _bookmark_file = 'bookmarks.json' @@ -118,9 +118,8 @@ def _serialize_model(model, directory): if not icon.isNull(): icon_sizes = icon.availableSizes() largest_size = icon_sizes[len(icon_sizes) - 1] - icon_file_name = '{}/icon{:02}_{:02}_{}.png'.format(directory, - f, i, - largest_size.width()) + w = largest_size.width() + icon_file_name = f'{directory}/icon{f:02}_{i:02}_{w}.png' icon.pixmap(largest_size).save(icon_file_name, 'PNG') entry.append(icon_file_name) result.append(entry) @@ -235,7 +234,7 @@ class BookmarkWidget(QTreeView): self._remove_item(current_item) def _remove_item(self, item): - message = "Would you like to remove \"{}\"?".format(item.text()) + message = f"Would you like to remove \"{item.text()}\"?" button = QMessageBox.question(self, "Remove", message, QMessageBox.Yes | QMessageBox.No) if button == QMessageBox.Yes: @@ -248,14 +247,14 @@ class BookmarkWidget(QTreeView): native_dir_path = QDir.toNativeSeparators(dir_path) dir = QFileInfo(dir_path) if not dir.isDir(): - print('Creating {}...'.format(native_dir_path)) + print(f'Creating {native_dir_path}...') if not QDir(dir.absolutePath()).mkpath(dir.fileName()): - warnings.warn('Cannot create {}.'.format(native_dir_path), + warnings.warn(f'Cannot create {native_dir_path}.', RuntimeWarning) return serialized_model = _serialize_model(self._model, dir_path) bookmark_file_name = os.path.join(native_dir_path, _bookmark_file) - print('Writing {}...'.format(bookmark_file_name)) + print(f'Writing {bookmark_file_name}...') with open(bookmark_file_name, 'w') as bookmark_file: json.dump(serialized_model, bookmark_file, indent=4) @@ -263,7 +262,7 @@ class BookmarkWidget(QTreeView): bookmark_file_name = os.path.join(QDir.toNativeSeparators(_config_dir()), _bookmark_file) if os.path.exists(bookmark_file_name): - print('Reading {}...'.format(bookmark_file_name)) + print(f'Reading {bookmark_file_name}...') return json.load(open(bookmark_file_name)) return _default_bookmarks diff --git a/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py b/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py index b95ccee45..397302ac1 100644 --- a/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py +++ b/examples/webenginewidgets/tabbedbrowser/browsertabwidget.py @@ -79,7 +79,7 @@ class BrowserTabWidget(QTabWidget): self._window_factory_function) index = self.count() self._webengineviews.append(web_engine_view) - title = 'Tab {}'.format(index + 1) + title = f'Tab {index + 1}' self.addTab(web_engine_view, title) page = web_engine_view.page() page.titleChanged.connect(self._title_changed) diff --git a/examples/webenginewidgets/tabbedbrowser/downloadwidget.py b/examples/webenginewidgets/tabbedbrowser/downloadwidget.py index 5319d66fc..17ebd583d 100644 --- a/examples/webenginewidgets/tabbedbrowser/downloadwidget.py +++ b/examples/webenginewidgets/tabbedbrowser/downloadwidget.py @@ -64,9 +64,10 @@ class DownloadWidget(QProgressBar): description = QFileInfo(path).fileName() description_length = len(description) if description_length > 30: - description = '{}...{}'.format(description[0:10], - description[description_length - 10:]) - self.setFormat('{} %p%'.format(description)) + description_ini = description[0:10] + description_end = description[description_length - 10:] + description = f'{description_ini}...{description_end}' + self.setFormat(f'{description} %p%') self.setOrientation(Qt.Horizontal) self.setMinimum(0) self.setValue(0) @@ -90,11 +91,12 @@ class DownloadWidget(QProgressBar): def _update_tool_tip(self): path = self._download_item.path() - tool_tip = "{}\n{}".format(self._download_item.url().toString(), - QDir.toNativeSeparators(path)) + url_str = self._download_item.url().toString() + native_sep = QDir.toNativeSeparators(path) + tool_tip = f"{url_str}\n{native_sep}" total_bytes = self._download_item.totalBytes() if total_bytes > 0: - tool_tip += "\n{}K".format(total_bytes / 1024) + tool_tip += f"\n{total_bytes / 1024}K" state = self.state() if state == QWebEngineDownloadItem.DownloadRequested: tool_tip += "\n(requested)" diff --git a/examples/webenginewidgets/tabbedbrowser/main.py b/examples/webenginewidgets/tabbedbrowser/main.py index b1ca4983b..f2280c273 100644 --- a/examples/webenginewidgets/tabbedbrowser/main.py +++ b/examples/webenginewidgets/tabbedbrowser/main.py @@ -348,7 +348,7 @@ class MainWindow(QMainWindow): def _update_zoom_label(self): percent = int(self._tab_widget.zoom_factor() * 100) - self._zoom_label.setText("{}%".format(percent)) + self._zoom_label.setText(f"{percent}%") def _download_requested(self, item): # Remove old downloads before opening a new one diff --git a/examples/widgets/gallery/widgetgallery.py b/examples/widgets/gallery/widgetgallery.py index 6cebd5382..0693750ac 100644 --- a/examples/widgets/gallery/widgetgallery.py +++ b/examples/widgets/gallery/widgetgallery.py @@ -118,24 +118,28 @@ def embed_into_hbox_layout(w, margin=5): def format_geometry(rect): """Format a geometry as a X11 geometry specification""" - return "{}x{}{:+d}{:+d}".format(rect.width(), rect.height(), - rect.x(), rect.y()) + w = rect.width() + h = rect.height() + x = rect.x() + y = rect.y() + return f"{w}x{h}{x:+d}{y:+d}" def screen_info(widget): """Format information on the screens""" policy = QGuiApplication.highDpiScaleFactorRoundingPolicy() policy_string = str(policy).split('.')[-1] - result = "

High DPI scale factor rounding policy: {}

    ".format(policy_string) + result = f"

    High DPI scale factor rounding policy: {policy_string}

      " for screen in QGuiApplication.screens(): current = screen == widget.screen() result += "
    1. " if current: result += "" - result += '"{}" {} {}DPI, DPR={}'.format(screen.name(), - format_geometry(screen.geometry()), - int(screen.logicalDotsPerInchX()), - screen.devicePixelRatio()) + name = screen.name() + geometry = format_geometry(screen.geometry) + dpi = int(screen.logicalDotsPerInchX()) + dpr = screen.devicePixelRatio() + result += f'"{name}" {geometry} {dpi}DPI, DPR={dpr}' if current: result += "" result += "
    2. " -- cgit v1.2.3