Source code for pymodaq_gui

import importlib.util
import os
import sys
from pint import UnitRegistry
from pathlib import Path

import warnings


[docs]def check_qt_presence(): try: import qtpy except ImportError as e: msg = f"\n\n" \ f"****************************************************************************************\n" \ f"No Qt backend could be found in your system, please install either pyqt5/6 or pyside2/6.\n\n" \ f"pyqt5 is still preferred, while pyqt6 should mostly work.\n\n" \ f"do:\n" \ f"pip install pyqt5\n for instance\n"\ f"****************************************************************************************\n" warnings.warn(msg, FutureWarning, 2) sys.exit()
check_qt_presence() try: from pymodaq_utils.logger import set_logger from pymodaq_utils.utils import get_version, PackageNotFoundError try: __version__ = get_version(__package__) except PackageNotFoundError: __version__ = '0.0.0dev' try: logger = set_logger('pymodaq_gui', base_logger=False) except Exception: print("Couldn't create the local folder to store logs , presets...") logger.info('') logger.info('') logger.info('************************') logger.info('Starting PyMoDAQ modules') logger.info('************************') logger.info('') logger.info('') # in a try statement for compilation on readthedocs server but if this fail, you cannot use the code from pymodaq_gui.plotting import data_viewers # imported here as to avoid circular imports later on from pymodaq_gui.qt_utils import setLocale, set_qt_backend from pymodaq_utils.config import Config from pymodaq_data.plotting.plotter.plotter import register_plotter, PlotterFactory # issue on windows when using .NET code within multithreads, this below allows it but requires the # pywin32 (pythoncom) package if importlib.util.find_spec('clr') is not None: try: import pythoncom pythoncom.CoInitialize() except ModuleNotFoundError as e: infos = "You have installed plugins requiring the pywin32 package to work correctly," \ " please type in *pip install pywin32* and restart PyMoDAQ" print(infos) logger.warning(infos) config = Config() # to ckeck for config file existence, otherwise create one logger.info('************************') logger.info(f"Setting Qt backend to: {config['qtbackend']['backend']} ...") set_qt_backend() logger.info('************************') logger.info('') logger.info('') logger.info('************************') logger.info(f"Setting Locale to {config['style']['language']} / {config['style']['country']}") logger.info('************************') setLocale() logger.info('') logger.info('') logger.info('') logger.info('') logger.info('************************') logger.info(f"Registering PyMoDAQ qt plotters...") register_plotter(parent_module_name='pymodaq_gui.plotting.plotter') logger.info(f"Done") logger.info('************************') except Exception as e: try: logger.exception(str(e)) except Exception as e: print(str(e))