from typing import NoReturn, cast from PySide6.QtCore import ( QByteArray, QCoreApplication, QObject, QRect, QSettings, Signal, ) from PySide6.QtGui import QColor, QFont from PySide6.QtSql import QSqlQuery from PySide6.QtWidgets import QStyleOptionViewItem, QWidget translate = QCoreApplication.translate def query_error(query: QSqlQuery) -> NoReturn: """Standarized query error reporter.""" print( translate("MainWindow", "SQL Error:\n") + "{}\n{}\n{}:{}".format( query.executedQuery(), query.boundValues(), query.lastError().type(), query.lastError().text(), ) ) raise Exception(translate("MainWindow", "SQL Error")) class QStyleOptionViewItemInit(QStyleOptionViewItem): backgroundBrush: QColor rect: QRect widget: QWidget font: QFont text: str def openSettings(group: str | None = None) -> QSettings: settings = QSettings("Troglodite Services", "SCOTUS Watch") if group is not None: settings.beginGroup(group) return settings def readGeometry(widget: QWidget) -> None: settings = openSettings(widget.objectName()) geometry = settings.value("geometry", QByteArray()) assert isinstance(geometry, QByteArray) if not geometry.isEmpty(): widget.restoreGeometry(geometry) settings.endGroup() return def writeGeometry(widget: QWidget) -> None: settings = openSettings(widget.objectName()) settings.setValue("geometry", widget.saveGeometry()) settings.endGroup() return