diff --git a/MainWindow.py b/MainWindow.py index b0407e0..bca7ccc 100644 --- a/MainWindow.py +++ b/MainWindow.py @@ -175,6 +175,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): writeGeometry(self) super().closeEvent(event) return + @Slot(QModelIndex) # type: ignore def rowClicked(self, index: QModelIndex) -> None: if not index.isValid(): diff --git a/lib/dbConfig.py b/lib/dbConfig.py index a19cd92..082e586 100644 --- a/lib/dbConfig.py +++ b/lib/dbConfig.py @@ -1,6 +1,5 @@ from datetime import date -from PySide6.QtCore import QSettings from pony.orm import ( # type: ignore[import-untyped] Database, LongStr, @@ -10,9 +9,11 @@ from pony.orm import ( # type: ignore[import-untyped] Set, set_sql_debug, ) +from PySide6.QtCore import QSettings db = Database() + class Cases(db.Entity): # type: ignore[name-defined] case_id = PrimaryKey(int, auto=True) docket_id = Required(str) @@ -49,15 +50,15 @@ class History(db.Entity): # type: ignore[name-defined] def updateDatabase(settings: QSettings) -> None: set_sql_debug(True) - engine = settings.value('engine') - if engine not in ['QMYSQL', 'MARIADB']: + engine = settings.value("engine") + if engine not in ["QMYSQL", "MARIADB"]: raise Exception(f"Unknown database engine: {engine}") db.bind( provider="mysql", - user=settings.value('user'), - host=settings.value('hostname'), - database=settings.value('databasename'), - password=settings.value('password'), + user=settings.value("user"), + host=settings.value("hostname"), + database=settings.value("databasename"), + password=settings.value("password"), ) db.generate_mapping(create_tables=True) db.disconnect() diff --git a/lib/utils.py b/lib/utils.py index 2d859e2..37eb406 100644 --- a/lib/utils.py +++ b/lib/utils.py @@ -1,6 +1,13 @@ from typing import NoReturn, cast -from PySide6.QtCore import QByteArray, QCoreApplication, QObject, QRect, QSettings, Signal +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 @@ -29,23 +36,26 @@ class QStyleOptionViewItemInit(QStyleOptionViewItem): font: QFont text: str -def openSettings(group:str|None = None) -> QSettings: + +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: + +def readGeometry(widget: QWidget) -> None: settings = openSettings(widget.objectName()) - geometry = settings.value('geometry', QByteArray()) + 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.setValue("geometry", widget.saveGeometry()) settings.endGroup() return diff --git a/pdfView.py b/pdfView.py index 3a854f1..985e0b5 100644 --- a/pdfView.py +++ b/pdfView.py @@ -83,7 +83,7 @@ class PDFViewer(QDialog, Ui_pdfViewer): def __init__(self, parent: QWidget | None) -> None: super(PDFViewer, self).__init__(parent) self.setupUi(self) - self.setObjectName('PDFViewer') + self.setObjectName("PDFViewer") readGeometry(self) print(self.objectName()) self.zoomSelector = ZoomSelector(self) diff --git a/scotus-pull.py b/scotus-pull.py index 1d6283f..9a5d4ef 100755 --- a/scotus-pull.py +++ b/scotus-pull.py @@ -25,20 +25,20 @@ from MainWindow import MainWindow def main() -> int: # app = QApplication(sys.argv) - settings = openSettings('database') + settings = openSettings("database") file = QFile(settings.fileName()) if not file.exists(): result = setupDialog().exec() if result == QDialog.DialogCode.Rejected: print(f"We require database credentials") - return(2) + return 2 updateDatabase(settings) db = QSqlDatabase.addDatabase("QMYSQL") db.setHostName(settings.value("hostname")) - portStr = cast(str, settings.value('port', '3306')) + portStr = cast(str, settings.value("port", "3306")) db.setPort(int(portStr)) - db.setDatabaseName(settings.value("databasename","scotus")) # type: ignore - db.setUserName(settings.value("user","scotus")) # type: ignore + db.setDatabaseName(settings.value("databasename", "scotus")) # type: ignore + db.setUserName(settings.value("user", "scotus")) # type: ignore db.setPassword(settings.value("password")) settings.endGroup() db.open() diff --git a/setupDialog.py b/setupDialog.py index 0626402..9864233 100644 --- a/setupDialog.py +++ b/setupDialog.py @@ -1,20 +1,21 @@ -from PySide6.QtCore import Slot, Qt +from PySide6.QtCore import Qt, Slot from PySide6.QtGui import QPalette from PySide6.QtWidgets import QDialog, QStatusBar, QVBoxLayout, QWidget from lib.utils import openSettings from ui.dbSetup import Ui_setupDialog -class setupDialog(QDialog,Ui_setupDialog): - def __init__(self, parent: QWidget | None = None): - super(setupDialog,self).__init__(parent) + +class setupDialog(QDialog, Ui_setupDialog): + def __init__(self, parent: QWidget | None = None) -> None: + super(setupDialog, self).__init__(parent) self.setupUi(self) self.sqliteEdit.setEnabled(False) layout = self.layout() assert isinstance(layout, QVBoxLayout) self.statusBar = QStatusBar(self) - self.statusBar.setObjectName('statusBar') + self.statusBar.setObjectName("statusBar") where = layout.indexOf(self.buttonBox) layout.insertWidget(where, self.statusBar) self.pwEdit.editingFinished.connect(self.pwDone) @@ -22,7 +23,7 @@ class setupDialog(QDialog,Ui_setupDialog): return @Slot() - def pwDone(self): + def pwDone(self) -> None: pw = self.pwEdit.text() confirm = self.pwConfirmEdit.text() @@ -37,29 +38,29 @@ class setupDialog(QDialog,Ui_setupDialog): self.pwGood = True return - @Slot(int) # type: ignore - def done(self, r:int) -> None: + @Slot(int) # type: ignore + def done(self, r: int) -> None: if r == QDialog.DialogCode.Rejected: - super(setupDialog,self).done(r) + super(setupDialog, self).done(r) return self.pwDone() if not self.pwGood: return - super(setupDialog,self).done(r) + super(setupDialog, self).done(r) return @Slot() def accept(self) -> None: - settings=openSettings('database') - settings.setValue('hostname', self.hostEdit.text()) - settings.setValue('databasename', self.dbEdit.text()) - settings.setValue('user',self.userEdit.text()) - settings.setValue('password', self.pwEdit.text()) - settings.setValue('port', self.portEdit.text()) + settings = openSettings("database") + settings.setValue("hostname", self.hostEdit.text()) + settings.setValue("databasename", self.dbEdit.text()) + settings.setValue("user", self.userEdit.text()) + settings.setValue("password", self.pwEdit.text()) + settings.setValue("port", self.portEdit.text()) if self.comboBox.currentIndex() == 0: - settings.setValue('engine', 'QMYSQL') + settings.setValue("engine", "QMYSQL") elif self.comboBox.currentIndex() == 1: - settings.setValue('engine', 'QSQLITE') + settings.setValue("engine", "QSQLITE") # Other types: QDB2, QIBASE, QOCI, QODBC, QPSQL, QMIMER else: print("Bad Database Type")