fix: report user friendly error on attempted file overwrite #181
@@ -90,6 +90,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.setuptools.package-data]
|
||||
"aare.gui.graphics" = ["*.svg", "*.png"]
|
||||
"*" = ["*.json"]
|
||||
|
||||
[tool.black]
|
||||
line-length = 100
|
||||
|
||||
@@ -8,7 +8,7 @@ from typing import Concatenate, ParamSpec, TypeVar, final
|
||||
import jfjoch_client
|
||||
from aarecommon.config.beamline import get_jfjoch_url
|
||||
from aarecommon.config.logger import setup_logger
|
||||
from aarecommon.errors.exception_handler import JFJochCommunicationError
|
||||
from aarecommon.errors.exception_handler import AareUserError, JFJochCommunicationError
|
||||
from aarecommon.models.beamline import MXBeamline
|
||||
from aarecommon.models.models import DAQStatusModel, FluorescenceSpectrumOutputModel
|
||||
from aarecommon.models.raster_grid import RasterGridRequest
|
||||
@@ -293,6 +293,11 @@ class JFJochWrapper:
|
||||
)
|
||||
return True
|
||||
except Exception as e:
|
||||
if "Output file already exists" in str(e):
|
||||
raise AareUserError(
|
||||
"JFJoch reports output file already exists! Change the filename or increment the run number.",
|
||||
critical=True,
|
||||
) from e
|
||||
raise self._jfjoch_error(
|
||||
f"JFJoch wait until running returned an exception: {e}",
|
||||
error=e,
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import secrets
|
||||
from pathlib import Path
|
||||
|
||||
from aarecommon.config.beamline import cfg_get
|
||||
@@ -189,7 +188,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
|
||||
if is_single_image:
|
||||
r = RotationScanRequest(
|
||||
file_prefix=str(add_screening_to_path(self._filename)) + "_" + secrets.token_hex(3),
|
||||
file_prefix=str(add_screening_to_path(self._filename)),
|
||||
start_omega_deg=self.start_angle.value,
|
||||
incr_omega_deg=self.screening_image_angle.value,
|
||||
wedge_omega_deg=screening_settings["omega_step_deg"],
|
||||
@@ -201,7 +200,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
)
|
||||
else:
|
||||
r = RotationScanRequest(
|
||||
file_prefix=str(add_screening_to_path(self._filename)) + "_" + secrets.token_hex(3),
|
||||
file_prefix=str(add_screening_to_path(self._filename)),
|
||||
start_omega_deg=self.start_angle.value,
|
||||
wedge_omega_deg=self.screening_image_angle.value,
|
||||
incr_omega_deg=screening_settings["omega_step_deg"],
|
||||
@@ -225,7 +224,7 @@ class RotationDataCollectionPanel(ScanSettingsPanel):
|
||||
logger.error("Cannot run measurement because of check")
|
||||
return
|
||||
r = RotationScanRequest(
|
||||
file_prefix=str(add_data_to_path(self._filename)) + "_" + secrets.token_hex(3),
|
||||
file_prefix=str(add_data_to_path(self._filename)),
|
||||
start_omega_deg=self.start_angle.value,
|
||||
steps=self.image_number(),
|
||||
incr_omega_deg=self.image_angle.value,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import math
|
||||
import secrets
|
||||
|
||||
from aarecommon.config.logger import setup_logger
|
||||
from aarecommon.models.models import CrystalSize, DAQStatusModel, SimpleScanParameters
|
||||
@@ -402,16 +401,14 @@ class SimpleRotationSettingsPanel(QWidget):
|
||||
d_tar=d_tar,
|
||||
)
|
||||
|
||||
# logger.debug("updated labels")
|
||||
if self._prev_params != self.parameters:
|
||||
self._prev_params = self.parameters
|
||||
self.parameters_changed.emit(self.parameters)
|
||||
# logger.debug("emitted parameters")
|
||||
|
||||
@Slot()
|
||||
def run_measurement(self):
|
||||
r = RotationScanRequest(
|
||||
file_prefix=str(add_data_to_path(self._filename)) + "_" + secrets.token_hex(3),
|
||||
file_prefix=str(add_data_to_path(self._filename)),
|
||||
start_omega_deg=self.start_angle_enter.value,
|
||||
steps=self.n_images,
|
||||
incr_omega_deg=self.image_angle_enter.value,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import math
|
||||
import secrets
|
||||
from enum import Enum
|
||||
|
||||
import numpy as np
|
||||
@@ -459,7 +458,7 @@ class RasterGridManager(QObject):
|
||||
grid = RasterGridRequest(
|
||||
dtz=ag.dtz,
|
||||
transmission=ag.transmission,
|
||||
file_prefix=ag.file_prefix + "_" + secrets.token_hex(3),
|
||||
file_prefix=ag.file_prefix,
|
||||
exp_time_s=ag.exp_time_s,
|
||||
n_x=ag.n_x,
|
||||
n_y=ag.n_y,
|
||||
@@ -485,7 +484,7 @@ class RasterGridManager(QObject):
|
||||
grid = RasterGridRequest(
|
||||
dtz=ag.dtz,
|
||||
transmission=ag.transmission,
|
||||
file_prefix=ag.file_prefix + "_" + secrets.token_hex(3),
|
||||
file_prefix=ag.file_prefix,
|
||||
exp_time_s=ag.exp_time_s,
|
||||
n_x=ag.n_x,
|
||||
n_y=ag.n_y,
|
||||
|
||||
Reference in New Issue
Block a user