#!venv/bin/python3 import faulthandler import sys from typing import cast from PySide6.QtCore import QFile from PySide6.QtSql import ( QSqlDatabase, ) from PySide6.QtWidgets import ( QApplication, QDialog, QMainWindow, ) from lib.dbConfig import updateDatabase from lib.utils import openSettings from setupDialog import setupDialog faulthandler.enable() from MainWindow import MainWindow def main() -> int: # app = QApplication(sys.argv) 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 updateDatabase(settings) db = QSqlDatabase.addDatabase("QMYSQL") db.setHostName(settings.value("hostname")) 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.setPassword(settings.value("password")) settings.endGroup() db.open() window = MainWindow() assert isinstance(window, QMainWindow) return app.exec() if __name__ == "__main__": sys.exit(main())