Skip to content

Commit 7ffac10

Browse files
committed
Add type annotations for DeformableMirror and TriggerTarget.
1 parent fd73c98 commit 7ffac10

File tree

3 files changed

+16
-14
lines changed

3 files changed

+16
-14
lines changed

microscope/devices.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -851,14 +851,14 @@ class TriggerTargetMixIn(metaclass=abc.ABCMeta):
851851
852852
"""
853853
@property
854-
def trigger_mode(self):
854+
def trigger_mode(self) -> TriggerMode:
855855
return self._trigger_mode
856856
@property
857-
def trigger_type(self):
857+
def trigger_type(self) -> TriggerType:
858858
return self._trigger_type
859859

860860
@abc.abstractmethod
861-
def set_trigger(self, ttype, tmode):
861+
def set_trigger(self, ttype: TriggerType, tmode: TriggerMode) -> None:
862862
"""Set device for a specific trigger.
863863
"""
864864
pass

microscope/mirror/alpao.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ class AlpaoDeformableMirror(TriggerTargetMixIn, DeformableMirror):
5252

5353

5454
@staticmethod
55-
def _normalize_patterns(patterns):
55+
def _normalize_patterns(patterns: numpy.ndarray) -> numpy.ndarray:
5656
"""
5757
Alpao SDK expects values in the [-1 1] range, so we normalize
5858
them from the [0 1] range we expect in our interface.
5959
"""
6060
patterns = (patterns * 2) -1
6161
return patterns
6262

63-
def _find_error_str(self):
63+
def _find_error_str(self) -> str:
6464
"""Get an error string from the Alpao SDK error stack.
6565
6666
Returns
@@ -87,14 +87,14 @@ def _find_error_str(self):
8787
else:
8888
return ""
8989

90-
def _raise_if_error(self, status, exception_cls=Exception):
90+
def _raise_if_error(self, status: int, exception_cls=Exception) -> None:
9191
if status != asdk.SUCCESS:
9292
msg = self._find_error_str()
9393
if msg:
9494
raise exception_cls(msg)
9595

9696

97-
def __init__(self, serial_number, **kwargs):
97+
def __init__(self, serial_number: str, **kwargs) -> None:
9898
"""
9999
Parameters
100100
----------
@@ -128,7 +128,7 @@ def __init__(self, serial_number, **kwargs):
128128
def n_actuators(self) -> int:
129129
return self._n_actuators
130130

131-
def apply_pattern(self, pattern):
131+
def apply_pattern(self, pattern: numpy.ndarray) -> None:
132132
self._validate_patterns(pattern)
133133
pattern = self._normalize_patterns(pattern)
134134
data_pointer = pattern.ctypes.data_as(asdk.Scalar_p)
@@ -153,15 +153,15 @@ def set_trigger(self, ttype, tmode):
153153
self._raise_if_error(status)
154154
self._trigger_type = ttype
155155

156-
def queue_patterns(self, patterns):
156+
def queue_patterns(self, patterns: numpy.ndarray) -> None:
157157
if self._trigger_type == TriggerType.SOFTWARE:
158158
super().queue_patterns(patterns)
159159
return
160160

161161
self._validate_patterns(patterns)
162162
patterns = self._normalize_patterns(patterns)
163163
patterns = numpy.atleast_2d(patterns)
164-
n_patterns = patterns.shape[0]
164+
n_patterns = patterns.shape[0] # type: int
165165

166166
## The Alpao SDK seems to only support the trigger mode start. It
167167
## still has option called nRepeats that we can't really figure
@@ -183,7 +183,7 @@ def queue_patterns(self, patterns):
183183
status = asdk.SendPattern(self._dm, data_pointer, n_patterns, n_repeats)
184184
self._raise_if_error(status)
185185

186-
def next_pattern(self):
186+
def next_pattern(self) -> None:
187187
if self.trigger_type == TriggerType.SOFTWARE:
188188
super().next_pattern()
189189
else:

microscope/mirror/bmc.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@
2323
import os
2424
import warnings
2525

26+
import numpy
27+
2628
from microscope.devices import DeformableMirror
2729

2830
import microscope._wrappers.BMC as BMC
2931

3032

3133
class BMCDeformableMirror(DeformableMirror):
32-
def __init__(self, serial_number, **kwargs):
34+
def __init__(self, serial_number: str, **kwargs) -> None:
3335
super().__init__(**kwargs)
3436
self._dm = BMC.DM()
3537

@@ -46,14 +48,14 @@ def __init__(self, serial_number, **kwargs):
4648
def n_actuators(self) -> int:
4749
return self._dm.ActCount
4850

49-
def apply_pattern(self, pattern):
51+
def apply_pattern(self, pattern: numpy.ndarray) -> None:
5052
self._validate_patterns(pattern)
5153
data_pointer = pattern.ctypes.data_as(ctypes.POINTER(ctypes.c_double))
5254
status = BMC.SetArray(self._dm, data_pointer, None)
5355
if status:
5456
raise Exception(BMC.ErrorString(status))
5557

56-
def __del__(self):
58+
def __del__(self) -> None:
5759
status = BMC.Close(self._dm)
5860
if status:
5961
warnings.warn(BMC.ErrorString(status), RuntimeWarning)

0 commit comments

Comments
 (0)