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