Skip to content
This repository has been archived by the owner on Sep 2, 2024. It is now read-only.

Ensure proper use of class variables #814

Merged
merged 5 commits into from
Aug 3, 2023
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ install_requires =
xarray
doct
databroker
dodal @ git+https://github.com/DiamondLightSource/python-dodal.git@b625b9e3abadc26b095e72701a008795f0c680c0
dodal @ git+https://github.com/DiamondLightSource/python-dodal.git@36e0efe08f7a741796654bb07119595f9bab3411
pydantic<2.0 # See https://github.com/DiamondLightSource/python-artemis/issues/774


Expand Down
6 changes: 4 additions & 2 deletions src/artemis/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ class BlueskyRunner:
current_status: StatusAndMessage = StatusAndMessage(Status.IDLE)
last_run_aborted: bool = False
aperture_change_callback = ApertureChangeCallback()
RE: RunEngine
skip_startup_connection: bool

def __init__(self, RE: RunEngine, skip_startup_connection=False) -> None:
self.RE = RE
Expand Down Expand Up @@ -147,7 +149,7 @@ def wait_on_queue(self):
class RunExperiment(Resource):
def __init__(self, runner: BlueskyRunner) -> None:
super().__init__()
self.runner = runner
self.runner: BlueskyRunner = runner

def put(self, plan_name: str, action: Actions):
status_and_message = StatusAndMessage(Status.FAILED, f"{action} not understood")
Expand Down Expand Up @@ -195,7 +197,7 @@ def put(self, plan_name: str, action: Actions):
class StopOrStatus(Resource):
def __init__(self, runner: BlueskyRunner) -> None:
super().__init__()
self.runner = runner
self.runner: BlueskyRunner = runner

def put(self, action):
status_and_message = StatusAndMessage(Status.FAILED, f"{action} not understood")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@


class ApertureChangeCallback(CallbackBase):
last_selected_aperture: str = "NONE"
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.last_selected_aperture: str = "NONE"

def start(self, doc: dict):
if doc.get("subplan_name") == "change_aperture":
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from __future__ import annotations

import os
from typing import Dict
from typing import Dict, Optional

from bluesky.callbacks import CallbackBase

Expand Down Expand Up @@ -48,7 +48,7 @@ def __init__(self, parameters: FGSInternalParameters):
else StoreInIspyb2D(ispyb_config, self.params)
)
self.ispyb_ids: tuple = (None, None, None)
self.uid_to_finalize_on = None
self.uid_to_finalize_on: Optional[str] = None

def append_to_comment(self, comment: str):
try:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,10 @@


class OavSnapshotCallback(CallbackBase):
snapshot_filenames: list
out_upper_left: list

def __init__(self, *args) -> None:
super().__init__(*args)
self.snapshot_filenames = []
self.out_upper_left = []
self.snapshot_filenames: list = []
self.out_upper_left: list = []

def event(self, doc):
data = doc.get("data")
Expand Down
51 changes: 21 additions & 30 deletions src/artemis/external_interaction/nexus/write_nexus.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

import h5py
import numpy as np
from nexgen.nxs_utils import Attenuator, Beam, Detector, Goniometer, Source
from nexgen.nxs_utils import Detector, Goniometer, Source
from nexgen.nxs_write.NXmxWriter import NXmxFileWriter

from artemis.external_interaction.nexus.nexus_utils import (
Expand All @@ -23,21 +23,6 @@


class NexusWriter:
detector: Detector
source: Source
beam: Beam
attenuator: Attenuator
goniometer: Goniometer
directory: Path
start_index: int
full_num_of_images: int
nexus_file: Path
master_file: Path
scan_points: dict
data_shape: tuple[int, int, int]
omega_start: float
run_number: int

def __init__(
self,
parameters: InternalParameters,
Expand All @@ -47,38 +32,44 @@ def __init__(
run_number: int | None = None,
vds_start_index: int = 0,
) -> None:
self.scan_points = scan_points
self.data_shape = data_shape
self.omega_start = (
self.scan_points: dict = scan_points
self.data_shape: tuple[int, int, int] = data_shape
self.omega_start: float = (
omega_start
if omega_start
else parameters.artemis_params.detector_params.omega_start
)
self.run_number = (
self.run_number: int = (
run_number
if run_number
else parameters.artemis_params.detector_params.run_number
)
self.detector = create_detector_parameters(
self.detector: Detector = create_detector_parameters(
parameters.artemis_params.detector_params
)
self.beam, self.attenuator = create_beam_and_attenuator_parameters(
parameters.artemis_params.ispyb_params
)
self.source = Source(parameters.artemis_params.beamline)
self.directory = Path(parameters.artemis_params.detector_params.directory)
self.filename = parameters.artemis_params.detector_params.prefix
self.start_index = vds_start_index
self.full_num_of_images = (
self.source: Source = Source(parameters.artemis_params.beamline)
self.directory: Path = Path(parameters.artemis_params.detector_params.directory)
self.filename: str = parameters.artemis_params.detector_params.prefix
self.start_index: int = vds_start_index
self.full_num_of_images: int = (
parameters.artemis_params.detector_params.num_triggers
* parameters.artemis_params.detector_params.num_images_per_trigger
)
self.full_filename = parameters.artemis_params.detector_params.full_filename
self.nexus_file = self.directory / f"{self.filename}_{self.run_number}.nxs"
self.master_file = (
self.full_filename: str = (
parameters.artemis_params.detector_params.full_filename
)
self.nexus_file: Path = (
self.directory / f"{self.filename}_{self.run_number}.nxs"
)
self.master_file: Path = (
self.directory / f"{self.filename}_{self.run_number}_master.h5"
)
self.goniometer = create_goniometer_axes(self.omega_start, self.scan_points)
self.goniometer: Goniometer = create_goniometer_axes(
self.omega_start, self.scan_points
)

def create_nexus_file(self):
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,8 @@ class NoDiffractionFound(WarningException):


class ZocaloInteractor:
zocalo_environment: str = "artemis"

def __init__(self, environment: str = "artemis"):
self.zocalo_environment = environment
self.zocalo_environment: str = environment

def _get_zocalo_connection(self):
zc = zocalo.configuration.from_file()
Expand Down