Skip to content

Commit

Permalink
Move common slit instantation logic into helper module
Browse files Browse the repository at this point in the history
  • Loading branch information
callumforrester committed Apr 23, 2024
1 parent c4d5a74 commit d75a999
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 79 deletions.
35 changes: 35 additions & 0 deletions src/dodal/beamlines/_device_helpers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from dodal.devices.slits import Slits
from dodal.utils import skip_device

from .beamline_utils import device_instantiation


@skip_device()
def numbered_slits(
slit_number: int = 1,
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = False,
) -> Slits:
"""
Create a slits object following the {beamline}-AL-SLITS-{slit_number} PV
convention
Args:
slit_number: The number assigned to the slits in the control system, usually
its position in the assembly. Defaults to 1.
device_name_override: Explicit name for the ophyd device. Defaults to
slits-{slit_number}.
wait_for_connection: Require connection on instantiation. Defaults to True.
fake_with_ophyd_sim: Make a fake device. Defaults to False.
Returns:
Slits: A new slits object
"""

return device_instantiation(
Slits,
f"s{slit_number}_slit_gaps",
f"-AL-SLITS-{slit_number:02}:",
wait_for_connection,
fake_with_ophyd_sim,
)
10 changes: 3 additions & 7 deletions src/dodal/beamlines/i03.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@
from dodal.log import set_beamline as set_log_beamline
from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device

from ._device_helpers import numbered_slits

ZOOM_PARAMS_FILE = (
"/dls_sw/i03/software/gda/configurations/i03-config/xml/jCameraManZoomLevels.xml"
)
Expand Down Expand Up @@ -260,13 +262,7 @@ def s4_slit_gaps(
"""Get the i03 s4_slit_gaps device, instantiate it if it hasn't already been.
If this is called when already instantiated in i03, it will return the existing object.
"""
return device_instantiation(
Slits,
"s4_slit_gaps",
"-AL-SLITS-04:",
wait_for_connection,
fake_with_ophyd_sim,
)
return numbered_slits(4, wait_for_connection, fake_with_ophyd_sim)


@skip_device(lambda: BL == "s03")
Expand Down
10 changes: 3 additions & 7 deletions src/dodal/beamlines/i04.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
from dodal.log import set_beamline as set_log_beamline
from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device

from ._device_helpers import numbered_slits

ZOOM_PARAMS_FILE = (
"/dls_sw/i04/software/gda/configurations/i04-config/xml/jCameraManZoomLevels.xml"
)
Expand Down Expand Up @@ -280,13 +282,7 @@ def s4_slit_gaps(
"""Get the i04 s4_slit_gaps device, instantiate it if it hasn't already been.
If this is called when already instantiated in i04, it will return the existing object.
"""
return device_instantiation(
Slits,
"s4_slit_gaps",
"-AL-SLITS-04:",
wait_for_connection,
fake_with_ophyd_sim,
)
return numbered_slits(4, wait_for_connection, fake_with_ophyd_sim)


def undulator(
Expand Down
10 changes: 3 additions & 7 deletions src/dodal/beamlines/i04_1.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
from dodal.log import set_beamline as set_log_beamline
from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device

from ._device_helpers import numbered_slits

ZOOM_PARAMS_FILE = "/dls_sw/i04-1/software/gda/config/xml/jCameraManZoomLevels.xml"
DISPLAY_CONFIG = "/dls_sw/i04-1/software/gda_versions/var/display.configuration"

Expand Down Expand Up @@ -85,13 +87,7 @@ def s4_slit_gaps(
"""Get the i04_1 s4_slit_gaps device, instantiate it if it hasn't already been.
If this is called when already instantiated in i04_1, it will return the existing object.
"""
return device_instantiation(
Slits,
"s4_slit_gaps",
"-AL-SLITS-04:",
wait_for_connection,
fake_with_ophyd_sim,
)
return numbered_slits(4, wait_for_connection, fake_with_ophyd_sim)


@skip_device(_check_for_simulation)
Expand Down
54 changes: 22 additions & 32 deletions src/dodal/beamlines/i22.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
from dodal.beamlines.beamline_utils import device_instantiation, get_directory_provider
from dodal.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.devices.slits import Slits
from dodal.devices.tetramm import TetrammDetector
from dodal.log import set_beamline as set_log_beamline
from dodal.utils import get_beamline_name

from ._device_helpers import numbered_slits
from .beamline_utils import device_instantiation, get_directory_provider
from .beamline_utils import set_beamline as set_utils_beamline

BL = get_beamline_name("i22")
set_log_beamline(BL)
set_utils_beamline(BL)
Expand Down Expand Up @@ -40,77 +42,65 @@ def it(

def slits_1(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = False,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-01",
"-AL-SLITS-01:",
return numbered_slits(
1,
wait_for_connection,
fake_with_ophyd_sim,
)


def slits_2(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = False,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-02",
"-AL-SLITS-02:",
return numbered_slits(
2,
wait_for_connection,
fake_with_ophyd_sim,
)


def slits_3(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = False,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-03",
"-AL-SLITS-03:",
return numbered_slits(
3,
wait_for_connection,
fake_with_ophyd_sim,
)


def slits_4(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = False,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-04",
"-AL-SLITS-04:",
return numbered_slits(
4,
wait_for_connection,
fake_with_ophyd_sim,
)


def slits_5(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = False,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-05",
"-AL-SLITS-05:",
return numbered_slits(
5,
wait_for_connection,
fake_with_ophyd_sim,
)


def slits_6(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = False,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-06",
"-AL-SLITS-06:",
return numbered_slits(
6,
wait_for_connection,
fake_with_ophyd_sim,
)
42 changes: 16 additions & 26 deletions src/dodal/beamlines/p38.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
from dodal.beamlines.beamline_utils import device_instantiation, get_directory_provider
from dodal.beamlines.beamline_utils import set_beamline as set_utils_beamline
from dodal.devices.areadetector import AdAravisDetector
from dodal.devices.slits import Slits
from dodal.devices.tetramm import TetrammDetector
from dodal.log import set_beamline as set_log_beamline
from dodal.utils import get_beamline_name

from ._device_helpers import numbered_slits
from .beamline_utils import device_instantiation, get_directory_provider
from .beamline_utils import set_beamline as set_utils_beamline

BL = get_beamline_name("p38")
set_log_beamline(BL)
set_utils_beamline(BL)
Expand Down Expand Up @@ -62,10 +64,8 @@ def slits_1(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-01",
"-AL-SLITS-01:",
return numbered_slits(
1,
wait_for_connection,
fake_with_ophyd_sim,
)
Expand All @@ -75,10 +75,8 @@ def slits_2(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-02",
"-AL-SLITS-02:",
return numbered_slits(
2,
wait_for_connection,
fake_with_ophyd_sim,
)
Expand All @@ -88,10 +86,8 @@ def slits_3(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-03",
"-AL-SLITS-03:",
return numbered_slits(
3,
wait_for_connection,
fake_with_ophyd_sim,
)
Expand All @@ -101,10 +97,8 @@ def slits_4(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-04",
"-AL-SLITS-04:",
return numbered_slits(
4,
wait_for_connection,
fake_with_ophyd_sim,
)
Expand All @@ -114,10 +108,8 @@ def slits_5(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-05",
"-AL-SLITS-05:",
return numbered_slits(
5,
wait_for_connection,
fake_with_ophyd_sim,
)
Expand All @@ -127,10 +119,8 @@ def slits_6(
wait_for_connection: bool = True,
fake_with_ophyd_sim: bool = True,
) -> Slits:
return device_instantiation(
Slits,
"slits-06",
"-AL-SLITS-06:",
return numbered_slits(
6,
wait_for_connection,
fake_with_ophyd_sim,
)

0 comments on commit d75a999

Please sign in to comment.