ophyd-async 0.10.0a2__py3-none-any.whl → 0.10.0a4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. ophyd_async/_version.py +2 -2
  2. ophyd_async/core/__init__.py +4 -2
  3. ophyd_async/core/_derived_signal.py +42 -14
  4. ophyd_async/core/_derived_signal_backend.py +4 -4
  5. ophyd_async/core/_detector.py +71 -57
  6. ophyd_async/core/_device.py +3 -3
  7. ophyd_async/core/_hdf_dataset.py +1 -5
  8. ophyd_async/core/_providers.py +0 -8
  9. ophyd_async/core/_readable.py +13 -1
  10. ophyd_async/core/_signal.py +21 -5
  11. ophyd_async/core/_signal_backend.py +18 -8
  12. ophyd_async/core/_utils.py +31 -14
  13. ophyd_async/epics/adandor/_andor_controller.py +1 -1
  14. ophyd_async/epics/adaravis/_aravis_controller.py +2 -2
  15. ophyd_async/epics/adcore/_core_detector.py +2 -2
  16. ophyd_async/epics/adcore/_core_io.py +3 -3
  17. ophyd_async/epics/adcore/_core_logic.py +3 -3
  18. ophyd_async/epics/adcore/_core_writer.py +22 -29
  19. ophyd_async/epics/adcore/_hdf_writer.py +17 -15
  20. ophyd_async/epics/adcore/_jpeg_writer.py +1 -3
  21. ophyd_async/epics/adcore/_tiff_writer.py +1 -3
  22. ophyd_async/epics/adcore/_utils.py +11 -2
  23. ophyd_async/epics/adkinetix/_kinetix_controller.py +1 -1
  24. ophyd_async/epics/adpilatus/_pilatus.py +1 -1
  25. ophyd_async/epics/adpilatus/_pilatus_controller.py +6 -13
  26. ophyd_async/epics/adpilatus/_pilatus_io.py +1 -1
  27. ophyd_async/epics/advimba/_vimba_controller.py +1 -1
  28. ophyd_async/epics/core/_aioca.py +2 -2
  29. ophyd_async/epics/core/_p4p.py +1 -1
  30. ophyd_async/epics/core/_pvi_connector.py +5 -3
  31. ophyd_async/epics/core/_util.py +21 -13
  32. ophyd_async/epics/eiger/__init__.py +2 -4
  33. ophyd_async/epics/eiger/_odin_io.py +58 -36
  34. ophyd_async/epics/motor.py +3 -2
  35. ophyd_async/epics/testing/_example_ioc.py +1 -0
  36. ophyd_async/epics/testing/test_records.db +5 -0
  37. ophyd_async/fastcs/eiger/__init__.py +13 -0
  38. ophyd_async/{epics → fastcs}/eiger/_eiger.py +15 -6
  39. ophyd_async/{epics → fastcs}/eiger/_eiger_controller.py +17 -27
  40. ophyd_async/fastcs/eiger/_eiger_io.py +54 -0
  41. ophyd_async/fastcs/panda/_block.py +2 -0
  42. ophyd_async/fastcs/panda/_hdf_panda.py +0 -1
  43. ophyd_async/fastcs/panda/_writer.py +23 -22
  44. ophyd_async/plan_stubs/_fly.py +2 -2
  45. ophyd_async/sim/_blob_detector.py +0 -1
  46. ophyd_async/sim/_blob_detector_controller.py +1 -1
  47. ophyd_async/sim/_blob_detector_writer.py +15 -19
  48. ophyd_async/sim/_motor.py +2 -2
  49. ophyd_async/sim/_pattern_generator.py +2 -0
  50. ophyd_async/tango/core/_base_device.py +2 -1
  51. ophyd_async/tango/core/_converters.py +2 -6
  52. ophyd_async/tango/core/_signal.py +8 -8
  53. ophyd_async/tango/core/_tango_transport.py +12 -12
  54. ophyd_async/tango/demo/_tango/_servers.py +0 -1
  55. ophyd_async/tango/testing/_one_of_everything.py +2 -2
  56. {ophyd_async-0.10.0a2.dist-info → ophyd_async-0.10.0a4.dist-info}/METADATA +1 -1
  57. {ophyd_async-0.10.0a2.dist-info → ophyd_async-0.10.0a4.dist-info}/RECORD +60 -59
  58. {ophyd_async-0.10.0a2.dist-info → ophyd_async-0.10.0a4.dist-info}/WHEEL +1 -1
  59. ophyd_async/epics/eiger/_eiger_io.py +0 -42
  60. {ophyd_async-0.10.0a2.dist-info → ophyd_async-0.10.0a4.dist-info}/licenses/LICENSE +0 -0
  61. {ophyd_async-0.10.0a2.dist-info → ophyd_async-0.10.0a4.dist-info}/top_level.txt +0 -0
@@ -30,7 +30,7 @@ class BlobDetectorController(DetectorController):
30
30
  coro = self.pattern_generator.write_images_to_file(
31
31
  exposure=livetime,
32
32
  period=livetime + self.trigger_info.deadtime,
33
- number_of_frames=self.trigger_info.total_number_of_triggers,
33
+ number_of_frames=self.trigger_info.total_number_of_exposures,
34
34
  )
35
35
  self.task = asyncio.create_task(coro)
36
36
 
@@ -9,7 +9,6 @@ from ophyd_async.core import (
9
9
  DetectorWriter,
10
10
  HDFDatasetDescription,
11
11
  HDFDocumentComposer,
12
- NameProvider,
13
12
  PathProvider,
14
13
  )
15
14
 
@@ -24,69 +23,66 @@ class BlobDetectorWriter(DetectorWriter):
24
23
  self,
25
24
  pattern_generator: PatternGenerator,
26
25
  path_provider: PathProvider,
27
- name_provider: NameProvider,
28
26
  ) -> None:
29
27
  self.pattern_generator = pattern_generator
30
28
  self.path_provider = path_provider
31
- self.name_provider = name_provider
32
29
  self.path: Path | None = None
33
30
  self.composer: HDFDocumentComposer | None = None
34
31
  self.datasets: list[HDFDatasetDescription] = []
35
32
 
36
- async def open(self, multiplier: int = 1) -> dict[str, DataKey]:
37
- name = self.name_provider()
33
+ async def open(self, name: str, exposures_per_event: int = 1) -> dict[str, DataKey]:
38
34
  path_info = self.path_provider(name)
39
35
  self.path = path_info.directory_path / f"{path_info.filename}.h5"
40
36
  self.pattern_generator.open_file(self.path, WIDTH, HEIGHT)
37
+ self.exposures_per_event = exposures_per_event
41
38
  # We know it will write data and sum, so emit those
42
39
  self.datasets = [
43
40
  HDFDatasetDescription(
44
41
  data_key=name,
45
42
  dataset=DATA_PATH,
46
- shape=(HEIGHT, WIDTH),
43
+ shape=(exposures_per_event, HEIGHT, WIDTH),
47
44
  dtype_numpy=np.dtype(np.uint8).str,
48
- chunk_shape=(HEIGHT, WIDTH),
49
- multiplier=multiplier,
45
+ chunk_shape=(1024,),
50
46
  ),
51
47
  HDFDatasetDescription(
52
48
  data_key=f"{name}-sum",
53
49
  dataset=SUM_PATH,
54
- shape=(),
50
+ shape=(exposures_per_event,) if exposures_per_event > 1 else (),
55
51
  dtype_numpy=np.dtype(np.int64).str,
56
- multiplier=multiplier,
57
52
  chunk_shape=(1024,),
58
53
  ),
59
54
  ]
60
55
  self.composer = None
61
- outer_shape = (multiplier,) if multiplier > 1 else ()
62
56
  describe = {
63
57
  ds.data_key: DataKey(
64
58
  source="sim://pattern-generator-hdf-file",
65
- shape=list(outer_shape) + list(ds.shape),
66
- dtype="array" if ds.shape else "number",
59
+ shape=list(ds.shape),
60
+ dtype="array"
61
+ if exposures_per_event > 1 or len(ds.shape) > 1
62
+ else "number",
63
+ dtype_numpy=ds.dtype_numpy,
67
64
  external="STREAM:",
68
65
  )
69
66
  for ds in self.datasets
70
67
  }
71
68
  return describe
72
69
 
73
- @property
74
- def hints(self) -> Hints:
70
+ def get_hints(self, name: str) -> Hints:
75
71
  """The hints to be used for the detector."""
76
- return {"fields": [self.name_provider()]}
72
+ return {"fields": [name]}
77
73
 
78
74
  async def get_indices_written(self) -> int:
79
- return self.pattern_generator.get_last_index()
75
+ return self.pattern_generator.get_last_index() // self.exposures_per_event
80
76
 
81
77
  async def observe_indices_written(
82
78
  self, timeout: float
83
79
  ) -> AsyncGenerator[int, None]:
84
80
  while True:
85
- yield self.pattern_generator.get_last_index()
81
+ yield self.pattern_generator.get_last_index() // self.exposures_per_event
86
82
  await self.pattern_generator.wait_for_next_index(timeout)
87
83
 
88
84
  async def collect_stream_docs(
89
- self, indices_written: int
85
+ self, name: str, indices_written: int
90
86
  ) -> AsyncIterator[StreamAsset]:
91
87
  # When we have written something to the file
92
88
  if indices_written:
ophyd_async/sim/_motor.py CHANGED
@@ -3,7 +3,7 @@ import contextlib
3
3
  import time
4
4
 
5
5
  import numpy as np
6
- from bluesky.protocols import Location, Reading, Stoppable, Subscribable
6
+ from bluesky.protocols import Locatable, Location, Reading, Stoppable, Subscribable
7
7
  from pydantic import BaseModel, ConfigDict, Field
8
8
 
9
9
  from ophyd_async.core import (
@@ -50,7 +50,7 @@ class FlySimMotorInfo(BaseModel):
50
50
  return self.cv_end + acceleration_time * self.velocity / 2
51
51
 
52
52
 
53
- class SimMotor(StandardReadable, Stoppable, Subscribable[float]):
53
+ class SimMotor(StandardReadable, Stoppable, Subscribable[float], Locatable[float]):
54
54
  """For usage when simulating a motor."""
55
55
 
56
56
  def __init__(self, name="", instant=True) -> None:
@@ -45,12 +45,14 @@ class PatternFile:
45
45
  shape=(0, height, width),
46
46
  dtype=np.uint8,
47
47
  maxshape=(None, height, width),
48
+ chunks=(1024, height, width),
48
49
  )
49
50
  self.sum = self.file.create_dataset(
50
51
  name=SUM_PATH,
51
52
  shape=(0,),
52
53
  dtype=np.int64,
53
54
  maxshape=(None,),
55
+ chunks=(1024,),
54
56
  )
55
57
  # Once datasets written, can switch the model to single writer multiple reader
56
58
  self.file.swmr_mode = True
@@ -3,10 +3,11 @@ from __future__ import annotations
3
3
  from dataclasses import dataclass
4
4
  from typing import Any, Generic, TypeVar
5
5
 
6
- from ophyd_async.core import Device, DeviceConnector, DeviceFiller, LazyMock
7
6
  from tango import DeviceProxy
8
7
  from tango.asyncio import DeviceProxy as AsyncDeviceProxy
9
8
 
9
+ from ophyd_async.core import Device, DeviceConnector, DeviceFiller, LazyMock
10
+
10
11
  from ._signal import TangoSignalBackend, infer_python_type, infer_signal_type
11
12
  from ._utils import get_full_attr_trl
12
13
 
@@ -2,13 +2,9 @@ from typing import Any, Generic
2
2
 
3
3
  import numpy as np
4
4
  from numpy.typing import NDArray
5
+ from tango import DevState
5
6
 
6
- from ophyd_async.core import (
7
- SignalDatatypeT,
8
- )
9
- from tango import (
10
- DevState,
11
- )
7
+ from ophyd_async.core import SignalDatatypeT
12
8
 
13
9
  from ._utils import DevStateEnum
14
10
 
@@ -6,6 +6,14 @@ import logging
6
6
  from enum import Enum, IntEnum
7
7
 
8
8
  import numpy.typing as npt
9
+ from tango import (
10
+ AttrDataFormat,
11
+ AttrWriteType,
12
+ CmdArgType,
13
+ DeviceProxy,
14
+ DevState,
15
+ )
16
+ from tango.asyncio import DeviceProxy as AsyncDeviceProxy
9
17
 
10
18
  from ophyd_async.core import (
11
19
  DEFAULT_TIMEOUT,
@@ -16,14 +24,6 @@ from ophyd_async.core import (
16
24
  SignalW,
17
25
  SignalX,
18
26
  )
19
- from tango import (
20
- AttrDataFormat,
21
- AttrWriteType,
22
- CmdArgType,
23
- DeviceProxy,
24
- DevState,
25
- )
26
- from tango.asyncio import DeviceProxy as AsyncDeviceProxy
27
27
 
28
28
  from ._tango_transport import TangoSignalBackend, get_python_type
29
29
  from ._utils import get_device_trl_and_attr
@@ -10,18 +10,6 @@ from typing import Any, ParamSpec, TypeVar, cast
10
10
  import numpy as np
11
11
  from bluesky.protocols import Reading
12
12
  from event_model import DataKey
13
-
14
- from ophyd_async.core import (
15
- AsyncStatus,
16
- Callback,
17
- NotConnected,
18
- SignalBackend,
19
- SignalDatatypeT,
20
- StrictEnum,
21
- get_dtype,
22
- get_unique,
23
- wait_for_connection,
24
- )
25
13
  from tango import (
26
14
  AttrDataFormat,
27
15
  AttributeInfoEx,
@@ -40,6 +28,18 @@ from tango.asyncio_executor import (
40
28
  )
41
29
  from tango.utils import is_array, is_binary, is_bool, is_float, is_int, is_str
42
30
 
31
+ from ophyd_async.core import (
32
+ AsyncStatus,
33
+ Callback,
34
+ NotConnected,
35
+ SignalBackend,
36
+ SignalDatatypeT,
37
+ StrictEnum,
38
+ get_dtype,
39
+ get_unique,
40
+ wait_for_connection,
41
+ )
42
+
43
43
  from ._converters import (
44
44
  TangoConverter,
45
45
  TangoDevStateArrayConverter,
@@ -2,7 +2,6 @@ import asyncio
2
2
  import time
3
3
 
4
4
  import numpy as np
5
-
6
5
  from tango import AttrWriteType, DevState, GreenMode
7
6
  from tango.server import Device, attribute, command
8
7
 
@@ -3,6 +3,8 @@ from dataclasses import dataclass
3
3
  from typing import Any, Generic, TypeVar
4
4
 
5
5
  import numpy as np
6
+ from tango import AttrDataFormat, AttrWriteType, DevState
7
+ from tango.server import Device, attribute, command
6
8
 
7
9
  from ophyd_async.core import (
8
10
  Array1D,
@@ -10,8 +12,6 @@ from ophyd_async.core import (
10
12
  StrictEnum,
11
13
  )
12
14
  from ophyd_async.testing import float_array_value, int_array_value
13
- from tango import AttrDataFormat, AttrWriteType, DevState
14
- from tango.server import Device, attribute, command
15
15
 
16
16
  T = TypeVar("T")
17
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ophyd-async
3
- Version: 0.10.0a2
3
+ Version: 0.10.0a4
4
4
  Summary: Asynchronous Bluesky hardware abstraction code, compatible with control systems like EPICS and Tango
5
5
  Author-email: Tom Cobb <tom.cobb@diamond.ac.uk>
6
6
  License: BSD 3-Clause License
@@ -1,74 +1,74 @@
1
1
  ophyd_async/__init__.py,sha256=dcAA3qsj1nNIMe5l-v2tlduZ_ypwBmyuHe45Lsq4k4w,206
2
2
  ophyd_async/__main__.py,sha256=n_U4O9bgm97OuboUB_9eK7eFiwy8BZSgXJ0OzbE0DqU,481
3
3
  ophyd_async/_docs_parser.py,sha256=gPYrigfSbYCF7QoSf2UvE-cpQu4snSssl7ZWN-kKDzI,352
4
- ophyd_async/_version.py,sha256=vwU_BgU9ApXpWH564vijXNOtjK-ww1iSaNC4uWmoIT4,515
4
+ ophyd_async/_version.py,sha256=nAYruEsg-pmbrsaMZ5jXkxpaKnALiE0J3VPjge9G13A,521
5
5
  ophyd_async/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- ophyd_async/core/__init__.py,sha256=eFRVN5WJQKNcZbFtP8abDcra6d_mwFLA0A60AbXL2Vw,4484
7
- ophyd_async/core/_derived_signal.py,sha256=DS2-t_N8WOGjZjzt-0xRHaWIr3VzKFyV-WiRKRxf7ks,10404
8
- ophyd_async/core/_derived_signal_backend.py,sha256=5_J9AfRPueJZ-CEgpE7GSG9B1nHUFzanD0N2D1mrGrY,12216
9
- ophyd_async/core/_detector.py,sha256=J5Chu4sI9WgupB_3qh1c7ZOtlv9tSMJ3tXkHnsc9WIw,14517
10
- ophyd_async/core/_device.py,sha256=UjpKuGvwCYN0-I0qpdWzBI9uLSLieHryDsLf_9Qeu-Y,14593
6
+ ophyd_async/core/__init__.py,sha256=mSoldXL3hou1UifwsUcos2Q3Vy_pAaNJJWdMc0VInyg,4516
7
+ ophyd_async/core/_derived_signal.py,sha256=sSb-nRkcZzjyo2eG_z4Rawadkt0QPZTEWtcV3a_TTBM,11439
8
+ ophyd_async/core/_derived_signal_backend.py,sha256=pci61vJkGnsMYxB54AZHyOr4rJECRpigNFtUZTM0P20,12211
9
+ ophyd_async/core/_detector.py,sha256=PbWpv7lyBvYEJV-prG9qU0DadmxhyzMhQ9oLC0N7vwQ,15193
10
+ ophyd_async/core/_device.py,sha256=QSOgjXkvBpPWE1VhQ21tIC8d9z4Oadr6C_1tk4J21W4,14617
11
11
  ophyd_async/core/_device_filler.py,sha256=MDz8eQQ-eEAwo-UEMxfqPfpcBuMG01tLCGR6utwVnmE,14825
12
12
  ophyd_async/core/_flyer.py,sha256=YPCGAokF0GofOOO2OLrsSLoZSXs_RzmmrNglBunA31o,1924
13
- ophyd_async/core/_hdf_dataset.py,sha256=eKz5wJQrhpnfnnEG9kliFqlEEdaN4oHy98JXsp-tGNE,2956
13
+ ophyd_async/core/_hdf_dataset.py,sha256=jOYcrJUvZy9VarHCxs-eOIYME5u1yGOZK9CqccCEA6E,2868
14
14
  ophyd_async/core/_log.py,sha256=DxKR4Nz3SgTaTzKBZWqt-w48yT8WUAr_3Qr223TEWRw,3587
15
15
  ophyd_async/core/_mock_signal_backend.py,sha256=SPdCbVWss6-iL9C3t9u0IvR_Ln9JeDypVd18WlivdjE,3156
16
16
  ophyd_async/core/_protocol.py,sha256=wQ_snxhTprHqEjQb1HgFwBljwolMY6A8C3xgV1PXwdU,4051
17
- ophyd_async/core/_providers.py,sha256=VbpRqV9hjv-GV8ngiy52FUoQGnR0XpQ0ZzQ1SPo0NwU,7765
18
- ophyd_async/core/_readable.py,sha256=o96tsAxOK81554TQtwJobDn6moDimu5u-k-IXfLttO8,11053
17
+ ophyd_async/core/_providers.py,sha256=0R--Slh_E16l4AQoNtessQZpOwIn7uBowvcnzh8jYgk,7538
18
+ ophyd_async/core/_readable.py,sha256=iBo1YwA5bsAbzLbznvmSnzKDWUuGkLh850Br3BXsgeU,11707
19
19
  ophyd_async/core/_settings.py,sha256=_ZccbXKP7j5rG6-bMKk7aaLr8hChdRDAPY_YSR71XXM,4213
20
- ophyd_async/core/_signal.py,sha256=kqIvQXRP3n34-uhgTmbwm2fTIz_phJYyTT4Rm7P-gSs,26412
21
- ophyd_async/core/_signal_backend.py,sha256=T8vJi-QuMfjB_uBB6iu_aApAY0j5pAFkDn5g2oSCbmI,6826
20
+ ophyd_async/core/_signal.py,sha256=isPya2iextwRcWAV1SOf7CUwyL0PJloAUVH8rp1G2tE,27134
21
+ ophyd_async/core/_signal_backend.py,sha256=9MIzT3ArlL7BJlmWQxr4Moxc4LGQhmTclfCQfIlq4Ps,6923
22
22
  ophyd_async/core/_soft_signal_backend.py,sha256=zrE7H2ojHY6oQBucLkFgukszrkdvbIZuavLjEUqc_xM,6227
23
23
  ophyd_async/core/_status.py,sha256=h4TtWFM7wFtpxxyAYYSITgcVzArYZdYBHbya6qIX5t0,6553
24
24
  ophyd_async/core/_table.py,sha256=l5GzL3La68ZkXpcOOVntnYr8ofFV8kWGr1hzY1ek83w,6897
25
- ophyd_async/core/_utils.py,sha256=zEA3lLeOP0N17XGUH8irxvEW8hq0slkxY4gJV3f4YzE,11382
25
+ ophyd_async/core/_utils.py,sha256=742wGL3cJD4wlDlNlS-KAbaTN5FkYDY7RXU7m6wpYaw,11737
26
26
  ophyd_async/core/_yaml_settings.py,sha256=txy4_Igbsr8Yo132yv8jnCcsLpal8klM7DcPNow2KBs,2078
27
27
  ophyd_async/epics/__init__.py,sha256=ou4yEaH9VZHz70e8oM614-arLMQvUfQyXhRJsnEpWn8,60
28
- ophyd_async/epics/motor.py,sha256=6AyLQmgqzabcJ4T2yTJBP1omSxxWeya5RbR_r4zYr10,10458
28
+ ophyd_async/epics/motor.py,sha256=OgfETz_7wCLmG4WCYDpaYyUB4TomDFyCyZzwyhW1Tiw,10549
29
29
  ophyd_async/epics/signal.py,sha256=0A-supp9ajr63O6aD7F9oG0-Q26YmRjk-ZGh57-jo1Y,239
30
30
  ophyd_async/epics/adandor/__init__.py,sha256=qsBoZdljSaqM-kJSvTf0uq5TNwXAih9lP3yOZpKxOFQ,204
31
31
  ophyd_async/epics/adandor/_andor.py,sha256=SxAIP9OLefUqKcxrxhjNzil5D8-59Ps0vADdR6scO44,1281
32
- ophyd_async/epics/adandor/_andor_controller.py,sha256=BqHNo0CqQR9WoxkTYNy0wP0vHKmkQk7PTvEbigLZG6I,1757
32
+ ophyd_async/epics/adandor/_andor_controller.py,sha256=QojcPUIKpGL6RHuoqy5OCqLpBwzMsm81ciQDWp1cSCo,1758
33
33
  ophyd_async/epics/adandor/_andor_io.py,sha256=L1HmugU6sHK3F_pT0LaN3U1hKlDkzmSwdqr6-LHieTg,1036
34
34
  ophyd_async/epics/adaravis/__init__.py,sha256=ZQaJVQiwcQn9hUZADrYgBE1sDfFEwjhVBJRPth1_LBo,395
35
35
  ophyd_async/epics/adaravis/_aravis.py,sha256=Ju2wuebz9_ovl-Kza39s5VQ1pV-Omt_BaIWKqP4kcGA,1315
36
- ophyd_async/epics/adaravis/_aravis_controller.py,sha256=SP3Zpgv8xpOYKJECIrLisQkQMfvfbswHeW5W_mHHhWU,1906
36
+ ophyd_async/epics/adaravis/_aravis_controller.py,sha256=WiFR7_FAAu6_88zG-yzGLsR9YcO4L6xR73Wnjw9n0i4,1908
37
37
  ophyd_async/epics/adaravis/_aravis_io.py,sha256=af5RxeXF2ligvAXwMNMKHA4QHTR_WmNFz-f18qD2dbg,855
38
38
  ophyd_async/epics/adcore/__init__.py,sha256=GipuBZwaAju4g15WjvGs78S4zjGVxmbPel4E29zHFvE,1583
39
- ophyd_async/epics/adcore/_core_detector.py,sha256=a7S9RViLXd9XnKFWFOhcMrSbubqZoxdQt09BZr8apUQ,2617
40
- ophyd_async/epics/adcore/_core_io.py,sha256=-MEsDO736idCrAxvT4BnX-NBWLvZGHTNO22c5H09_J8,7406
41
- ophyd_async/epics/adcore/_core_logic.py,sha256=OPY-yF2lTHDC_KM5AarAfJnvhmmEA63FxKaIRaCCQ_4,8062
42
- ophyd_async/epics/adcore/_core_writer.py,sha256=D3qOcW8n3FMSLNACpBdCbQG0hmXE3nweTqZNuxoTYME,8207
43
- ophyd_async/epics/adcore/_hdf_writer.py,sha256=PTciHPAAqsQULncPBXUJ2tS_I232Ko6Hc6IdLHFfKmU,5519
44
- ophyd_async/epics/adcore/_jpeg_writer.py,sha256=DFv3YdqKjNq0QCb-bLBlxTaGzmHSvdU_rLB29beI46w,748
39
+ ophyd_async/epics/adcore/_core_detector.py,sha256=mRDaHgXCTZF-MIVsU1csoQx9jObutYDpMWayugx2-jI,2631
40
+ ophyd_async/epics/adcore/_core_io.py,sha256=jm4gQUSq727xnPriuH6jFHqlDBZceKxr_XyBNj5F65U,7392
41
+ ophyd_async/epics/adcore/_core_logic.py,sha256=CjzrfC5HiwoLI1igqRKIn2SSH86T_QmAFi1-kEdyGyM,8075
42
+ ophyd_async/epics/adcore/_core_writer.py,sha256=S58plRmbNzig-r7gubKjDVDni_nf4CASaV1OJvudbHw,8019
43
+ ophyd_async/epics/adcore/_hdf_writer.py,sha256=ns7T9tb54ReGnyYs0fITg3Cb_0DSz4EDKlKtjBkmG3k,5572
44
+ ophyd_async/epics/adcore/_jpeg_writer.py,sha256=7XC4Twx_MaCBjeol27UA-hStOCQEjkEAb3ToVMPUlZ8,670
45
45
  ophyd_async/epics/adcore/_single_trigger.py,sha256=tFGLT1b_rZzAvbqWP-hyCccxJMRY26T5IER-VAqKXmc,1275
46
- ophyd_async/epics/adcore/_tiff_writer.py,sha256=5WXdW0thL9nv2jSMSqF-bMGQjztQZEnx3enY-nGsLiY,749
47
- ophyd_async/epics/adcore/_utils.py,sha256=wGWpvm2hi-80N-RxbKOO0-GcMf-vs7B9ZDBxpzGd4mA,3952
46
+ ophyd_async/epics/adcore/_tiff_writer.py,sha256=Na30osfkgrq4VQhUzDcuS52Gy7FS08CzbgEmKwljTmk,671
47
+ ophyd_async/epics/adcore/_utils.py,sha256=jMmZnyDwRDBq-N_x8qOWjW2RMN9uw2KuoAmukPbb404,4252
48
48
  ophyd_async/epics/adkinetix/__init__.py,sha256=A9xq3lGMrmza9lfukRixC0Up_kUDVFII8JguLr2x7Bw,308
49
49
  ophyd_async/epics/adkinetix/_kinetix.py,sha256=zZv0JZ8i1RSx7KBDn_1HGNOY0BoIP81mRK5TKq7d4eA,1302
50
- ophyd_async/epics/adkinetix/_kinetix_controller.py,sha256=cL2nf9ntmXDq3BGku9aIUYdm85DdfB7PYhypGuY1PPg,1480
50
+ ophyd_async/epics/adkinetix/_kinetix_controller.py,sha256=UI-XcQpGj7jq-_e1ceoMOZkyfejwG6H5wX-Ntp_NJjg,1481
51
51
  ophyd_async/epics/adkinetix/_kinetix_io.py,sha256=5u4TknhcoCSjyp16HQIEp_aOmvfNAKOBoGlMRJoVxuw,770
52
52
  ophyd_async/epics/adpilatus/__init__.py,sha256=So7PrLHij7LWOqMbsHUhfqRzKp9iKtrojuWTDS1lID8,406
53
- ophyd_async/epics/adpilatus/_pilatus.py,sha256=SqNjGpZde_9RVSghjx6h9g2SnoJP-EWU4ew3TMXPayc,1511
54
- ophyd_async/epics/adpilatus/_pilatus_controller.py,sha256=gzGE3eTpsC-CFcNH_g_xQf3M08DcKO3Q0_LnAzKvpFc,2850
55
- ophyd_async/epics/adpilatus/_pilatus_io.py,sha256=rzH0ciyzIOJUqDe7qdNwG1RhXyQqbJa-4h_88R1vTKc,827
53
+ ophyd_async/epics/adpilatus/_pilatus.py,sha256=CaViuom2oKxYWRU4Y_GltHA-LxqguoTW9k67b76Q5SY,1538
54
+ ophyd_async/epics/adpilatus/_pilatus_controller.py,sha256=21NVM_xwS5De1R6Vi_4GKpbTfdxByMzmZNwU3qBV1-A,2515
55
+ ophyd_async/epics/adpilatus/_pilatus_io.py,sha256=EhCj--x4yYy5AtRBG6Ts3A6gsKS6Ut-LaMihAuYDvE0,819
56
56
  ophyd_async/epics/adsimdetector/__init__.py,sha256=EQqxP5DUvZGLxpvSXPagTPy3ROwE-PikyRfcnZfD1KM,281
57
57
  ophyd_async/epics/adsimdetector/_sim.py,sha256=r3SuBENGkOU-8X-i3zDyZljFxf0SmsUfryNPFvP1_os,1147
58
58
  ophyd_async/epics/adsimdetector/_sim_controller.py,sha256=EmoorPTvRomEwfioA9UcrnhYaUBkvtLI2WY3zBLd4ec,476
59
59
  ophyd_async/epics/adsimdetector/_sim_io.py,sha256=TOQcawMtb0ypwUlPcbwGfvp5ZI9jceB9OXm53WBF1_o,233
60
60
  ophyd_async/epics/advimba/__init__.py,sha256=Onoe4N1DgjUZ0-00krm2-iJPXnNF8nPGs6I8pY9wB1g,429
61
61
  ophyd_async/epics/advimba/_vimba.py,sha256=4XlEnsJMGDzHLuYaIDUmaxx0gtOAehn5BKBZMUAzoHQ,1241
62
- ophyd_async/epics/advimba/_vimba_controller.py,sha256=vv133Eqgk9AI_P5Yy8ZUlry7w-ip56QZ2bPaWenspHo,1979
62
+ ophyd_async/epics/advimba/_vimba_controller.py,sha256=v0av2bGnaJ01w9Igksupt2IlkuBEFlAeRCPOVma-Xa4,1980
63
63
  ophyd_async/epics/advimba/_vimba_io.py,sha256=cb2Nfp05fBZAcNVXpz-rqRIRS-TiZW5DPUJOmaFyAw0,1589
64
64
  ophyd_async/epics/core/__init__.py,sha256=8NoQxEEc2Ny_L9nrD2fnGSf_2gJr1wCR1LwUeLNcIJo,588
65
- ophyd_async/epics/core/_aioca.py,sha256=HcGYyYUQZmhdUgovf0M9xxL5Ly56ELJDAoRvyRCPq8U,13003
65
+ ophyd_async/epics/core/_aioca.py,sha256=py5dM5hbT2OXah_Lzt_fAZ9RdaHhv8pdUtkOF8iOYO4,13015
66
66
  ophyd_async/epics/core/_epics_connector.py,sha256=S4z_wbj-aogVcjqCyUgjhcq5Y4gDC7y6wXbsSz2nODY,1918
67
67
  ophyd_async/epics/core/_epics_device.py,sha256=wGdR24I7GSPh3HmM7jsWKZhBZgt4IyLrCn4Ut7Wx_xo,510
68
- ophyd_async/epics/core/_p4p.py,sha256=EqelV3Uc7UO7KJ0Bnj5JoISnGVcrm3Hj3v8aTeVbFCo,16398
69
- ophyd_async/epics/core/_pvi_connector.py,sha256=GSIcul0g6zMEFo_7f6YJCGhekZOm0bJfay_uASw1Hng,5521
68
+ ophyd_async/epics/core/_p4p.py,sha256=uWh3oWPme74G4YfeJ6k8ZlHdKOwcf8Xp1J82b9aa_JI,16407
69
+ ophyd_async/epics/core/_pvi_connector.py,sha256=nAReSiasZA3j_0f8XhuWVO4_ck0MrusnKR9Jg-RT-ok,5584
70
70
  ophyd_async/epics/core/_signal.py,sha256=2Cp5f5Xb2junnVigypjb3hWu4MuMmbrcHOBgPl5Mhv4,5776
71
- ophyd_async/epics/core/_util.py,sha256=DcfX4VUTeqLrMhVlt1Q7cvBTuYzHePAA-jdR-OWcxMM,2056
71
+ ophyd_async/epics/core/_util.py,sha256=G2kYfwsQ5iS3EgGrGuPA8bgC_PEN_XxO28oBurIqJFQ,2522
72
72
  ophyd_async/epics/demo/__init__.py,sha256=WR2M3D8dbHcisJW2OIU2ManZu5SWez8ytZEp4jSBfDY,416
73
73
  ophyd_async/epics/demo/__main__.py,sha256=o6M0FSWduPHe2lN9yNEdsXb48NckSd54-XJGoLe20Pc,1116
74
74
  ophyd_async/epics/demo/_ioc.py,sha256=UtwTReKTR-1_tPIhdGBr7OxP_Vqi6xWyCcFABd9BYPY,1040
@@ -79,29 +79,30 @@ ophyd_async/epics/demo/_stage.py,sha256=KPnwr5EX8f_0xxkNWT-70a0AqB0D9DoiTbxMmy0i
79
79
  ophyd_async/epics/demo/motor.db,sha256=3xb6WTXo4crrvk-M8Y16G9pUidp27vD5vIKKBpLTUlk,1017
80
80
  ophyd_async/epics/demo/point_detector.db,sha256=8kBa3XKpmfXCxetT4tq5_RFXa_XqS1Z2ZNzsa2AtLds,1366
81
81
  ophyd_async/epics/demo/point_detector_channel.db,sha256=FZ9H6HjqplhcF2jgimv_dT1nn-CBlfjs7Y--iCfHp5Y,632
82
- ophyd_async/epics/eiger/__init__.py,sha256=b3Tt4pVLk23Giyj50R4e94d2MxWDDmNHWhWwNq2jlaw,221
83
- ophyd_async/epics/eiger/_eiger.py,sha256=YBEGPHFqAwrA6tvNqn9HlPkN0d7GoXlDcT6vjFhhT5Y,1123
84
- ophyd_async/epics/eiger/_eiger_controller.py,sha256=p_SdYPfSSQvQ3QXZIr7TLOSpPjC-Ce0C7azVOLfZnwY,2544
85
- ophyd_async/epics/eiger/_eiger_io.py,sha256=AorI8ybAMYQqJZG8QoE3wioPode7fwzRWptNzD5Ynfo,1873
86
- ophyd_async/epics/eiger/_odin_io.py,sha256=_KdvMEk-c2jrWYflx2a0k5RLDGal-6SVtlGqG10iQA8,4123
82
+ ophyd_async/epics/eiger/__init__.py,sha256=7kRqVzwoD8PVtp7Nj9iQWlgbLeoWE_8oiq-B0kixwTE,93
83
+ ophyd_async/epics/eiger/_odin_io.py,sha256=4JHHeQ2R6ukq_JROGFeWVpez1UZqKpmWP1jaDCA71gQ,5567
87
84
  ophyd_async/epics/testing/__init__.py,sha256=aTIv4D2DYrpnGco5RQF8QuLG1SfFkIlTyM2uYEKXltA,522
88
- ophyd_async/epics/testing/_example_ioc.py,sha256=lGPubU3aXP-8N-Y-6xW1ksRqoawKExFFe1l8zMZqmjk,3864
85
+ ophyd_async/epics/testing/_example_ioc.py,sha256=uUmfMXV_Pd2SMFyb0y_4uTc6gkGRUqU1cJ-XQC2ROW8,3915
89
86
  ophyd_async/epics/testing/_utils.py,sha256=6sqJ0BCwubSkK-WOJbmpKNqZKG0AmCoevzaMGaRmuJs,1702
90
- ophyd_async/epics/testing/test_records.db,sha256=hUD9jIzFmN6DgRDGv4-PkeJxCjRjfjvDq5GoTXMz4Zo,3492
87
+ ophyd_async/epics/testing/test_records.db,sha256=SgWQPZgtmc__JiLkH2VPwe5KZOua6ZCIgTLGT_5SDDc,3589
91
88
  ophyd_async/epics/testing/test_records_pva.db,sha256=HJAJSvLtPWG5B5dKv8OZ0_hPJxRFrDoYp6ROcF2lqyA,4202
92
89
  ophyd_async/fastcs/__init__.py,sha256=qlIM9-pjJ8yWfnzTM9-T9cw7zQLKjeeNROQTni5Dr6M,80
93
90
  ophyd_async/fastcs/core.py,sha256=pL_srtTrfuoBHUjDFpxES92owFq9M4Jve0Skk1oeuFA,517
91
+ ophyd_async/fastcs/eiger/__init__.py,sha256=kwYs1PuetEOTeNcFNxtyhTvfbJvWCOu8wtEw3Knotuw,354
92
+ ophyd_async/fastcs/eiger/_eiger.py,sha256=5mpao2j2Xc11OuecvimPTmZ9mkEndzgMlDj1x-K-5hg,1241
93
+ ophyd_async/fastcs/eiger/_eiger_controller.py,sha256=Cucj-1M-1CaxSJxHZmHs3f_OXwtTIspcqUFhRNGzn_E,2361
94
+ ophyd_async/fastcs/eiger/_eiger_io.py,sha256=KS1ppYt6PJvPpHiR2AaDaPAhkhYwC2ei8VuZnBBiBs8,1216
94
95
  ophyd_async/fastcs/odin/__init__.py,sha256=da1PTClDMl-IBkrSvq6JC1lnS-K_BASzCvxVhNxN5Ls,13
95
96
  ophyd_async/fastcs/panda/__init__.py,sha256=ugrScVm4HPQFc-d1kTAfZ5UUzW9T3SPgTi0OD2s8ZH0,1003
96
- ophyd_async/fastcs/panda/_block.py,sha256=YzAxdMsE-kzyz5v47TZHRvCbdbYrSvSrfega53MyX9U,2342
97
+ ophyd_async/fastcs/panda/_block.py,sha256=SM7NaWCRwLz2Pl4wgjZMrDgx3ZLdGPTw6nU0bA-65yA,2394
97
98
  ophyd_async/fastcs/panda/_control.py,sha256=xtW3dH_MLQoycgP-4vJtYx1M9alHjWo13iu9UFTgwzY,1306
98
- ophyd_async/fastcs/panda/_hdf_panda.py,sha256=eDxEO5L3tlmPsH06fe2AluXjbGclTpPTj0CnMcVQceU,1277
99
+ ophyd_async/fastcs/panda/_hdf_panda.py,sha256=tL_OWHxlMQcMZGq9sxHLSeag6hP9MRIbTPn1W0u0iNI,1237
99
100
  ophyd_async/fastcs/panda/_table.py,sha256=maKGoKypEuYqTSVWGgDO6GMEKOtlDm9Dn5YiYdBzu6c,2486
100
101
  ophyd_async/fastcs/panda/_trigger.py,sha256=dy4kYdVIU4T90a2bhD7cdnfGrqMxZ_n0AZxkFI5txfA,3388
101
- ophyd_async/fastcs/panda/_writer.py,sha256=Xh3fNA7wr2tFuqCtnMfAbJT00rziiNypHWDnStGolXg,6143
102
+ ophyd_async/fastcs/panda/_writer.py,sha256=LcCSdEo_65bAQU_OnO_AMQ0aXSjIaWUFdUY9EM2eOI4,6381
102
103
  ophyd_async/plan_stubs/__init__.py,sha256=2ngpkB4wwqlx1dn9JPSHjQdbyWLmY6n-3XVh3RDE8-g,939
103
104
  ophyd_async/plan_stubs/_ensure_connected.py,sha256=YR6VRj7koccJ4x35NV-Ugl4ZbxgAoGN9PjVIjhv0gpw,894
104
- ophyd_async/plan_stubs/_fly.py,sha256=QdodnmBJ0zrUGxcNY7EzLsiPSD8O3Rq9lE9VrWUX5ik,6233
105
+ ophyd_async/plan_stubs/_fly.py,sha256=2xFae3b3bCux_1wmwKIF1tJx1vjg2JJfJ8iQ1aUExAs,6234
105
106
  ophyd_async/plan_stubs/_nd_attributes.py,sha256=kwzyUSeidUH714gaZQtJLxCgDZtmIRyyoKBBRbvqg38,2350
106
107
  ophyd_async/plan_stubs/_panda.py,sha256=5_Mf9kGzNjXpf_YscpCUE8tgq284nOHWCG7o_LNFfII,463
107
108
  ophyd_async/plan_stubs/_settings.py,sha256=e3dGVSUV-Htay_9fKXyQTAQLdjunetGI3OBYp_oC_FY,5574
@@ -109,31 +110,31 @@ ophyd_async/plan_stubs/_utils.py,sha256=zClRo5ve8RGia7wQnby41W-Zprj-slOA5da1LfYn
109
110
  ophyd_async/plan_stubs/_wait_for_awaitable.py,sha256=PGct_dGezKrLhm0W_GD83dwevSccG_vsmj0WSlMNVWc,364
110
111
  ophyd_async/sim/__init__.py,sha256=PzmOQS7suApaZros4h9ec5K6ehFWEjf3qYMvwFGeKsc,749
111
112
  ophyd_async/sim/__main__.py,sha256=mx6natJxnvUBTQXbS4R5OGH_MZVgYiXQkoh3JBJ8NxU,1693
112
- ophyd_async/sim/_blob_detector.py,sha256=4zWsVdn21TM2bHLA-uZRK98t5c2II68fr3Al37apCmc,1082
113
- ophyd_async/sim/_blob_detector_controller.py,sha256=DBPX3Ig0tS1kzu7uOkFzSdmRjsRP-epA7iMZsggaxhw,1787
114
- ophyd_async/sim/_blob_detector_writer.py,sha256=ao6RJ9DM_64HoMOp-vR-BaweKwQstLs3E4_MpRzXXZ4,3623
113
+ ophyd_async/sim/_blob_detector.py,sha256=bJa-G2JF6pPLJx4YIEvFTG07DvQ18ZNSYbtde6qnWPY,1033
114
+ ophyd_async/sim/_blob_detector_controller.py,sha256=y1aSNQJUPnsT2qnj2sk254Mp18anmgQy7ctHlYQZ_B0,1788
115
+ ophyd_async/sim/_blob_detector_writer.py,sha256=4sC3Kkyk4-sSaN7mSKk4A4zDH4IU_qkc1gaqt4QyTAM,3636
115
116
  ophyd_async/sim/_mirror_horizontal.py,sha256=_AfsHxp5V3rYbK-goI0iwPuDDvx1BrNoUQ4smXzqFbc,1452
116
117
  ophyd_async/sim/_mirror_vertical.py,sha256=PyWpyCrW_FCzzGN7Dk0tTB-SKbDIV4GD1fl8AXUJbEI,2029
117
- ophyd_async/sim/_motor.py,sha256=-YMANsq4ZvI7nZolrYaTYe44kMoIcvPKCpBbCeC7pxw,10167
118
- ophyd_async/sim/_pattern_generator.py,sha256=QU6Hk3TK0TslrDcITTzcB_UDLVIYQ_a8x4nBGJGx_ig,3652
118
+ ophyd_async/sim/_motor.py,sha256=jrI83A6kPCkZztHDKcd1XaXq7sc6GD2Ylkn7JxlULp0,10196
119
+ ophyd_async/sim/_pattern_generator.py,sha256=FjPEWiBQh_7tYP_8WPhbVXnTGPPOaV6By7Skz7YNIrY,3722
119
120
  ophyd_async/sim/_point_detector.py,sha256=nXgL_1aJZciNBw8Zr2wMYaMbzzAEKXV3yV8FQz2nS_4,2940
120
121
  ophyd_async/sim/_stage.py,sha256=qaeyZbUVL1v2pTHJiZxq-y6BKpA1l_DAKyzAQppQx70,772
121
122
  ophyd_async/tango/__init__.py,sha256=g9xzjlzPpUAP12YI-kYwfAoLSYPAQdL1S11R2c-cius,60
122
123
  ophyd_async/tango/core/__init__.py,sha256=IMvQ7MWcTof99h_pr483KWKvQV2-h7zo_iRpLA2PUYQ,1108
123
- ophyd_async/tango/core/_base_device.py,sha256=mXQnhCzFAdSrynelubhz7iLx_akINJ6s1M08mikFFME,5032
124
- ophyd_async/tango/core/_converters.py,sha256=auBUdvbsEU8XXNDzX-fiBap0SvvID3ZOAUEP_wjHgBU,2201
125
- ophyd_async/tango/core/_signal.py,sha256=XZ38hPnThZ-__RDgwH8UfUk78NLcrZ8zVCH8sklr_3U,5798
124
+ ophyd_async/tango/core/_base_device.py,sha256=e9oqSL-fDOj8r9nUUFZkbibhRGbI6HYtlnZjK5B_2fE,5033
125
+ ophyd_async/tango/core/_converters.py,sha256=xI_RhMR8dY6IVORUZVVCL9LdYnEE6TA6BBPX_lTu06w,2183
126
+ ophyd_async/tango/core/_signal.py,sha256=6KXDzV8Z08hrtCqG8J4AYnhemQjtL6Eofngo6yNo52o,5798
126
127
  ophyd_async/tango/core/_tango_readable.py,sha256=ctR6YcBGGatW6Jp2kvddA1hVZ2v1CidPsF9FmJK9BYg,406
127
- ophyd_async/tango/core/_tango_transport.py,sha256=FlvadKRW9H_ggcQ3MTiAGHE4HDTKu_rAk5WODMxwk_E,31903
128
+ ophyd_async/tango/core/_tango_transport.py,sha256=6ngUybtSYqABFKsxZgA-rVms21LDmxIwfQ_VMS7h5qU,31903
128
129
  ophyd_async/tango/core/_utils.py,sha256=FrX524jwa-0EQxpcGaKF6yqyHm5BWIFSE82FcIB0aAY,1430
129
130
  ophyd_async/tango/demo/__init__.py,sha256=_j-UicTnckuIBp8PnieFMOMnLFGivnaKdmo9o0hYtzc,256
130
131
  ophyd_async/tango/demo/_counter.py,sha256=2J4SCHnBWLF0O5mFWlJdO4tmnElvlx5sRrk4op_AC9U,1139
131
132
  ophyd_async/tango/demo/_detector.py,sha256=X5YWHAjukKZ7iYF1fBNle4CBDj1X5rvj0lnPMOcnRCU,1340
132
133
  ophyd_async/tango/demo/_mover.py,sha256=c-IxrWQN0YX-Iuf720xlKfsPbNfh7bUz_AVnbwYkW08,2984
133
134
  ophyd_async/tango/demo/_tango/__init__.py,sha256=FfONT7vM49nNo3a1Lv-LcMZO9EHv6bv91yY-RnxIib4,85
134
- ophyd_async/tango/demo/_tango/_servers.py,sha256=nyuKgufKKqtngDeaufbUcHO6byV5MEElf9442ivtUk0,2992
135
+ ophyd_async/tango/demo/_tango/_servers.py,sha256=putvERDyibibaTbhdWyqZB_axj2fURXqzDsZb9oSW14,2991
135
136
  ophyd_async/tango/testing/__init__.py,sha256=SYXPAS00ny3jlUMOJKpaewO4ljPjK1_z1smj7IfsBQg,148
136
- ophyd_async/tango/testing/_one_of_everything.py,sha256=rPAgOoNGvaHMVhB79Gz70NI9tWk3QV5iKg5wAlAtqxU,6571
137
+ ophyd_async/tango/testing/_one_of_everything.py,sha256=tsxWgy2f_m9f0FH4XCVO_I8OtEquKbJQZbr4KaXMJL4,6571
137
138
  ophyd_async/testing/__init__.py,sha256=f53HUj2hpIfrza9OlcOpHmq5wnziQNwixawAK4F1xgc,1698
138
139
  ophyd_async/testing/__pytest_assert_rewrite.py,sha256=_SU2UfChPgEf7CFY7aYH2B7MLp-07_qYnVLyu6QtDL8,129
139
140
  ophyd_async/testing/_assert.py,sha256=FrMgMfo-ABq_cMT-hJmoaTxhAY4TwAvGe4ae1SF1rME,7657
@@ -142,8 +143,8 @@ ophyd_async/testing/_one_of_everything.py,sha256=Di0hPoKwrDOSsx50-2UdSHM2EbIKrPG
142
143
  ophyd_async/testing/_single_derived.py,sha256=5-HOTzgePcZ354NK_ssVpyIbJoJmKyjVQCxSwQXUC-4,2730
143
144
  ophyd_async/testing/_utils.py,sha256=zClRo5ve8RGia7wQnby41W-Zprj-slOA5da1LfYnuhw,45
144
145
  ophyd_async/testing/_wait_for_pending.py,sha256=YZAR48n-CW0GsPey3zFRzMJ4byDAr3HvMIoawjmTrHw,732
145
- ophyd_async-0.10.0a2.dist-info/licenses/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
146
- ophyd_async-0.10.0a2.dist-info/METADATA,sha256=HhNyZ27Piz8QHIz_DzFZnRD_ZJ5oCRRxfEGY5YF9WlU,7075
147
- ophyd_async-0.10.0a2.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
148
- ophyd_async-0.10.0a2.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
149
- ophyd_async-0.10.0a2.dist-info/RECORD,,
146
+ ophyd_async-0.10.0a4.dist-info/licenses/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
147
+ ophyd_async-0.10.0a4.dist-info/METADATA,sha256=xs88nrJXsGw254wkPyFNyvQiajcqFFARvmS59_szwmo,7075
148
+ ophyd_async-0.10.0a4.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
149
+ ophyd_async-0.10.0a4.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
150
+ ophyd_async-0.10.0a4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (80.7.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,42 +0,0 @@
1
- from ophyd_async.core import Device, StrictEnum
2
- from ophyd_async.epics.core import epics_signal_r, epics_signal_rw_rbv, epics_signal_w
3
-
4
-
5
- class EigerTriggerMode(StrictEnum):
6
- INTERNAL = "ints"
7
- EDGE = "exts"
8
- GATE = "exte"
9
-
10
-
11
- class EigerDriverIO(Device):
12
- """Contains signals for handling IO on the Eiger detector."""
13
-
14
- def __init__(self, prefix: str, name: str = "") -> None:
15
- self.bit_depth = epics_signal_r(int, f"{prefix}BitDepthReadout")
16
- self.stale_parameters = epics_signal_r(bool, f"{prefix}StaleParameters")
17
- self.state = epics_signal_r(str, f"{prefix}DetectorState")
18
- self.roi_mode = epics_signal_rw_rbv(str, f"{prefix}RoiMode")
19
-
20
- self.acquire_time = epics_signal_rw_rbv(float, f"{prefix}CountTime")
21
- self.acquire_period = epics_signal_rw_rbv(float, f"{prefix}FrameTime")
22
-
23
- self.num_images = epics_signal_rw_rbv(int, f"{prefix}Nimages")
24
- self.num_triggers = epics_signal_rw_rbv(int, f"{prefix}Ntrigger")
25
-
26
- # TODO: Should be EigerTriggerMode enum, see https://github.com/DiamondLightSource/eiger-fastcs/issues/43
27
- self.trigger_mode = epics_signal_rw_rbv(str, f"{prefix}TriggerMode")
28
-
29
- self.arm = epics_signal_w(int, f"{prefix}Arm")
30
- self.disarm = epics_signal_w(int, f"{prefix}Disarm")
31
- self.abort = epics_signal_w(int, f"{prefix}Abort")
32
-
33
- self.beam_centre_x = epics_signal_rw_rbv(float, f"{prefix}BeamCenterX")
34
- self.beam_centre_y = epics_signal_rw_rbv(float, f"{prefix}BeamCenterY")
35
-
36
- self.det_distance = epics_signal_rw_rbv(float, f"{prefix}DetectorDistance")
37
- self.omega_start = epics_signal_rw_rbv(float, f"{prefix}OmegaStart")
38
- self.omega_increment = epics_signal_rw_rbv(float, f"{prefix}OmegaIncrement")
39
-
40
- self.photon_energy = epics_signal_rw_rbv(float, f"{prefix}PhotonEnergy")
41
-
42
- super().__init__(name)