pychemstation.utils.injector_types

 1from dataclasses import dataclass
 2from enum import Enum
 3from typing import List, Optional, Union
 4
 5from pychemstation.utils.tray_types import Tray
 6
 7
 8class SourceType(Enum):
 9    DEFAULT = "ActualPosition"
10    SPECIFIC_LOCATION = "ActualPositionPlusLocation"
11    LOCATION = "Location"
12
13
14class Mode(Enum):
15    DEFAULT = "Default"
16    SET = "Set"
17
18
19@dataclass
20class Draw:
21    amount: Optional[float] = None
22    location: Optional[Tray] = None
23    source: Optional[Tray] = None
24
25
26@dataclass
27class DrawDefaultVolume:
28    location: Optional[Tray] = None
29
30
31@dataclass
32class DrawDefaultLocation:
33    amount: Optional[float] = None
34
35
36@dataclass
37class DrawDefault:
38    pass
39
40
41@dataclass
42class Wait:
43    duration: Union[int, float]
44
45
46@dataclass
47class Inject:
48    pass
49
50
51class RemoteCommand(Enum):
52    START = "START"
53    NOT_READY = "NOT_READY"
54    STOP = "STOP"
55    READY = "READY"
56    PREPARE = "PREPARE"
57
58
59@dataclass
60class Remote:
61    command: RemoteCommand
62    duration: int
63
64
65InjectorFunction = Union[
66    Draw, DrawDefault, DrawDefaultVolume, DrawDefaultLocation, Wait, Inject, Remote
67]
68
69
70@dataclass
71class InjectorTable:
72    functions: List[InjectorFunction]
class SourceType(enum.Enum):
 9class SourceType(Enum):
10    DEFAULT = "ActualPosition"
11    SPECIFIC_LOCATION = "ActualPositionPlusLocation"
12    LOCATION = "Location"
DEFAULT = <SourceType.DEFAULT: 'ActualPosition'>
SPECIFIC_LOCATION = <SourceType.SPECIFIC_LOCATION: 'ActualPositionPlusLocation'>
LOCATION = <SourceType.LOCATION: 'Location'>
class Mode(enum.Enum):
15class Mode(Enum):
16    DEFAULT = "Default"
17    SET = "Set"
DEFAULT = <Mode.DEFAULT: 'Default'>
SET = <Mode.SET: 'Set'>
@dataclass
class Draw:
20@dataclass
21class Draw:
22    amount: Optional[float] = None
23    location: Optional[Tray] = None
24    source: Optional[Tray] = None
amount: Optional[float] = None
@dataclass
class DrawDefaultVolume:
27@dataclass
28class DrawDefaultVolume:
29    location: Optional[Tray] = None
@dataclass
class DrawDefaultLocation:
32@dataclass
33class DrawDefaultLocation:
34    amount: Optional[float] = None
DrawDefaultLocation(amount: Optional[float] = None)
amount: Optional[float] = None
@dataclass
class DrawDefault:
37@dataclass
38class DrawDefault:
39    pass
@dataclass
class Wait:
42@dataclass
43class Wait:
44    duration: Union[int, float]
Wait(duration: Union[int, float])
duration: Union[int, float]
@dataclass
class Inject:
47@dataclass
48class Inject:
49    pass
class RemoteCommand(enum.Enum):
52class RemoteCommand(Enum):
53    START = "START"
54    NOT_READY = "NOT_READY"
55    STOP = "STOP"
56    READY = "READY"
57    PREPARE = "PREPARE"
START = <RemoteCommand.START: 'START'>
NOT_READY = <RemoteCommand.NOT_READY: 'NOT_READY'>
STOP = <RemoteCommand.STOP: 'STOP'>
READY = <RemoteCommand.READY: 'READY'>
PREPARE = <RemoteCommand.PREPARE: 'PREPARE'>
@dataclass
class Remote:
60@dataclass
61class Remote:
62    command: RemoteCommand
63    duration: int
Remote( command: RemoteCommand, duration: int)
command: RemoteCommand
duration: int
InjectorFunction = typing.Union[Draw, DrawDefault, DrawDefaultVolume, DrawDefaultLocation, Wait, Inject, Remote]
@dataclass
class InjectorTable:
71@dataclass
72class InjectorTable:
73    functions: List[InjectorFunction]
InjectorTable( functions: List[Union[Draw, DrawDefault, DrawDefaultVolume, DrawDefaultLocation, Wait, Inject, Remote]])