From 99326614aec6d94a6a50ed896c3234a303995b45 Mon Sep 17 00:00:00 2001 From: David Perl Date: Mon, 6 Jul 2026 15:39:02 +0200 Subject: [PATCH 1/2] style: ruff check fix --- scripts/camera_stat_thread.py | 2 +- scripts/demo_scan_ingest.py | 2 - scripts/gui_desginer.py | 1 - src/aare/daq/aaredb.py | 2 - src/aare/daq/auth.py | 6 +-- src/aare/daq/daq.py | 27 ++++++------ src/aare/daq/devices.py | 6 +-- .../daq/operations/face_detection/service.py | 2 +- src/aare/daq/operations/raster/service.py | 5 +-- src/aare/daq/server.py | 41 +++++++++---------- src/aare/daq/server_exception_handler.py | 1 - src/aare/devices/bec_worker.py | 14 +++---- src/aare/devices/set_get_pv.py | 2 +- src/aare/devices/smargon.py | 2 +- src/aare/devices/tell_client.py | 2 +- src/aare/devices/zmq_client.py | 1 - src/aare/gui/gui.py | 2 +- src/aare/gui/main_window.py | 2 +- src/aare/gui/panels/local_contact_panel.py | 1 - src/aare/gui/panels/portrait_mode.py | 11 +++-- .../gui/panels/rotation_data_collection.py | 2 +- src/aare/gui/panels/smart_rotation_panel.py | 24 +++++------ src/aare/gui/threads/axis_video_thread.py | 5 +-- src/aare/gui/threads/daq_worker.py | 16 ++++---- src/aare/gui/tutorials/tutorial_manager.py | 1 - src/aare/gui/tutorials/tutorial_runtime.py | 1 - src/aare/gui/widgets/login.py | 1 - src/aare/gui/widgets/message_box.py | 2 +- src/aare/gui/widgets/status_bar.py | 12 +++--- tests/unit/common/test_aare_exception.py | 1 - tests/unit/common/test_aerotech_models.py | 1 - tests/unit/common/test_autofocus_tools.py | 1 - tests/unit/common/test_models_extra.py | 1 - .../daq/operations/test_ml_raster_plan.py | 1 - tests/unit/daq/test_auth.py | 5 --- tests/unit/daq/test_beamcenterfit.py | 1 - tests/unit/daq/test_mount.py | 1 - tests/unit/daq/test_raster_logic.py | 1 - tests/unit/daq/test_server.py | 2 +- .../unit/daq/test_server_exception_handler.py | 6 +-- tests/unit/daq/test_spreadsheetupdater.py | 1 - tests/unit/daq/test_tellupdater.py | 1 - tests/unit/daq/test_workflows.py | 4 +- tests/unit/devices/test_aerotech.py | 2 +- tests/unit/devices/test_enum_pv.py | 3 +- .../test_experimental_hutch_shutter.py | 1 - tests/unit/devices/test_fluorimeter.py | 2 +- tests/unit/devices/test_my_motor.py | 6 ++- tests/unit/devices/test_workflow_tools.py | 2 - tests/unit/gui/test_auth_mock.py | 1 - .../gui/test_automation_progress_parser.py | 8 ++-- tests/unit/gui/test_camera_thread.py | 2 - tests/unit/gui/test_error_classifier.py | 4 +- tests/unit/gui/test_main_window.py | 3 +- tests/unit/gui/test_message_box.py | 1 - tests/unit/gui/test_panels.py | 2 - tests/unit/gui/test_prediction_subscriber.py | 2 - tests/unit/gui/test_sse_client.py | 6 +-- tests/unit/gui/test_threads_logic.py | 1 - tests/unit/gui/test_tutorials.py | 1 - tests/unit/gui/test_widgets.py | 2 - 61 files changed, 108 insertions(+), 164 deletions(-) diff --git a/scripts/camera_stat_thread.py b/scripts/camera_stat_thread.py index 0c97325c..8db972d2 100644 --- a/scripts/camera_stat_thread.py +++ b/scripts/camera_stat_thread.py @@ -368,7 +368,7 @@ class ImageStatsReceiver: self.print_thread_obj = threading.Thread(target=self.print_stats_thread, daemon=True) self.print_thread_obj.start() - print(f"Image stats receiver started - printing every 1 second") + print("Image stats receiver started - printing every 1 second") def stop(self): """Stop the receiver and all threads""" diff --git a/scripts/demo_scan_ingest.py b/scripts/demo_scan_ingest.py index 2ad114cd..742fac66 100644 --- a/scripts/demo_scan_ingest.py +++ b/scripts/demo_scan_ingest.py @@ -1,6 +1,4 @@ from aarecommon.config.beamline import mx_beamline -from aarecommon.math.diffraction_geometry import DiffractionGeometry -from aarecommon.models.beamline import MXBeamline from aare.daq.aaredb import AareWrapper from aare.daq.config import BeamlineConfig diff --git a/scripts/gui_desginer.py b/scripts/gui_desginer.py index 82cd2ca9..dacc544d 100644 --- a/scripts/gui_desginer.py +++ b/scripts/gui_desginer.py @@ -8,7 +8,6 @@ from PySide6.QtWidgets import ( QPushButton, QScrollArea, QStackedWidget, - QSizePolicy, ) from PySide6.QtCore import Qt, QPointF, QRectF from PySide6.QtGui import QPainter, QColor, QPen, QLinearGradient, QFont, QFontMetrics diff --git a/src/aare/daq/aaredb.py b/src/aare/daq/aaredb.py index f12d05c7..3cd5f535 100644 --- a/src/aare/daq/aaredb.py +++ b/src/aare/daq/aaredb.py @@ -1,9 +1,7 @@ import datetime -import functools import io import json import os -import time from typing import List, Optional import aareDB diff --git a/src/aare/daq/auth.py b/src/aare/daq/auth.py index 00eed9cc..e724e7a7 100644 --- a/src/aare/daq/auth.py +++ b/src/aare/daq/auth.py @@ -16,8 +16,8 @@ from aarecommon.errors.exception_handler import ( ) from aarecommon.models.auth import BatonRequest, BatonRequestStatus, BatonStatus, BatonTransferQueue from aarecommon.models.models import SessionsStateEnum -from fastapi import Depends, HTTPException, Request, status -from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm +from fastapi import Depends, Request +from fastapi.security import OAuth2PasswordBearer from pydantic import BaseModel from aare.daq.config import BeamlineConfig @@ -148,7 +148,7 @@ def check_jwt_rw(cfg: BeamlineConfig, data: TokenData) -> None: try: cfg.try_extend_active_session(data.session, SESSION_EXPIRE_SECONDS) - except Exception as e: + except Exception: # In case something is wrong but you are holder (maybe redis expiry?) cfg.try_set_active_session(data.session, SESSION_EXPIRE_SECONDS) diff --git a/src/aare/daq/daq.py b/src/aare/daq/daq.py index e80fc444..6ab758d6 100644 --- a/src/aare/daq/daq.py +++ b/src/aare/daq/daq.py @@ -7,8 +7,6 @@ from math import ceil from pathlib import Path from typing import Callable, List, Optional, Tuple -import cv2 -import numpy as np from aarecommon.config.beamline import cfg_get from aarecommon.config.logger import setup_logger from aarecommon.config.logger_events import ( @@ -68,7 +66,6 @@ from aarecommon.models.raster_grid import CompletedRasterGrid, RasterGridRequest from aarecommon.models.rotation_scan import CompletedRotationScan, RotationScanRequest from aarecommon.models.tell import TellPhaseEnum, TellStateModel from aareDB import SampleEventType -from jfjoch_client import ScanResult, ScanResultImagesInner from aare.daq import workflows from aare.daq.aaredb import AareWrapper @@ -990,7 +987,7 @@ class AareDAQ: self.__aare.send_sample_event( sample_id=sample_id, event_type=event_type, comment=comment ) - except Exception as db_error: + except Exception: logger.exception( "Failed to report operation error to database", extra={ @@ -1291,7 +1288,7 @@ class AareDAQ: self.__setup_datacollection(request=grid_request) logger.debug(f"Is detector simulated? {self.__cfg.simulated_detector}") if not self.__cfg.simulated_detector: - logger.info(f"initialise detector for raster") + logger.info("initialise detector for raster") status = self.status self.__jfjoch.measure_raster(grid_request, status) logger.info("detector initialised") @@ -1607,7 +1604,7 @@ class AareDAQ: def state(self, target: BeamlineStateEnum): if target == BeamlineStateEnum.Moving: logger.error( - f"Cannot explicitly move to busy state", + "Cannot explicitly move to busy state", extra={"target": target, "state": self.__cfg.state}, ) raise Exception("Cannot explicitly move to busy state") @@ -1868,7 +1865,7 @@ class AareDAQ: self.__set_state(BeamlineStateEnum.RobotSampleExchange) except TransformationInvalidException as e: logger.error(f"Failed to go to robot sample exchange: {e}") - logger.warning(f"trying to day and park without unmounting first") + logger.warning("trying to day and park without unmounting first") try: self._execute_dry(park=park, unmount=unmount) self.__cfg.state_busy = False @@ -2102,7 +2099,7 @@ class AareDAQ: self.__set_state(BeamlineStateEnum.SampleAlignment) self.__cfg.state_busy = False return result - except Exception as e: + except Exception: self.__set_state(BeamlineStateEnum.SampleAlignment) self.__cfg.state_busy = False raise @@ -2270,7 +2267,7 @@ class AareDAQ: self.__devs.smargon_pos = sc self.__devs.smargon_wait() self.__cfg.state_busy = False - except Exception as e: + except Exception: self.__cfg.state_busy = False raise pass @@ -2280,7 +2277,7 @@ class AareDAQ: try: self.__cfg.mark_beam(x_pxl, y_pxl, self.__devs.zoom) self.__cfg.state_busy = False - except Exception as e: + except Exception: self.__cfg.state_busy = False raise @@ -2411,7 +2408,7 @@ class AareDAQ: self.__cfg.state_busy = False - except Exception as e: + except Exception: self.__cfg.zoom_mode = ZoomModeEnum.User self.__cfg.state_busy = False raise @@ -2617,7 +2614,7 @@ class AareDAQ: msg = f"Ended automation operation after {operation.value}" if error: - msg += f"with an error" + msg += "with an error" logger.error(f"{msg}, time taken {time.perf_counter() - start} seconds.") try: if self.__cfg.state_busy: @@ -2634,7 +2631,7 @@ class AareDAQ: ) else: - msg += f" successfully" + msg += " successfully" logger.info(f"{msg}, time taken {time.perf_counter() - start} seconds.") self.__cfg.state_busy = False end = time.perf_counter() @@ -3329,7 +3326,7 @@ class AareDAQ: aerotech_connected = False smargon_connected = False zoom = self.__devs.zoom - logger.warning(f"Safe geometry failed: falling back to default settings") + logger.warning("Safe geometry failed: falling back to default settings") fallback = SampleGeometryModel( beam_location_pxl=self.__cfg.beam_mark_coeff.apply(zoom), pixel_in_mm=self.__cfg.pixel_to_mm(zoom), @@ -3534,7 +3531,7 @@ class AareDAQ: self.__set_state(BeamlineStateEnum.SampleAlignment) self.__cfg.state_busy = False return None - except Exception as e: + except Exception: self.__set_state(BeamlineStateEnum.SampleAlignment) self.__cfg.state_busy = False raise diff --git a/src/aare/daq/devices.py b/src/aare/daq/devices.py index c7f204a5..a70374b7 100644 --- a/src/aare/daq/devices.py +++ b/src/aare/daq/devices.py @@ -5,7 +5,6 @@ import time # - property to read device value # - setter with option to do sync/async move # - property setter, which assumes that sync move is done (excl. zoom, which is async by default) -import numpy as np from aarecommon.config.beamline import cfg_get from aarecommon.config.logger import setup_logger from aarecommon.config.logger_events import log_timing @@ -16,14 +15,13 @@ from epics import PV from aare.devices import aerotech, smargon from aare.devices.area_detector import AutoEnum, epicsAD -from aare.devices.bec_worker import BECClientWorker, DetectorCoverEnum +from aare.devices.bec_worker import BECClientWorker from aare.devices.enum_pv import EnumPV from aare.devices.experimental_hutch_shutter import ExperimentalHutchShutter from aare.devices.my_motor import MyMotor from aare.devices.pss_state import PssState from aare.devices.set_get_pv import PredefinedPV, SetGetPV from aare.devices.tell_client import make_tell_client -from aare.devices.zmq_client import ZMQCameraClient logger = setup_logger("aareDAQ") @@ -76,7 +74,7 @@ class BeamlineDevices: self.__ringcurrent = self.bec_worker.ring_current self.__zoom = SetGetPV( - name=f"zoom", setpv=f"{BEAMLINE}-ES-MS:ZOOM.VAL", getpv=f"{BEAMLINE}-ES-MS:ZOOM.RBV" + name="zoom", setpv=f"{BEAMLINE}-ES-MS:ZOOM.VAL", getpv=f"{BEAMLINE}-ES-MS:ZOOM.RBV" ) self.__cryojet_pos = EnumPV( diff --git a/src/aare/daq/operations/face_detection/service.py b/src/aare/daq/operations/face_detection/service.py index c162a654..880d3abc 100644 --- a/src/aare/daq/operations/face_detection/service.py +++ b/src/aare/daq/operations/face_detection/service.py @@ -187,7 +187,7 @@ class FaceDetectionService: self.ctx.deps.devs.aerotech_omega = flat_face_angle samples_out = fd.get_samples_out(boxes) - self.logger.info(f"Face detection sequence complete") + self.logger.info("Face detection sequence complete") payload = { "running": False, diff --git a/src/aare/daq/operations/raster/service.py b/src/aare/daq/operations/raster/service.py index ccda79a6..3d4e7c56 100644 --- a/src/aare/daq/operations/raster/service.py +++ b/src/aare/daq/operations/raster/service.py @@ -2,7 +2,6 @@ import copy import time from math import ceil, floor -import cv2 from aarecommon.config.beamline import cfg_get from aarecommon.config.logger_events import ( geom_log_context, @@ -11,7 +10,7 @@ from aarecommon.config.logger_events import ( raster_request_log_context, sample_log_context, ) -from aarecommon.errors.exception_handler import AutoRasterSampleSkipped, RasterScanException +from aarecommon.errors.exception_handler import RasterScanException from aarecommon.math.coordinate import AerotechCoordinate, Coordinate, SmargonCoordinate from aarecommon.math.find_xtal import ( compute_crystal_score_array, @@ -37,7 +36,7 @@ from aare.daq.operations.common.ml_bounding_box import ( build_ml_raster_plan, get_ml_bounding_box, ) -from aare.daq.operations.raster.models import RasterBoundingBoxResult, RasterContext +from aare.daq.operations.raster.models import RasterContext from aare.devices.area_detector import AutoEnum diff --git a/src/aare/daq/server.py b/src/aare/daq/server.py index 62900c80..8735924b 100644 --- a/src/aare/daq/server.py +++ b/src/aare/daq/server.py @@ -9,7 +9,6 @@ from contextlib import asynccontextmanager from typing import AsyncGenerator, Optional import cv2 -import urllib3 import uvicorn from aarecommon.config.beamline import mx_beamline from aarecommon.config.logger import get_uvicorn_logging_config, setup_logger @@ -46,7 +45,7 @@ from aareDB import SampleEventType from fastapi import Depends, FastAPI, HTTPException, Request from fastapi import status as api_status from fastapi.concurrency import run_in_threadpool -from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm +from fastapi.security import OAuth2PasswordBearer from starlette.responses import StreamingResponse from aare.daq import auth @@ -89,35 +88,35 @@ async def lifespan(application: FastAPI): each worker gets its own fresh Redis, BEC, EPICS, and TELL connections. """ global bl, cfg, daq - logger.warning(f"something!!!") + logger.warning("something!!!") await asyncio.sleep(random.uniform(0.5, 3.0)) logger.info(f"Worker {os.getpid()} starting initialisation...") # ── Core objects (Redis, EPICS PVs, BEC, TELL, JFJoch, etc.) ── bl = mx_beamline() - logger.warning(f"something after bl!!!") + logger.warning("something after bl!!!") cfg = BeamlineConfig(bl) - logger.warning(f"something after cfg!!!") + logger.warning("something after cfg!!!") daq = AareDAQ(cfg, bl) - logger.warning(f"something after daq!!!") + logger.warning("something after daq!!!") try: cfg.reset_automation_progress() except Exception as e: logger.warning(f"Failed to reset automation progress Redis keys: {e}") - logger.warning(f"something after reset automation!!!") + logger.warning("something after reset automation!!!") try: daq.refresh_detector_metadata_cache() except Exception as e: logger.warning(f"Initial hardware metadata refresh failed: {e}") - logger.warning(f"something after refresh detector metadata!!!") + logger.warning("something after refresh detector metadata!!!") # ── Initial TELL sync ── try: daq.sync_current_sample_from_tell(force=True) except Exception as e: logger.warning(f"Initial sample sync from TELL failed: {e}") - logger.warning(f"something after sync current sample!!!") + logger.warning("something after sync current sample!!!") # ── Wire callbacks ── daq.set_face_detection_progress_callback(_push_face_detection_progress) daq.set_automation_progress_callback(_push_automation_progress) @@ -546,7 +545,7 @@ async def save_abr_meas_pos(token: str = Depends(oauth2_scheme)): Returns: "OK" on success. """ - logger.debug(f"Save abr") + logger.debug("Save abr") auth.check_jwt_staff(cfg, auth.parse_token(token)) daq.save_abr_meas_pos() return "OK" @@ -841,7 +840,7 @@ async def goto_abr_meas_pos(token: str = Depends(oauth2_scheme)): Returns: "OK" on success. """ - logger.debug(f"Go to ABR meas pos") + logger.debug("Go to ABR meas pos") auth.check_jwt_rw(cfg, auth.parse_token(token)) daq.goto_abr_meas_pos() return "OK" @@ -877,7 +876,7 @@ async def clear_beam_mark(token: str = Depends(oauth2_scheme)): Returns: "OK" on success. """ - logger.debug(f"Clear beam mark") + logger.debug("Clear beam mark") auth.check_jwt_staff(cfg, auth.parse_token(token)) daq.clear_mark_beam() return "OK" @@ -968,7 +967,7 @@ async def samcam_autofocus(s: AutofocusSettings, token: str = Depends(oauth2_sch Returns: "OK" on success. """ - logger.debug(f"SamCam AutoFocus") + logger.debug("SamCam AutoFocus") auth.check_jwt_rw(cfg, auth.parse_token(token)) daq.auto_focus(s) return "OK" @@ -1146,7 +1145,7 @@ async def unmount(token: str = Depends(oauth2_scheme)): Returns: "OK" on success. """ - logger.debug(f"Unmount") + logger.debug("Unmount") auth.check_jwt_rw(cfg, auth.parse_token(token)) daq.sample = None return "OK" @@ -1725,7 +1724,7 @@ async def cancel(token: str = Depends(oauth2_scheme)): Args: token: OAuth2 access token. """ - logger.debug(f"Scan Cancel") + logger.debug("Scan Cancel") auth.check_jwt_rw(cfg, auth.parse_token(token)) daq.cancel() @@ -1742,7 +1741,7 @@ async def alc_center_loop(token: str = Depends(oauth2_scheme)) -> str: Returns: "OK" on success. """ - logger.debug(f"ALC") + logger.debug("ALC") auth.check_jwt_rw(cfg, auth.parse_token(token)) daq.auto_loop_center() return "OK" @@ -1992,7 +1991,7 @@ async def end_session(token: str = Depends(oauth2_scheme)) -> str: Returns: "OK" on success. """ - logger.debug(f"Try to end Session") + logger.debug("Try to end Session") # End active session will only delete session, if it is equal to token value # so no need to check R/W permissions token_data = auth.parse_token(token) @@ -2012,7 +2011,7 @@ async def force_current_session(token: str = Depends(oauth2_scheme)) -> str: Returns: "OK" on success. """ - logger.debug(f"Try to grab session") + logger.debug("Try to grab session") data = auth.parse_token(token) # Counterintuitive, this operation requires only R/O permission # as this is actually acquiring R/W permissions @@ -2233,7 +2232,7 @@ async def get_settings(token: str = Depends(oauth2_scheme)) -> BeamlineSettingsM Returns: BeamlineSettingsModel. """ - logger.debug(f"Get settings") + logger.debug("Get settings") auth.check_jwt_staff(cfg, auth.parse_token(token)) return cfg.settings @@ -2263,7 +2262,7 @@ async def get_cryo_settings(token: str = Depends(oauth2_scheme)) -> CryojetSetti Returns: CryojetSettingsModel. """ - logger.debug(f"Get Cryo Settings") + logger.debug("Get Cryo Settings") auth.check_jwt_staff(cfg, auth.parse_token(token)) return cfg.cryojet_settings @@ -2293,7 +2292,7 @@ async def get_all_pgroups(token: str = Depends(oauth2_scheme)): Returns: List of pgroup strings. """ - logger.debug(f"Get all pgroups") + logger.debug("Get all pgroups") auth.check_jwt_staff(cfg, auth.parse_token(token)) base_path = "/sls/mx/data/" diff --git a/src/aare/daq/server_exception_handler.py b/src/aare/daq/server_exception_handler.py index 89678b69..7f48dbdb 100644 --- a/src/aare/daq/server_exception_handler.py +++ b/src/aare/daq/server_exception_handler.py @@ -33,7 +33,6 @@ from aarecommon.config.logger import setup_logger from aarecommon.errors.codes import AareErrorCode, code_for_exception_class from aarecommon.errors.exception_handler import ( AareAuthError, - AareException, AareUserError, AuthenticationException, AutomationError, diff --git a/src/aare/devices/bec_worker.py b/src/aare/devices/bec_worker.py index fc2322ab..c6224d92 100644 --- a/src/aare/devices/bec_worker.py +++ b/src/aare/devices/bec_worker.py @@ -1,6 +1,6 @@ import time from enum import Enum -from typing import Any, List, Optional +from typing import List, Optional from aarecommon.config.beamline import cfg_get, mx_beamline from aarecommon.config.logger import setup_logger @@ -9,7 +9,7 @@ from aarecommon.errors.exception_handler import BECCommunicationError from aarecommon.models.beamline import MXBeamline from bec_ipython_client import BECIPythonClient from bec_ipython_client.signals import OperationMode -from bec_lib.procedures.helper import BackendProcedureHelper, FrontendProcedureHelper +from bec_lib.procedures.helper import FrontendProcedureHelper from bec_lib.service_config import ServiceConfig logger = setup_logger("aareDAQ") @@ -281,7 +281,7 @@ class BECClientWorker: def current_state(self): if self.simulated: - logger.debug(f"Simulating check_beamline_state") + logger.debug("Simulating check_beamline_state") return BeamlineState.MAINTENANCE return self.planner.current_state() @@ -428,7 +428,7 @@ class BECClientWorker: try: return self.dev.det_z.position except Exception as e: - self._raise_bec_error(e, operation=f"get_det_z", tags=["det_z"]) + self._raise_bec_error(e, operation="get_det_z", tags=["det_z"]) def det_z(self, value: float, timeout: int | None = None): """timeout is None or integer in s""" @@ -444,7 +444,7 @@ class BECClientWorker: try: return self.dev.det_y.position except Exception as e: - self._raise_bec_error(e, operation=f"get_det_z", tags=["det_z"]) + self._raise_bec_error(e, operation="get_det_z", tags=["det_z"]) def det_y(self, value: float, timeout: int | None = None): """timeout is None or integer in s""" @@ -465,7 +465,7 @@ class BECClientWorker: except Exception as e: self._raise_bec_error( e, - operation=f"backlight brightness, could not get backlight brightness", + operation="backlight brightness, could not get backlight brightness", tags=["backlight"], ) raise @@ -499,7 +499,7 @@ class BECClientWorker: except Exception as e: self._raise_bec_error( e, - operation=f"backlight toggle, could not change backlight on/off ", + operation="backlight toggle, could not change backlight on/off ", tags=["backlight"], ) diff --git a/src/aare/devices/set_get_pv.py b/src/aare/devices/set_get_pv.py index 355ff857..79fea92d 100644 --- a/src/aare/devices/set_get_pv.py +++ b/src/aare/devices/set_get_pv.py @@ -3,7 +3,7 @@ from __future__ import annotations from dataclasses import dataclass from typing import Any, Mapping, Optional, Union, Callable -from epics import PV, poll +from epics import PV from aare.devices.mx_lib import pv_wait RawValue = Union[str, float, int] diff --git a/src/aare/devices/smargon.py b/src/aare/devices/smargon.py index 3927066a..326ed482 100644 --- a/src/aare/devices/smargon.py +++ b/src/aare/devices/smargon.py @@ -99,7 +99,7 @@ class Smargon(object): @property def mode(self) -> SmargonMode: - mode = self.gonget(f"mode") + mode = self.gonget("mode") return SmargonMode(mode) @mode.setter diff --git a/src/aare/devices/tell_client.py b/src/aare/devices/tell_client.py index 89c3fbc8..e279a7b1 100755 --- a/src/aare/devices/tell_client.py +++ b/src/aare/devices/tell_client.py @@ -372,7 +372,7 @@ class TellClient: if wait: try: self.check_command_ok(timeout=timeout, msg="Unmount message: ") - except MountingFailed as e: + except MountingFailed: result = self.get_result(self._last_cmd_id) logger.error( f"Unmount failed with status '{result.get('status')}' and payload: {result}" diff --git a/src/aare/devices/zmq_client.py b/src/aare/devices/zmq_client.py index 9494fbaf..a627d2a4 100644 --- a/src/aare/devices/zmq_client.py +++ b/src/aare/devices/zmq_client.py @@ -5,7 +5,6 @@ with fallback to area_detector if ZMQ is unavailable. """ import json -import time from typing import Optional import cv2 diff --git a/src/aare/gui/gui.py b/src/aare/gui/gui.py index 7274c6d2..7475f30b 100644 --- a/src/aare/gui/gui.py +++ b/src/aare/gui/gui.py @@ -7,7 +7,7 @@ from aarecommon.config.logger import setup_logger from aarecommon.models.beamline import MXBeamline from PySide6 import QtGui from PySide6.QtCore import QCommandLineOption, QCommandLineParser -from PySide6.QtWidgets import QApplication, QMessageBox, QProgressBar, QSplashScreen +from PySide6.QtWidgets import QApplication, QMessageBox from aare.gui.auth import auth from aare.gui.main_window import MainWindow diff --git a/src/aare/gui/main_window.py b/src/aare/gui/main_window.py index a16cf3bd..ca99bb70 100644 --- a/src/aare/gui/main_window.py +++ b/src/aare/gui/main_window.py @@ -15,7 +15,7 @@ from aarecommon.models.models import ( TokenData, ) from PySide6.QtCore import QEvent, QSettings, Qt, QTimer, Signal, Slot -from PySide6.QtGui import QAction, QActionGroup, QGuiApplication, QKeySequence, QPixmap +from PySide6.QtGui import QAction, QActionGroup, QGuiApplication, QKeySequence from PySide6.QtWidgets import ( QDockWidget, QHBoxLayout, diff --git a/src/aare/gui/panels/local_contact_panel.py b/src/aare/gui/panels/local_contact_panel.py index ce1c676b..58e536da 100644 --- a/src/aare/gui/panels/local_contact_panel.py +++ b/src/aare/gui/panels/local_contact_panel.py @@ -28,7 +28,6 @@ from PySide6.QtWidgets import ( from aare.gui.panels.beamline_recovery_panel import RecoveryPanel from aare.gui.threads.daq_worker import DAQWorker from aare.gui.widgets.local_contact_status_widget import LocalContactStatusWidget -from aare.gui.widgets.number_line_edit import NumberLineEdit from aare.gui.widgets.text_list_dialog import TextListDialog from aare.gui.widgets.title_label import TitleLabel diff --git a/src/aare/gui/panels/portrait_mode.py b/src/aare/gui/panels/portrait_mode.py index 8f01449a..987fc78d 100644 --- a/src/aare/gui/panels/portrait_mode.py +++ b/src/aare/gui/panels/portrait_mode.py @@ -1,11 +1,10 @@ from __future__ import annotations -import math from aarecommon.config.logger import setup_logger from aarecommon.models.automation import AutomationProgress, StepStatus, WorkflowStateKind from PySide6.QtCore import QPointF, QRectF, Qt, QTimer, Signal, Slot -from PySide6.QtGui import QColor, QFont, QFontMetrics, QLinearGradient, QPainter, QPen +from PySide6.QtGui import QColor, QFont, QFontMetrics, QPainter, QPen from PySide6.QtWidgets import ( QFrame, QHBoxLayout, @@ -290,19 +289,19 @@ class PortraitModePanel(QWidget): # ── Portrait alert toast (hidden by default) ─────────────────────── self._alert_toast = QFrame() self._alert_toast.setVisible(False) - self._alert_toast.setStyleSheet(f""" - QFrame {{ + self._alert_toast.setStyleSheet(""" + QFrame { background: #1A0E0E; border: 1px solid #8f1d2c; border-radius: 10px; - }} + } """) toast_layout = QHBoxLayout(self._alert_toast) toast_layout.setContentsMargins(12, 8, 12, 8) self._alert_toast_label = QLabel("") self._alert_toast_label.setWordWrap(True) self._alert_toast_label.setStyleSheet( - f"color: #ffb3bc; font-size: 11px; font-weight: 600; background: transparent;" + "color: #ffb3bc; font-size: 11px; font-weight: 600; background: transparent;" ) toast_layout.addWidget(self._alert_toast_label) # Dismiss button diff --git a/src/aare/gui/panels/rotation_data_collection.py b/src/aare/gui/panels/rotation_data_collection.py index bda9cc79..cf2d2b29 100644 --- a/src/aare/gui/panels/rotation_data_collection.py +++ b/src/aare/gui/panels/rotation_data_collection.py @@ -8,7 +8,7 @@ from PySide6.QtCore import Qt, Signal, Slot from PySide6.QtWidgets import QComboBox, QLabel, QMessageBox, QPushButton from aare.gui.panels.scan_settings_panel import ScanSettingsPanel -from aare.gui.widgets.number_line_edit import CheckedLineEdit, DbOverrideLineEdit, NumberLineEdit +from aare.gui.widgets.number_line_edit import DbOverrideLineEdit, NumberLineEdit logger = setup_logger("aareGUI") diff --git a/src/aare/gui/panels/smart_rotation_panel.py b/src/aare/gui/panels/smart_rotation_panel.py index e0c2442b..8dc0f9e1 100644 --- a/src/aare/gui/panels/smart_rotation_panel.py +++ b/src/aare/gui/panels/smart_rotation_panel.py @@ -107,13 +107,13 @@ class SimpleRotationSettingsPanel(QWidget): self._layout.addWidget(QLabel("%", parent=self), 7, 4) self._layout.addWidget(QLabel("Detector distance", parent=self), 8, 0) - self.dtz_label = QLabel(f"--", parent=self) + self.dtz_label = QLabel("--", parent=self) self.dtz_label.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter) self._layout.addWidget(self.dtz_label, 8, 1, 1, 3) self._layout.addWidget(QLabel("mm", parent=self), 8, 4) self._layout.addWidget(QLabel("Target Dose", parent=self), 9, 0) - self.target_dose_label = QLabel(f"--", parent=self) + self.target_dose_label = QLabel("--", parent=self) self.target_dose_label.setAlignment( Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter ) @@ -121,7 +121,7 @@ class SimpleRotationSettingsPanel(QWidget): self._layout.addWidget(QLabel("MGy", parent=self), 9, 4) self._layout.addWidget(QLabel("Calculated Dose Rate", parent=self), 10, 0) - self.calculated_dose_rate_label = QLabel(f"--", parent=self) + self.calculated_dose_rate_label = QLabel("--", parent=self) self.calculated_dose_rate_label.setAlignment( Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter ) @@ -129,7 +129,7 @@ class SimpleRotationSettingsPanel(QWidget): self._layout.addWidget(QLabel("MGy s-1", parent=self), 10, 4) self._layout.addWidget(QLabel("Wilson B Factor", parent=self), 11, 0) - self.wilson_b_label = QLabel(f"--", parent=self) + self.wilson_b_label = QLabel("--", parent=self) self.wilson_b_label.setAlignment( Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter ) @@ -137,25 +137,25 @@ class SimpleRotationSettingsPanel(QWidget): self._layout.addWidget(QLabel("Å2", parent=self), 11, 4) self._layout.addWidget(QLabel("Crystal Size x", parent=self), 12, 0) - self.xtal_x_label = QLabel(f"--", parent=self) + self.xtal_x_label = QLabel("--", parent=self) self.xtal_x_label.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter) self._layout.addWidget(self.xtal_x_label, 12, 1, 1, 3) self._layout.addWidget(QLabel("um", parent=self), 12, 4) self._layout.addWidget(QLabel("Crystal Size y", parent=self), 13, 0) - self.xtal_y_label = QLabel(f"--", parent=self) + self.xtal_y_label = QLabel("--", parent=self) self.xtal_y_label.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter) self._layout.addWidget(self.xtal_y_label, 13, 1, 1, 3) self._layout.addWidget(QLabel("um", parent=self), 13, 4) self._layout.addWidget(QLabel("Crystal Size z", parent=self), 14, 0) - self.xtal_z_label = QLabel(f"--", parent=self) + self.xtal_z_label = QLabel("--", parent=self) self.xtal_z_label.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter) self._layout.addWidget(self.xtal_z_label, 14, 1, 1, 3) self._layout.addWidget(QLabel("um", parent=self), 14, 4) self._layout.addWidget(QLabel("Calculated Dose (xtal size)", parent=self), 15, 0) - self.xtal_size_dose_label = QLabel(f"--", parent=self) + self.xtal_size_dose_label = QLabel("--", parent=self) self.xtal_size_dose_label.setAlignment( Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter ) @@ -171,13 +171,13 @@ class SimpleRotationSettingsPanel(QWidget): self._layout.addWidget(QLabel("Å", parent=self), 16, 4) self._layout.addWidget(QLabel("Flux", parent=self), 17, 0) - self.flux_label = QLabel(f"--", parent=self) + self.flux_label = QLabel("--", parent=self) self.flux_label.setAlignment(Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter) self._layout.addWidget(self.flux_label, 17, 1, 1, 3) self._layout.addWidget(QLabel("x 109 ph s-1", parent=self), 17, 4) self._layout.addWidget(QLabel("Beam Size", parent=self), 18, 0) - self.beam_size_label = QLabel(f"--", parent=self) + self.beam_size_label = QLabel("--", parent=self) self.beam_size_label.setAlignment( Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter ) @@ -185,7 +185,7 @@ class SimpleRotationSettingsPanel(QWidget): self._layout.addWidget(QLabel("um2", parent=self), 18, 4) self._layout.addWidget(QLabel("Calculated Dose", parent=self), 19, 0) - self.calculated_dose_label = QLabel(f"--", parent=self) + self.calculated_dose_label = QLabel("--", parent=self) self.calculated_dose_label.setAlignment( Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignVCenter ) @@ -355,7 +355,7 @@ class SimpleRotationSettingsPanel(QWidget): self.image_time_label.setText(f"{self.image_time_s:.4f}") if self.dtz <= 0.0: - self.dtz_label.setText(f"""-""") + self.dtz_label.setText("""-""") elif self.dtz < self.__d.bl.dtz_min: self.dtz_label.setText(f"""{self.dtz:.2f}""") self.dtz = self.__d.bl.dtz_min diff --git a/src/aare/gui/threads/axis_video_thread.py b/src/aare/gui/threads/axis_video_thread.py index 9dd84a6f..26f868ea 100644 --- a/src/aare/gui/threads/axis_video_thread.py +++ b/src/aare/gui/threads/axis_video_thread.py @@ -1,9 +1,8 @@ import cv2 import requests import numpy as np -from PySide6.QtCore import QThread, Signal, QRect, QPoint -from PySide6.QtGui import QImage, QPainter, QPen, QColor, Qt, QFontMetrics, QFont -from io import BytesIO +from PySide6.QtCore import QThread, Signal +from PySide6.QtGui import QImage class VideoThread(QThread): diff --git a/src/aare/gui/threads/daq_worker.py b/src/aare/gui/threads/daq_worker.py index a84a5e5d..241b2085 100644 --- a/src/aare/gui/threads/daq_worker.py +++ b/src/aare/gui/threads/daq_worker.py @@ -796,11 +796,11 @@ class DAQWorker(QObject): @Slot() def close_shutter(self): - self.generic_post(f"beamline/shutter?val=false") + self.generic_post("beamline/shutter?val=false") @Slot() def open_shutter(self): - self.generic_post(f"beamline/shutter?val=true") + self.generic_post("beamline/shutter?val=true") @Slot() def center_loop(self): @@ -1152,7 +1152,7 @@ class DAQWorker(QObject): @Slot() def load_spreadsheet(self): if self.__base_url is None: - logger.info(f"GET /sample/spreadsheet") + logger.info("GET /sample/spreadsheet") return request = QNetworkRequest(QUrl(f"{self.__base_url}/sample/spreadsheet")) @@ -1163,7 +1163,7 @@ class DAQWorker(QObject): @Slot() def load_reference_tools(self): if self.__base_url is None: - logger.info(f"GET /sample/reference_tools") + logger.info("GET /sample/reference_tools") return request = QNetworkRequest(QUrl(f"{self.__base_url}/sample/reference_tools")) request.setRawHeader(b"Authorization", f"Bearer {self.__token}".encode("utf-8")) @@ -1395,7 +1395,7 @@ class DAQWorker(QObject): @Slot() def beam_mark_clear(self): - self.generic_post(f"beam_mark/clear") + self.generic_post("beam_mark/clear") @Slot(float, float) def beam_center(self, x: float, y: float): @@ -1729,7 +1729,7 @@ class DAQWorker(QObject): @Slot(SampleShortInfo) def sample_manual(self, s: SampleShortInfo): - self.generic_post(f"sample/manual", s.model_dump_json()) + self.generic_post("sample/manual", s.model_dump_json()) @Slot() def cancel(self): @@ -1751,7 +1751,7 @@ class DAQWorker(QObject): Request an ML-based bounding box for the current sample. """ if self.__base_url is None: - logger.info(f"POST /alc/ml_bounding_box") + logger.info("POST /alc/ml_bounding_box") return request = QNetworkRequest(QUrl(f"{self.__base_url}/alc/ml_bounding_box")) @@ -2200,7 +2200,7 @@ class DAQWorker(QObject): if int(status) == 404 and url.endswith("/meta/error-codes"): reply.deleteLater() - logger.error(f"Error codes not found on server.") + logger.error("Error codes not found on server.") return payload = self.handle_response(reply) diff --git a/src/aare/gui/tutorials/tutorial_manager.py b/src/aare/gui/tutorials/tutorial_manager.py index 1cc9ef6b..099019d2 100644 --- a/src/aare/gui/tutorials/tutorial_manager.py +++ b/src/aare/gui/tutorials/tutorial_manager.py @@ -7,7 +7,6 @@ from typing import Any from PySide6.QtCore import ( QEasingCurve, QObject, - QPoint, QPropertyAnimation, Property, QRect, diff --git a/src/aare/gui/tutorials/tutorial_runtime.py b/src/aare/gui/tutorials/tutorial_runtime.py index 9ab3763e..5ddfd145 100644 --- a/src/aare/gui/tutorials/tutorial_runtime.py +++ b/src/aare/gui/tutorials/tutorial_runtime.py @@ -14,7 +14,6 @@ from aare.gui.tutorials.tutorial_models import ( TutorialContext, TutorialEvent, TutorialScenario, - TutorialStepDefinition, TutorialTarget, TutorialTextRef, ) diff --git a/src/aare/gui/widgets/login.py b/src/aare/gui/widgets/login.py index be807a31..4c947b25 100644 --- a/src/aare/gui/widgets/login.py +++ b/src/aare/gui/widgets/login.py @@ -1,5 +1,4 @@ import json -import os import jwt from aarecommon.models.auth import get_user diff --git a/src/aare/gui/widgets/message_box.py b/src/aare/gui/widgets/message_box.py index 9cf7cd6c..bace90d0 100644 --- a/src/aare/gui/widgets/message_box.py +++ b/src/aare/gui/widgets/message_box.py @@ -150,7 +150,7 @@ def experiment_hutch_shutter_check(parent, shutter_state) -> bool: return True else: reply = reply_box( - parent, title="Experiment shutter open", msg=f"Experiment shutter is Closed." + parent, title="Experiment shutter open", msg="Experiment shutter is Closed." ) return reply == QMessageBox.StandardButton.Yes diff --git a/src/aare/gui/widgets/status_bar.py b/src/aare/gui/widgets/status_bar.py index 5752da94..eb4ff224 100644 --- a/src/aare/gui/widgets/status_bar.py +++ b/src/aare/gui/widgets/status_bar.py @@ -1,7 +1,7 @@ import math from aarecommon.config.logger import setup_logger -from aarecommon.models.auth import BatonRequestStatus, BatonStatus +from aarecommon.models.auth import BatonStatus from aarecommon.models.models import BeamlineStateEnum, DAQStatusModel, SessionsStateEnum, TokenData from PySide6.QtCore import QPoint, QTimer, Signal, Slot from PySide6.QtGui import QFont @@ -135,12 +135,12 @@ class StatusBar(QStatusBar): try: self.__status = status if status.bl.flux_ph_s is None: - self.flux.set_value(f"0") + self.flux.set_value("0") else: self.flux.set_value(f"{(status.bl.flux_ph_s / 1e9):.0f}") if status.bl.transmission is None: - self.transmission.set_value(f"(moving)") + self.transmission.set_value("(moving)") else: self.transmission.set_value(f"{status.bl.transmission:.5f}") @@ -163,11 +163,11 @@ class StatusBar(QStatusBar): if status.bl.shutter_open: self.shutter_label.setText( - f"""Fast Shutter: Open ☢️ """ + """Fast Shutter: Open ☢️ """ ) else: self.shutter_label.setText( - f"""Fast Shutter: Closed 🚪 """ + """Fast Shutter: Closed 🚪 """ ) if status.bl.exp_shutter_open: @@ -182,7 +182,7 @@ class StatusBar(QStatusBar): if status.session.current_pgroup is not None: self.pgroup_label.setText(f"""p-group: {status.session.current_pgroup} """) else: - self.pgroup_label.setText(f"Inactive p-group ") + self.pgroup_label.setText("Inactive p-group ") self.state_label.setText(f"""State: {status.state.display_name()} """) diff --git a/tests/unit/common/test_aare_exception.py b/tests/unit/common/test_aare_exception.py index c218a00d..9a1e9034 100644 --- a/tests/unit/common/test_aare_exception.py +++ b/tests/unit/common/test_aare_exception.py @@ -9,7 +9,6 @@ These cover: from __future__ import annotations -import pytest from aarecommon.errors.exception_handler import ( AareAuthError, AareDBCommunicationError, diff --git a/tests/unit/common/test_aerotech_models.py b/tests/unit/common/test_aerotech_models.py index 094e927b..e682e6ba 100644 --- a/tests/unit/common/test_aerotech_models.py +++ b/tests/unit/common/test_aerotech_models.py @@ -1,4 +1,3 @@ -import pytest from aarecommon.models.aerotech import ( AerotechAxisStatus, AerotechRotationScanRequest, diff --git a/tests/unit/common/test_autofocus_tools.py b/tests/unit/common/test_autofocus_tools.py index 222834f5..97d64f6f 100644 --- a/tests/unit/common/test_autofocus_tools.py +++ b/tests/unit/common/test_autofocus_tools.py @@ -1,5 +1,4 @@ import numpy as np -import pytest from aarecommon.math.autofocus import focus_measure_blob_size, focus_measure_edges diff --git a/tests/unit/common/test_models_extra.py b/tests/unit/common/test_models_extra.py index e7f863e7..5905a6e4 100644 --- a/tests/unit/common/test_models_extra.py +++ b/tests/unit/common/test_models_extra.py @@ -1,4 +1,3 @@ -import pytest from aarecommon.models.models import ( BeamlineStateEnum, BeamMarkCoeffModel, diff --git a/tests/unit/daq/operations/test_ml_raster_plan.py b/tests/unit/daq/operations/test_ml_raster_plan.py index c985aaa0..a3102978 100644 --- a/tests/unit/daq/operations/test_ml_raster_plan.py +++ b/tests/unit/daq/operations/test_ml_raster_plan.py @@ -2,7 +2,6 @@ import logging import types import numpy as np -import pytest from aarecommon.math.coordinate import Coordinate, SmargonCoordinate from aarecommon.math.sample_geometry import SampleGeometryModel from aarecommon.models.models import MLBoxType, MLOutputModel diff --git a/tests/unit/daq/test_auth.py b/tests/unit/daq/test_auth.py index c673f479..4fbe4eb4 100644 --- a/tests/unit/daq/test_auth.py +++ b/tests/unit/daq/test_auth.py @@ -1,11 +1,8 @@ import time -import uuid -from datetime import UTC, datetime from unittest.mock import MagicMock, patch import jwt import pytest -from fastapi import HTTPException # Mock environment variable before importing auth with patch.dict("os.environ", {"JWT_AAREDAQ_KEY": "test_secret"}): @@ -15,7 +12,6 @@ with patch.dict("os.environ", {"JWT_AAREDAQ_KEY": "test_secret"}): cancel_baton_request, check_jwt_ro, check_jwt_rw, - check_jwt_staff, check_jwt_staff_only, create_access_token, force_current_sesion, @@ -32,7 +28,6 @@ from aarecommon.models.auth import ( BatonRequest, BatonRequestStatus, BatonStatus, - BatonTransferQueue, ) from aarecommon.models.models import SessionsStateEnum diff --git a/tests/unit/daq/test_beamcenterfit.py b/tests/unit/daq/test_beamcenterfit.py index 5fdb0277..b42cedda 100644 --- a/tests/unit/daq/test_beamcenterfit.py +++ b/tests/unit/daq/test_beamcenterfit.py @@ -1,6 +1,5 @@ import pytest import numpy as np -import cv2 from aare.daq.beamcenterfit import beamcenter_fit, Gaussian2Dfit diff --git a/tests/unit/daq/test_mount.py b/tests/unit/daq/test_mount.py index 144ffb14..caf6a2c6 100644 --- a/tests/unit/daq/test_mount.py +++ b/tests/unit/daq/test_mount.py @@ -11,7 +11,6 @@ from aareDB import SampleEventType from aare.daq.config import ABR_POS_MOUNT, BeamlineStateEnum from aare.daq.daq import AareDAQ from aare.daq.operations.mounting.models import MountingContext, MountingResult -from aare.daq.operations.mounting.service import MountingService from aare.daq.operations.screenshot.service import ScreenshotService diff --git a/tests/unit/daq/test_raster_logic.py b/tests/unit/daq/test_raster_logic.py index 6b34dbc6..98b9fc2d 100644 --- a/tests/unit/daq/test_raster_logic.py +++ b/tests/unit/daq/test_raster_logic.py @@ -1,5 +1,4 @@ import types -from types import SimpleNamespace from unittest.mock import MagicMock import pytest diff --git a/tests/unit/daq/test_server.py b/tests/unit/daq/test_server.py index eb965d3a..f9ba4794 100644 --- a/tests/unit/daq/test_server.py +++ b/tests/unit/daq/test_server.py @@ -1,6 +1,6 @@ import os from types import SimpleNamespace -from unittest.mock import MagicMock, patch +from unittest.mock import patch import numpy as np diff --git a/tests/unit/daq/test_server_exception_handler.py b/tests/unit/daq/test_server_exception_handler.py index 94c66ac2..d57e4b85 100644 --- a/tests/unit/daq/test_server_exception_handler.py +++ b/tests/unit/daq/test_server_exception_handler.py @@ -13,11 +13,10 @@ import json from unittest.mock import MagicMock import pytest -from aarecommon.errors.codes import AareErrorCode, AuthErrorCode +from aarecommon.errors.codes import AuthErrorCode from aarecommon.errors.exception_handler import ( AareAuthError, AareDBCommunicationError, - AareException, AareUserError, AuthenticationException, AutomationError, @@ -262,13 +261,10 @@ def test_only_four_root_handlers_plus_fallbacks(app): """ from aarecommon.errors.exception_handler import ( AareDBCommunicationError, - CriticalTellException, LoopCenteringFailed, MountingFailed, SmargonCommunicationError, TellCommunicationError, - UnmountingFailed, - WarningTellException, ) registered = set(app.exception_handlers.keys()) diff --git a/tests/unit/daq/test_spreadsheetupdater.py b/tests/unit/daq/test_spreadsheetupdater.py index 0e995ebf..c14213bd 100644 --- a/tests/unit/daq/test_spreadsheetupdater.py +++ b/tests/unit/daq/test_spreadsheetupdater.py @@ -3,7 +3,6 @@ from types import SimpleNamespace from unittest.mock import MagicMock, patch import pytest -from aarecommon.models.models import SampleShortInfoList from aare.daq.spreadsheetupdater import get_ws_headers, on_message, set_spreadsheet_in_redis diff --git a/tests/unit/daq/test_tellupdater.py b/tests/unit/daq/test_tellupdater.py index 22e7d264..7147558a 100644 --- a/tests/unit/daq/test_tellupdater.py +++ b/tests/unit/daq/test_tellupdater.py @@ -1,4 +1,3 @@ -import pytest import json from unittest.mock import MagicMock, patch from aare.daq import tellupdater diff --git a/tests/unit/daq/test_workflows.py b/tests/unit/daq/test_workflows.py index a62d3514..4612b4e3 100644 --- a/tests/unit/daq/test_workflows.py +++ b/tests/unit/daq/test_workflows.py @@ -1,8 +1,6 @@ -from types import SimpleNamespace -from unittest.mock import MagicMock, patch +from unittest.mock import MagicMock import pytest -from aarecommon.models.models import StagePositionEnum from aare.daq.config import ABR_OMEGA_MOUNT, ABR_POS_MOUNT from aare.daq.workflows import ( diff --git a/tests/unit/devices/test_aerotech.py b/tests/unit/devices/test_aerotech.py index 53cad3c6..a8fdc3b4 100644 --- a/tests/unit/devices/test_aerotech.py +++ b/tests/unit/devices/test_aerotech.py @@ -5,7 +5,7 @@ from aarecommon.errors.exception_handler import AerotechCommunicationError from aarecommon.math.coordinate import AerotechCoordinate, Coordinate from aarecommon.models.beamline import MXBeamline -from aare.devices.aerotech import AEROTECH_HOME, AerotechController +from aare.devices.aerotech import AerotechController @pytest.fixture diff --git a/tests/unit/devices/test_enum_pv.py b/tests/unit/devices/test_enum_pv.py index b8c613be..6ae6cd4d 100644 --- a/tests/unit/devices/test_enum_pv.py +++ b/tests/unit/devices/test_enum_pv.py @@ -1,8 +1,7 @@ import pytest -from unittest.mock import MagicMock, patch +from unittest.mock import patch from enum import Enum from aare.devices.enum_pv import EnumPV -from aare.devices.set_get_pv import MoveResult class MockPV: diff --git a/tests/unit/devices/test_experimental_hutch_shutter.py b/tests/unit/devices/test_experimental_hutch_shutter.py index b03ecf61..5e4335d3 100644 --- a/tests/unit/devices/test_experimental_hutch_shutter.py +++ b/tests/unit/devices/test_experimental_hutch_shutter.py @@ -1,6 +1,5 @@ from unittest.mock import MagicMock, patch -import pytest from aarecommon.models.beamline import MXBeamline from aare.devices.experimental_hutch_shutter import ExperimentalHutchShutter diff --git a/tests/unit/devices/test_fluorimeter.py b/tests/unit/devices/test_fluorimeter.py index 5aae0587..b21b0ef1 100644 --- a/tests/unit/devices/test_fluorimeter.py +++ b/tests/unit/devices/test_fluorimeter.py @@ -8,7 +8,7 @@ from aare.devices.fluorimeter import Fluorimeter @patch("aare.devices.fluorimeter.PV") def test_fluorimeter_init(mock_pv): - fluo = Fluorimeter(MXBeamline.X06DA) + _ = Fluorimeter(MXBeamline.X06DA) # Lots of PVs in __init__ assert mock_pv.call_count >= 20 diff --git a/tests/unit/devices/test_my_motor.py b/tests/unit/devices/test_my_motor.py index 575b3f4a..eefd4cad 100644 --- a/tests/unit/devices/test_my_motor.py +++ b/tests/unit/devices/test_my_motor.py @@ -1,5 +1,7 @@ +from unittest.mock import MagicMock, PropertyMock, patch + import pytest -from unittest.mock import MagicMock, patch, PropertyMock + from aare.devices.my_motor import MyMotor @@ -27,7 +29,7 @@ def mock_motor_base(): def test_my_motor_init(mock_motor_base): mock_init, _, _, _ = mock_motor_base - m = MyMotor("X10SA-DI-MTR-01") + _ = MyMotor("X10SA-DI-MTR-01") mock_init.assert_called_with("X10SA-DI-MTR-01", timeout=5.0) diff --git a/tests/unit/devices/test_workflow_tools.py b/tests/unit/devices/test_workflow_tools.py index 486f7e9a..d25419a0 100644 --- a/tests/unit/devices/test_workflow_tools.py +++ b/tests/unit/devices/test_workflow_tools.py @@ -1,7 +1,5 @@ import pytest -from unittest.mock import MagicMock from aare.devices.workflow_tools import wait_position -import time class MockMotor: diff --git a/tests/unit/gui/test_auth_mock.py b/tests/unit/gui/test_auth_mock.py index a339df5b..8685fa43 100644 --- a/tests/unit/gui/test_auth_mock.py +++ b/tests/unit/gui/test_auth_mock.py @@ -1,5 +1,4 @@ import json -import subprocess import pytest diff --git a/tests/unit/gui/test_automation_progress_parser.py b/tests/unit/gui/test_automation_progress_parser.py index f948d585..09d06607 100644 --- a/tests/unit/gui/test_automation_progress_parser.py +++ b/tests/unit/gui/test_automation_progress_parser.py @@ -1,6 +1,10 @@ import sys import types +from aarecommon.models.automation import StepStatus, WorkflowStateKind + +from aare.gui.threads.daq_worker import DAQWorker + jfjoch_client_module = types.ModuleType("jfjoch_client") jfjoch_client_module.ScanResult = object jfjoch_client_module.ScanResultImagesInner = object @@ -13,10 +17,6 @@ sys.modules.setdefault("jfjoch_client", jfjoch_client_module) sys.modules.setdefault("jfjoch_client.models", jfjoch_client_models_module) sys.modules.setdefault("jfjoch_client.models.scan_result", jfjoch_client_scan_result_module) -from aarecommon.models.automation import StepStatus, WorkflowStateKind - -from aare.gui.threads.daq_worker import DAQWorker - def test_parse_automation_progress_from_sse_payload(): progress_payload = { diff --git a/tests/unit/gui/test_camera_thread.py b/tests/unit/gui/test_camera_thread.py index 1e3c3950..f9246367 100644 --- a/tests/unit/gui/test_camera_thread.py +++ b/tests/unit/gui/test_camera_thread.py @@ -5,8 +5,6 @@ import cv2 import numpy as np import pytest import zmq -from aarecommon.models.models import DAQStatusModel -from PySide6.QtGui import QPixmap from aare.gui.threads.camera_thread import SampleCameraThread diff --git a/tests/unit/gui/test_error_classifier.py b/tests/unit/gui/test_error_classifier.py index 7507e2e4..25206679 100644 --- a/tests/unit/gui/test_error_classifier.py +++ b/tests/unit/gui/test_error_classifier.py @@ -1,6 +1,8 @@ import sys import types +from aare.gui.threads.daq_worker import DAQWorker + jfjoch_client_module = types.ModuleType("jfjoch_client") jfjoch_client_module.ScanResult = object jfjoch_client_module.ScanResultImagesInner = object @@ -13,8 +15,6 @@ sys.modules.setdefault("jfjoch_client", jfjoch_client_module) sys.modules.setdefault("jfjoch_client.models", jfjoch_client_models_module) sys.modules.setdefault("jfjoch_client.models.scan_result", jfjoch_client_scan_result_module) -from aare.gui.threads.daq_worker import DAQWorker - def test_is_critical_uses_body_flag_when_present(): assert DAQWorker._is_critical({"critical": False}) is False diff --git a/tests/unit/gui/test_main_window.py b/tests/unit/gui/test_main_window.py index 231ddb2d..701a1d5c 100644 --- a/tests/unit/gui/test_main_window.py +++ b/tests/unit/gui/test_main_window.py @@ -1,7 +1,6 @@ from unittest.mock import MagicMock, patch import pytest -from PySide6.QtCore import Qt from aare.gui.main_window import MainWindow @@ -84,7 +83,7 @@ def test_main_window_mount_view(qtbot, mock_ui_state): def test_mark_user_interaction_reports_backend(qtbot, mock_ui_state): with ( patch("requests.get"), - patch("aare.gui.main_window.DAQWorker") as mock_daq_cls, + patch("aare.gui.main_window.DAQWorker"), patch("aare.gui.main_window.PredictionSubscriber"), patch("aare.gui.main_window.VideoThread"), patch("aare.gui.main_window.JFJochDBusClient"), diff --git a/tests/unit/gui/test_message_box.py b/tests/unit/gui/test_message_box.py index 61a3f5eb..bbfacf58 100644 --- a/tests/unit/gui/test_message_box.py +++ b/tests/unit/gui/test_message_box.py @@ -1,4 +1,3 @@ -import pytest from unittest.mock import MagicMock, patch from PySide6.QtWidgets import QMessageBox from aare.gui.widgets.message_box import ( diff --git a/tests/unit/gui/test_panels.py b/tests/unit/gui/test_panels.py index a481a93b..424fcc78 100644 --- a/tests/unit/gui/test_panels.py +++ b/tests/unit/gui/test_panels.py @@ -2,7 +2,6 @@ import pytest from aarecommon.math.coordinate import Coordinate, SmargonCoordinate from aarecommon.math.diffraction_geometry import DiffractionGeometry from aarecommon.math.sample_geometry import SampleGeometryModel -from aarecommon.models.beamline import MXBeamline from aarecommon.models.models import ( BeamlineStateEnum, BeamlineStatus, @@ -10,7 +9,6 @@ from aarecommon.models.models import ( SampleCameraSettings, SessionStatus, ) -from PySide6.QtCore import Qt from aare.gui.panels.status_panel import StatusPanel diff --git a/tests/unit/gui/test_prediction_subscriber.py b/tests/unit/gui/test_prediction_subscriber.py index 2e135470..e69de29b 100644 --- a/tests/unit/gui/test_prediction_subscriber.py +++ b/tests/unit/gui/test_prediction_subscriber.py @@ -1,2 +0,0 @@ -import sys -import pytest diff --git a/tests/unit/gui/test_sse_client.py b/tests/unit/gui/test_sse_client.py index 7fcca073..b1e20f1d 100644 --- a/tests/unit/gui/test_sse_client.py +++ b/tests/unit/gui/test_sse_client.py @@ -1,8 +1,8 @@ import pytest -from PySide6.QtCore import QByteArray, QUrl -from PySide6.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply +from PySide6.QtCore import QByteArray +from PySide6.QtNetwork import QNetworkReply from aare.gui.threads.sse_client import SSEClient -from unittest.mock import MagicMock, patch +from unittest.mock import MagicMock @pytest.fixture diff --git a/tests/unit/gui/test_threads_logic.py b/tests/unit/gui/test_threads_logic.py index 18a3f4be..a59f21fb 100644 --- a/tests/unit/gui/test_threads_logic.py +++ b/tests/unit/gui/test_threads_logic.py @@ -1,6 +1,5 @@ from unittest.mock import MagicMock -import pytest from aarecommon.models.models import DAQStatusModel, DewarAddress, SampleShortInfo from aare.gui.scan_logic.sample_mount_logic import SampleMountLogic diff --git a/tests/unit/gui/test_tutorials.py b/tests/unit/gui/test_tutorials.py index 3608aa4c..2955477e 100644 --- a/tests/unit/gui/test_tutorials.py +++ b/tests/unit/gui/test_tutorials.py @@ -1,5 +1,4 @@ import pytest -from unittest.mock import MagicMock from PySide6.QtWidgets import QWidget from aare.gui.tutorials.tutorial_manager import TutorialManager from aare.gui.tutorials.tutorial_models import ( diff --git a/tests/unit/gui/test_widgets.py b/tests/unit/gui/test_widgets.py index 92746fa4..3b3083a9 100644 --- a/tests/unit/gui/test_widgets.py +++ b/tests/unit/gui/test_widgets.py @@ -1,5 +1,3 @@ -import pytest -from PySide6.QtCore import Qt from aare.gui.widgets.alert_banner import AlertBanner from aare.gui.widgets.status_label import StatusLabel -- 2.54.0 From 3ec2bc011bbcc6cdcecd68d8c6c242349f8c119a Mon Sep 17 00:00:00 2001 From: David Perl Date: Mon, 6 Jul 2026 16:27:08 +0200 Subject: [PATCH 2/2] feat: add hostname+user to gui logs --- .zed/debug.json | 9 +++++++++ src/aare/gui/auth.py | 4 +++- src/aare/gui/constants.py | 10 ++++++++++ src/aare/gui/gui.py | 3 ++- src/aare/gui/main_window.py | 4 +++- src/aare/gui/panels/automation_panel.py | 4 +++- src/aare/gui/panels/face_detection_panel.py | 3 ++- src/aare/gui/panels/fluorescence_panel.py | 4 +++- src/aare/gui/panels/local_contact_panel.py | 3 ++- src/aare/gui/panels/portrait_mode.py | 5 +++-- src/aare/gui/panels/prediction_metrics_panel.py | 4 +++- src/aare/gui/panels/raster_data_collection.py | 3 ++- src/aare/gui/panels/reference_tools_panel.py | 3 ++- src/aare/gui/panels/rotation_data_collection.py | 3 ++- src/aare/gui/panels/sample_queue_panel.py | 3 ++- src/aare/gui/panels/scan_settings_panel.py | 3 ++- src/aare/gui/panels/smart_rotation_panel.py | 3 ++- src/aare/gui/panels/target_stability_panel.py | 4 +++- src/aare/gui/panels/tell_sample_panel.py | 3 ++- src/aare/gui/scan_logic/raster_grid_manager.py | 4 +++- src/aare/gui/threads/daq_worker.py | 4 +++- src/aare/gui/threads/prediction_subscriber.py | 4 +++- src/aare/gui/widgets/alert_banner.py | 4 +++- src/aare/gui/widgets/camera_image.py | 3 ++- src/aare/gui/widgets/message_box.py | 4 +++- src/aare/gui/widgets/status_bar.py | 3 ++- 26 files changed, 79 insertions(+), 25 deletions(-) create mode 100644 .zed/debug.json create mode 100644 src/aare/gui/constants.py diff --git a/.zed/debug.json b/.zed/debug.json new file mode 100644 index 00000000..781f00f9 --- /dev/null +++ b/.zed/debug.json @@ -0,0 +1,9 @@ +[ + { + "label": "Python Active File", + "adapter": "Debugpy", + "program": "$ZED_FILE", + "request": "launch", + "justMyCode": false, + }, +] diff --git a/src/aare/gui/auth.py b/src/aare/gui/auth.py index 5b7a9522..235d0cd5 100644 --- a/src/aare/gui/auth.py +++ b/src/aare/gui/auth.py @@ -6,7 +6,9 @@ from aarecommon.config.logger import setup_logger from aarecommon.models.auth import get_user from aarecommon.models.models import TokenData -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) def auth(base_url: str | None, cert_path: str | None) -> str: diff --git a/src/aare/gui/constants.py b/src/aare/gui/constants.py new file mode 100644 index 00000000..9697a10f --- /dev/null +++ b/src/aare/gui/constants.py @@ -0,0 +1,10 @@ +import getpass +import socket + + +def _try_clean_hostname(raw_name: str) -> str: + return raw_name.removesuffix(".psi.ch") + + +CLEAN_HOSTNAME = _try_clean_hostname(socket.gethostname()) +LOGGER_NAME = f"AareGUI: {CLEAN_HOSTNAME} - {getpass.getuser()}" diff --git a/src/aare/gui/gui.py b/src/aare/gui/gui.py index 7475f30b..bd103da2 100644 --- a/src/aare/gui/gui.py +++ b/src/aare/gui/gui.py @@ -10,10 +10,11 @@ from PySide6.QtCore import QCommandLineOption, QCommandLineParser from PySide6.QtWidgets import QApplication, QMessageBox from aare.gui.auth import auth +from aare.gui.constants import LOGGER_NAME from aare.gui.main_window import MainWindow from aare.gui.widgets.splash_screen import LoadingSplashScreen -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) def main(): diff --git a/src/aare/gui/main_window.py b/src/aare/gui/main_window.py index ca99bb70..30603679 100644 --- a/src/aare/gui/main_window.py +++ b/src/aare/gui/main_window.py @@ -27,6 +27,8 @@ from PySide6.QtWidgets import ( QWidget, ) +from aare.gui.constants import LOGGER_NAME + # Gui Models from aare.gui.models.gui_state_manager import UIStateManager from aare.gui.panels.automation_panel import AutomationProgressWidget @@ -84,7 +86,7 @@ from aare.gui.widgets.no_wheel_scroll_area import NoWheelScrollArea from aare.gui.widgets.status_bar import StatusBar from aare.gui.widgets.video_image import VideoGraphicsView -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) class MainWindow(QMainWindow): diff --git a/src/aare/gui/panels/automation_panel.py b/src/aare/gui/panels/automation_panel.py index e1b95266..e5bcf9cf 100644 --- a/src/aare/gui/panels/automation_panel.py +++ b/src/aare/gui/panels/automation_panel.py @@ -9,7 +9,9 @@ from aarecommon.models.automation import AutomationProgress, StepStatus, Workflo from PySide6.QtCore import QTimer, Slot from PySide6.QtWidgets import QLabel, QVBoxLayout, QWidget -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) class AutomationProgressWidget(QWidget): diff --git a/src/aare/gui/panels/face_detection_panel.py b/src/aare/gui/panels/face_detection_panel.py index 6f174662..46c949f7 100644 --- a/src/aare/gui/panels/face_detection_panel.py +++ b/src/aare/gui/panels/face_detection_panel.py @@ -5,10 +5,11 @@ from matplotlib.figure import Figure from PySide6.QtCore import Signal from PySide6.QtWidgets import QGridLayout, QLabel, QPushButton, QVBoxLayout, QWidget +from aare.gui.constants import LOGGER_NAME from aare.gui.widgets.number_line_edit import NumberLineEdit from aare.gui.widgets.title_label import TitleLabel -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) class FaceDetectionPanel(QWidget): diff --git a/src/aare/gui/panels/fluorescence_panel.py b/src/aare/gui/panels/fluorescence_panel.py index fb83d5e5..e1304508 100644 --- a/src/aare/gui/panels/fluorescence_panel.py +++ b/src/aare/gui/panels/fluorescence_panel.py @@ -6,7 +6,9 @@ from PySide6.QtCore import QEvent, QPointF, Qt, Slot from PySide6.QtGui import QColor, QPainter, QPen from PySide6.QtWidgets import QGraphicsSimpleTextItem, QGridLayout, QLabel, QWidget -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) class FluorescencePanel(QWidget): diff --git a/src/aare/gui/panels/local_contact_panel.py b/src/aare/gui/panels/local_contact_panel.py index 58e536da..52716c54 100644 --- a/src/aare/gui/panels/local_contact_panel.py +++ b/src/aare/gui/panels/local_contact_panel.py @@ -25,13 +25,14 @@ from PySide6.QtWidgets import ( QWidget, ) +from aare.gui.constants import LOGGER_NAME from aare.gui.panels.beamline_recovery_panel import RecoveryPanel from aare.gui.threads.daq_worker import DAQWorker from aare.gui.widgets.local_contact_status_widget import LocalContactStatusWidget from aare.gui.widgets.text_list_dialog import TextListDialog from aare.gui.widgets.title_label import TitleLabel -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) class LocalContactPanel(QFrame): diff --git a/src/aare/gui/panels/portrait_mode.py b/src/aare/gui/panels/portrait_mode.py index 987fc78d..43adf8f7 100644 --- a/src/aare/gui/panels/portrait_mode.py +++ b/src/aare/gui/panels/portrait_mode.py @@ -1,6 +1,5 @@ from __future__ import annotations - from aarecommon.config.logger import setup_logger from aarecommon.models.automation import AutomationProgress, StepStatus, WorkflowStateKind from PySide6.QtCore import QPointF, QRectF, Qt, QTimer, Signal, Slot @@ -18,7 +17,9 @@ from PySide6.QtWidgets import ( QWidget, ) -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) # --------------------------------------------------------------------------- # Colour palette (kept identical to gui_designer.py) diff --git a/src/aare/gui/panels/prediction_metrics_panel.py b/src/aare/gui/panels/prediction_metrics_panel.py index 7ac54152..906ab9b9 100644 --- a/src/aare/gui/panels/prediction_metrics_panel.py +++ b/src/aare/gui/panels/prediction_metrics_panel.py @@ -40,7 +40,9 @@ from PySide6.QtWidgets import ( QWidget, ) -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) # ───────────────────────────────────────────────────────────────────────────── diff --git a/src/aare/gui/panels/raster_data_collection.py b/src/aare/gui/panels/raster_data_collection.py index 4027317a..3ff854fe 100644 --- a/src/aare/gui/panels/raster_data_collection.py +++ b/src/aare/gui/panels/raster_data_collection.py @@ -12,12 +12,13 @@ from PySide6.QtWidgets import ( QSpacerItem, ) +from aare.gui.constants import LOGGER_NAME from aare.gui.panels.scan_settings_panel import ScanSettingsPanel from aare.gui.scan_logic.raster_grid_manager import RasterGridManager, RasterGridMetric from aare.gui.widgets.number_line_edit import DbOverrideLineEdit from aare.gui.widgets.raster_grid_table import RasterGridTable -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) # TODO prevent raster if no grid, or at least rpevent smargon from doing danngerous move to 0,0,0!!! diff --git a/src/aare/gui/panels/reference_tools_panel.py b/src/aare/gui/panels/reference_tools_panel.py index ba85b143..c4d9c467 100644 --- a/src/aare/gui/panels/reference_tools_panel.py +++ b/src/aare/gui/panels/reference_tools_panel.py @@ -16,9 +16,10 @@ from PySide6.QtWidgets import ( QTableView, ) +from aare.gui.constants import LOGGER_NAME from aare.gui.widgets.title_label import TitleLabel -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) def get_entry(sample: SampleShortInfo, column: int): diff --git a/src/aare/gui/panels/rotation_data_collection.py b/src/aare/gui/panels/rotation_data_collection.py index cf2d2b29..81dae846 100644 --- a/src/aare/gui/panels/rotation_data_collection.py +++ b/src/aare/gui/panels/rotation_data_collection.py @@ -7,10 +7,11 @@ from aarecommon.models.rotation_scan import RotationScanRequest from PySide6.QtCore import Qt, Signal, Slot from PySide6.QtWidgets import QComboBox, QLabel, QMessageBox, QPushButton +from aare.gui.constants import LOGGER_NAME from aare.gui.panels.scan_settings_panel import ScanSettingsPanel from aare.gui.widgets.number_line_edit import DbOverrideLineEdit, NumberLineEdit -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) def add_screening_to_path(path): diff --git a/src/aare/gui/panels/sample_queue_panel.py b/src/aare/gui/panels/sample_queue_panel.py index 846cd5f7..5b0f609c 100644 --- a/src/aare/gui/panels/sample_queue_panel.py +++ b/src/aare/gui/panels/sample_queue_panel.py @@ -20,11 +20,12 @@ from PySide6.QtWidgets import ( QVBoxLayout, ) +from aare.gui.constants import LOGGER_NAME from aare.gui.models.sample_queue_model import SampleQueueSpreadsheet from aare.gui.widgets.message_box import LOW_CURRENT_THRESHOLD, conditions_auto_check from aare.gui.widgets.title_label import TitleLabel -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) class SampleQueuePanel(QFrame): diff --git a/src/aare/gui/panels/scan_settings_panel.py b/src/aare/gui/panels/scan_settings_panel.py index ce71e80a..f506456e 100644 --- a/src/aare/gui/panels/scan_settings_panel.py +++ b/src/aare/gui/panels/scan_settings_panel.py @@ -13,10 +13,11 @@ from PySide6.QtWidgets import ( QWidget, ) +from aare.gui.constants import LOGGER_NAME from aare.gui.widgets.message_box import precondition_check from aare.gui.widgets.number_line_edit import DbOverrideLineEdit -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) class ScanSettingsPanel(QWidget): diff --git a/src/aare/gui/panels/smart_rotation_panel.py b/src/aare/gui/panels/smart_rotation_panel.py index 8dc0f9e1..021a0555 100644 --- a/src/aare/gui/panels/smart_rotation_panel.py +++ b/src/aare/gui/panels/smart_rotation_panel.py @@ -6,10 +6,11 @@ from aarecommon.models.rotation_scan import RotationScanRequest from PySide6.QtCore import Qt, Signal, Slot from PySide6.QtWidgets import QGridLayout, QLabel, QPushButton, QSizePolicy, QSpacerItem, QWidget +from aare.gui.constants import LOGGER_NAME from aare.gui.panels.rotation_data_collection import add_data_to_path from aare.gui.widgets.number_line_edit import NumberLineEdit -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) class SimpleRotationSettingsPanel(QWidget): diff --git a/src/aare/gui/panels/target_stability_panel.py b/src/aare/gui/panels/target_stability_panel.py index 76bb80d0..3a67a6c1 100644 --- a/src/aare/gui/panels/target_stability_panel.py +++ b/src/aare/gui/panels/target_stability_panel.py @@ -22,7 +22,9 @@ from PySide6.QtWidgets import ( QWidget, ) -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) class InteractiveChartView(QChartView): diff --git a/src/aare/gui/panels/tell_sample_panel.py b/src/aare/gui/panels/tell_sample_panel.py index 16f0a17c..a0bc1075 100644 --- a/src/aare/gui/panels/tell_sample_panel.py +++ b/src/aare/gui/panels/tell_sample_panel.py @@ -17,10 +17,11 @@ from PySide6.QtWidgets import ( QTableView, ) +from aare.gui.constants import LOGGER_NAME from aare.gui.models.user_sample_model import UserSampleSpreadsheet from aare.gui.widgets.title_label import TitleLabel -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) class TellSamplePanel(QFrame): diff --git a/src/aare/gui/scan_logic/raster_grid_manager.py b/src/aare/gui/scan_logic/raster_grid_manager.py index 417d7544..a088d93c 100644 --- a/src/aare/gui/scan_logic/raster_grid_manager.py +++ b/src/aare/gui/scan_logic/raster_grid_manager.py @@ -17,7 +17,9 @@ from aarecommon.models.raster_grid import ( from PySide6.QtCore import QLineF, QObject, QPointF, QRect, QRectF, Qt, Signal, Slot from PySide6.QtGui import QBrush, QColor, QImage, QPainter, QPen -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) class RasterGridMetric(Enum): diff --git a/src/aare/gui/threads/daq_worker.py b/src/aare/gui/threads/daq_worker.py index 241b2085..29831a8c 100644 --- a/src/aare/gui/threads/daq_worker.py +++ b/src/aare/gui/threads/daq_worker.py @@ -50,7 +50,9 @@ from jfjoch_client import ScanResult, ScanResultImagesInner from PySide6.QtCore import QByteArray, QObject, QTimer, QUrl, Signal, Slot from PySide6.QtNetwork import QNetworkAccessManager, QNetworkReply, QNetworkRequest, QSslError -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) SPREADHSEET_FREQUENCY = 25 # Every 5 seconds diff --git a/src/aare/gui/threads/prediction_subscriber.py b/src/aare/gui/threads/prediction_subscriber.py index 1fa18698..2d03e4d5 100644 --- a/src/aare/gui/threads/prediction_subscriber.py +++ b/src/aare/gui/threads/prediction_subscriber.py @@ -10,7 +10,9 @@ from aarecommon.models.models import DAQStatusModel from PySide6.QtCore import QThread, Signal, Slot from PySide6.QtGui import QImage, QPixmap -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) class PredictionSubscriber(QThread): diff --git a/src/aare/gui/widgets/alert_banner.py b/src/aare/gui/widgets/alert_banner.py index adc44902..aaf0ae4d 100644 --- a/src/aare/gui/widgets/alert_banner.py +++ b/src/aare/gui/widgets/alert_banner.py @@ -3,7 +3,9 @@ from PySide6.QtCore import Qt, QTimer, Slot from PySide6.QtGui import QColor from PySide6.QtWidgets import QFrame, QGraphicsDropShadowEffect, QHBoxLayout, QLabel, QSizePolicy -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) class AlertBanner(QFrame): diff --git a/src/aare/gui/widgets/camera_image.py b/src/aare/gui/widgets/camera_image.py index e769119f..07d43042 100644 --- a/src/aare/gui/widgets/camera_image.py +++ b/src/aare/gui/widgets/camera_image.py @@ -37,11 +37,12 @@ from PySide6.QtWidgets import ( QToolTip, ) +from aare.gui.constants import LOGGER_NAME from aare.gui.models.bookmark import SmargonBookmarkList from aare.gui.scan_logic.raster_grid_manager import RasterGridManager from aare.gui.widgets.busy_overlay import BusyOverlayStyle, build_busy_overlay_style -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) class SampleCameraImageState(Enum): diff --git a/src/aare/gui/widgets/message_box.py b/src/aare/gui/widgets/message_box.py index bace90d0..ad3779b9 100644 --- a/src/aare/gui/widgets/message_box.py +++ b/src/aare/gui/widgets/message_box.py @@ -4,7 +4,9 @@ from aarecommon.config.logger import setup_logger from PySide6.QtCore import QEventLoop, QTimer from PySide6.QtWidgets import QCheckBox, QMessageBox -logger = setup_logger("aareGUI") +from aare.gui.constants import LOGGER_NAME + +logger = setup_logger(LOGGER_NAME) LOW_CURRENT_THRESHOLD = 100.0 SNOOZE_SECONDS = 3600.0 # "Don't ask again for 1 hour" diff --git a/src/aare/gui/widgets/status_bar.py b/src/aare/gui/widgets/status_bar.py index eb4ff224..ad8f4af3 100644 --- a/src/aare/gui/widgets/status_bar.py +++ b/src/aare/gui/widgets/status_bar.py @@ -7,12 +7,13 @@ from PySide6.QtCore import QPoint, QTimer, Signal, Slot from PySide6.QtGui import QFont from PySide6.QtWidgets import QDialog, QLabel, QMenu, QMessageBox, QSizePolicy, QStatusBar +from aare.gui.constants import LOGGER_NAME from aare.gui.widgets.baton_request_dialog import BatonRequestDialog from aare.gui.widgets.clickable_label import ClickableLabel from aare.gui.widgets.pgroup_dialog import PGroupDialog from aare.gui.widgets.value_label import ValueLabel -logger = setup_logger("aareGUI") +logger = setup_logger(LOGGER_NAME) class StatusBar(QStatusBar): -- 2.54.0