2828import functools
2929import itertools
3030import logging
31+ import queue
32+ import threading
3133import time
34+ import typing
35+
3236from ast import literal_eval
33- from collections import OrderedDict
37+ from collections import OrderedDict , namedtuple
3438from threading import Thread
35- import threading
36- import Pyro4
37- import numpy
38- import queue
39-
4039from enum import Enum , EnumMeta
4140
4241import numpy
42+ import Pyro4
4343
44- from collections import namedtuple
4544# A tuple that defines a region of interest.
4645ROI = namedtuple ('ROI' , ['left' , 'top' , 'width' , 'height' ])
4746# A tuple containing parameters for horizontal and vertical binning.
@@ -948,7 +947,7 @@ class DeformableMirror(Device):
948947 __metaclass__ = abc .ABCMeta
949948
950949 @abc .abstractmethod
951- def __init__ (self , ** kwargs ):
950+ def __init__ (self , ** kwargs ) -> None :
952951 """Constructor.
953952
954953 Subclasses must define the following properties during
@@ -962,14 +961,14 @@ def __init__(self, **kwargs):
962961 """
963962 super (DeformableMirror , self ).__init__ (** kwargs )
964963
965- self ._patterns = None
966- self ._pattern_idx = None
964+ self ._patterns = None # type: typing.Optional[numpy.ndarray]
965+ self ._pattern_idx = - 1 # type: int
967966
968967 @property
969- def n_actuators (self ):
968+ def n_actuators (self ) -> int :
970969 return self ._n_actuators
971970
972- def _validate_patterns (self , patterns ) :
971+ def _validate_patterns (self , patterns : numpy . ndarray ) -> None :
973972 """Validate the shape of a series of patterns.
974973
975974 Only validates the shape of the patterns, not if the values
@@ -987,12 +986,12 @@ def _validate_patterns(self, patterns):
987986 % (patterns .shape [- 1 ], self ._n_actuators )))
988987
989988 @abc .abstractmethod
990- def apply_pattern (self , pattern ) :
989+ def apply_pattern (self , pattern : numpy . ndarray ) -> None :
991990 """Apply this pattern.
992991 """
993992 pass
994993
995- def queue_patterns (self , patterns ) :
994+ def queue_patterns (self , patterns : numpy . ndarray ) -> None :
996995 """Send values to the mirror.
997996
998997 Parameters
@@ -1009,7 +1008,7 @@ def queue_patterns(self, patterns):
10091008 self ._patterns = patterns
10101009 self ._pattern_idx = - 1 # none is applied yet
10111010
1012- def next_pattern (self ):
1011+ def next_pattern (self ) -> None :
10131012 """Apply the next pattern in the queue.
10141013
10151014 A convenience fallback is provided.
@@ -1019,10 +1018,10 @@ def next_pattern(self):
10191018 self ._pattern_idx += 1
10201019 self .apply_pattern (self ._patterns [self ._pattern_idx ,:])
10211020
1022- def initialize (self ):
1021+ def initialize (self ) -> None :
10231022 pass
10241023
1025- def _on_shutdown (self ):
1024+ def _on_shutdown (self ) -> None :
10261025 pass
10271026
10281027
0 commit comments