| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- """
- [App documentation here]
- @author:[author], [year]
- """
- import logging
- import sys
- import traceback
- from PyQt5.Qt import QApplication
- from PyQt5.QtWidgets import QMessageBox
- from core import logging_, db
- from core.indexer import Indexer
- from core.logging_ import Logger
- from ui.window import MainWindow
- try:
- # Necessary to ensure that stacktraces are printed when using PyQt5
- # Tough, could make pythonw.exe crash
- import ipdb # @UnusedImport
- except:
- pass
- logger = Logger.get()
- main_window = None
- # Configure how errors are processed
- sys_err = sys.excepthook
- def err_handler(typ, value, trace):
- QApplication.restoreOverrideCursor()
- if main_window:
- QMessageBox.critical(main_window, "Erreur: {}".format(typ.__name__), """{}""".format(value))
- sys_err(typ, value, trace)
- sys.excepthook = err_handler
- # Create db if not existing
- try:
- db.create()
- except FileExistsError:
- pass
- # Start UI
- logger.info("-- Start --")
- app = QApplication(sys.argv)
- indexer = Indexer()
- indexer.start()
- main_window = MainWindow()
- main_window.show()
- try:
- r = app.exec_()
- finally:
- indexer.stop()
- db.engine.dispose()
- logger.info("-- Closed --")
|