""" PyQT6 GUI for Kontor """ import logging import sys import logging.config from pathlib import Path from platformdirs import PlatformDirs from PySide6.QtWidgets import QApplication import yaml from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from kontor_schema.base import Base from gui.main_window import MainWindow if __name__ == '__main__': app = QApplication(sys.argv) dirs = PlatformDirs("kontor") database_config = Path(dirs.user_config_dir, 'database-config.yaml') with open(database_config, 'rt') as f: db_config = yaml.safe_load(f.read()) connect_string = ('mariadb+mariadbconnector://{}:{}@{}:{}/{}'.format( db_config['mariadb']['user'], db_config['mariadb']['password'], db_config['mariadb']['host'], db_config['mariadb']['port'], db_config['mariadb']['database'] )) logging_config = Path(dirs.user_config_dir, 'logging-config.yaml') with open(logging_config, 'rt') as f: config = yaml.safe_load(f.read()) logging.config.dictConfig(config) logger = logging.getLogger('development') # engine = create_engine(connect_string, echo=True) engine = create_engine(connect_string) Base.metadata.create_all(bind=engine, checkfirst=True) __session__ = sessionmaker(bind=engine) window = MainWindow(engine, logger) window.show() app.exec()