DiamondLightSource / DiamondLightSource/dodal

Create a synchrotron "beamline" for Synchrotron related devices

Open
#1,849 0 comments 0 reactions 0 assignees View on GitHub
Design Developer Experience standarisation
Dominant language
Python
Stars
5
Forks
13
Avg merge
3d 2h
Merged PRs (30d)
10

Description

With https://github.com/DiamondLightSource/dodal/pull/1770 now complete, we are now able to reduce duplicate configuration for beamlines by including devices defined by a different device manager e.g shared optics such as pgm are using the same device on i05 and i05_1, but it can be defined once in i05_shared.

`Synchrotron` is also a device that is used on almost every beamline. We are redefining the same device close to 20 times. Once all beamlines have converted to the new DeviceManager, it would be worth creating a `dodal/beamlines/synchrotron.py` which defines devices (almost) all beamlines would use such as `Synchrotron`. Future devices added could be `topup` and `checkbeam` so there is a common solution for all beamlines defined once.

Then each beamline that requires it can do

```Python
from dodal.beamlines.synchrotron import devices as synchrotron_devices
...

devices = DeviceManager()
# Include Synchotron device + anything else added in future
devices.include(synchrotron_devices)
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.