Coverage for main/main.py: 0%

21 statements  

« prev     ^ index     » next       coverage.py v7.15.0, created at 2026-07-03 15:51 +0000

1""" 

2Main entry point for the GliAAns-UI application. 

3 

4This module initializes the PyQt6 application, sets up logging, and launches 

5the main `Controller`, which manages the GUI workflow. 

6 

7It ensures that the environment and resources are correctly configured 

8before starting the event loop. 

9""" 

10 

11import os 

12import sys 

13 

14from PyQt6.QtCore import Qt 

15from PyQt6.QtGui import QIcon, QGuiApplication 

16from PyQt6.QtWidgets import QApplication, QStyleFactory 

17 

18from controller import Controller 

19from logger import setup_logger 

20from utils import resource_path, get_shell_path 

21 

22 

23if __name__ == "__main__": 

24 # Create the main Qt application instance 

25 app = QApplication(sys.argv) 

26 

27 try: 

28 QGuiApplication.styleHints().setColorScheme(Qt.ColorScheme.Light) 

29 except AttributeError: 

30 # Fallback to a cross-platform style 

31 app.setStyle('Fusion') 

32 

33 # Set the main window/application icon 

34 app.setWindowIcon(QIcon(resource_path(os.path.join("resources", "GliAAns-logo.ico")))) 

35 

36 # Initialize and configure the logger 

37 # Logs to both console and compressed rotating file by default 

38 log = setup_logger(console=True) 

39 log.info("Program started") 

40 

41 # Extend PATH environment variable to include shell utilities 

42 os.environ["PATH"] = get_shell_path() 

43 

44 # Create and start the main application controller 

45 controller = Controller() 

46 controller.start() 

47 

48 # Begin Qt event loop (blocking call) 

49 sys.exit(app.exec())