pigeon-tem-comms 0.1.1__py3-none-any.whl → 0.3.0__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.
TEM_comms/__init__.py CHANGED
@@ -3,6 +3,7 @@ from . import camera
3
3
  from . import scope
4
4
  from . import stage
5
5
  from . import tile
6
+ from . import ui
6
7
 
7
8
  import importlib.metadata
8
9
 
@@ -31,7 +32,10 @@ topics = {
31
32
  "tile.statistics.histogram": tile.statistics.Histogram,
32
33
  "tile.statistics.min_max_mean": tile.statistics.MinMaxMean,
33
34
  "tile.transform": tile.Transform,
35
+ "ui.edit": ui.Edit,
36
+ "ui.run": ui.Run,
37
+ "ui.setup": ui.Setup,
34
38
  }
35
39
 
36
40
 
37
- msgs = (topics, __version__)
41
+ msgs = (topics, __version__)
TEM_comms/camera.py CHANGED
@@ -1,23 +1,30 @@
1
1
  from pigeon import BaseMessage
2
+ from typing import Optional
3
+
2
4
 
3
5
  class Command(BaseMessage):
4
6
  tile_id: str
5
7
 
8
+
6
9
  class Image(BaseMessage):
7
10
  tile_id: str
8
11
  path: str
9
12
 
13
+
10
14
  class Settings(BaseMessage):
11
15
  exposure: float | None = None
16
+ gain: Optional[float] = None
12
17
  width: int | None = None
13
18
  height: int | None = None
14
19
 
20
+
15
21
  class Status(BaseMessage):
16
22
  exposure: float
23
+ gain: float
17
24
  width: int
18
25
  height: int
19
26
  temp: float
20
27
  target_temp: float
21
28
  device_name: str
22
29
  device_model_id: int
23
- device_sn: str
30
+ device_sn: str
TEM_comms/scope.py CHANGED
@@ -2,6 +2,7 @@ from pigeon import BaseMessage
2
2
  from typing import Literal
3
3
  from pydantic import model_validator
4
4
 
5
+
5
6
  class Command(BaseMessage):
6
7
  focus: int | None = None
7
8
  mag_mode: Literal["LM", "MAG1", "MAG2"] | None = None
@@ -18,4 +19,4 @@ class Status(BaseMessage):
18
19
  aperture: str | None
19
20
  mag_mode: str
20
21
  mag: int
21
- tank_voltage: int
22
+ tank_voltage: int
@@ -1,3 +1,3 @@
1
1
  from . import aperture
2
2
  from . import motion
3
- from . import rotation
3
+ from . import rotation
@@ -1,10 +1,12 @@
1
1
  from pigeon import BaseMessage
2
2
 
3
+
3
4
  class Command(BaseMessage):
4
5
  aperture_id: int | None = None
5
6
  calibrate: bool = False
6
7
 
8
+
7
9
  class Status(BaseMessage):
8
10
  current_aperture: int
9
11
  calibrated: bool
10
- error: str = ""
12
+ error: str = ""
TEM_comms/stage/motion.py CHANGED
@@ -1,12 +1,14 @@
1
1
  from pigeon import BaseMessage
2
2
 
3
+
3
4
  class Command(BaseMessage):
4
5
  x: int | None = None
5
6
  y: int | None = None
6
7
  calibrate: bool = False
7
8
 
9
+
8
10
  class Status(BaseMessage):
9
11
  x: int
10
12
  y: int
11
13
  in_motion: bool
12
- error: str = ""
14
+ error: str = ""
@@ -1,12 +1,14 @@
1
1
  from pigeon import BaseMessage
2
2
 
3
+
3
4
  class Command(BaseMessage):
4
5
  angle_x: float | None = None
5
6
  angle_y: float | None = None
6
7
  calibrate: bool = False
7
8
 
9
+
8
10
  class Status(BaseMessage):
9
11
  angle_x: float
10
12
  angle_y: float
11
13
  in_motion: bool
12
- error: str = ""
14
+ error: str = ""
@@ -1,15 +1,18 @@
1
1
  from pigeon import BaseMessage
2
2
 
3
+
3
4
  class Focus(BaseMessage):
4
5
  tile_id: str
5
6
  focus: float
6
7
 
8
+
7
9
  class Histogram(BaseMessage):
8
10
  tile_id: str
9
11
  path: str
10
12
 
13
+
11
14
  class MinMaxMean(BaseMessage):
12
15
  tile_id: str
13
16
  min: int
14
17
  max: int
15
- mean: int
18
+ mean: int
TEM_comms/ui.py ADDED
@@ -0,0 +1,42 @@
1
+ from pigeon import BaseMessage
2
+ from typing import Optional
3
+ from pydantic import model_validator
4
+
5
+
6
+ class Edit(BaseMessage):
7
+ roi_id: str
8
+ roi_pos_x: int
9
+ roi_pox_y: int
10
+ roi_width: int
11
+ roi_height: int
12
+ roi_angle: float
13
+
14
+
15
+ class Run(BaseMessage):
16
+ session_id: Optional[str] = None
17
+ grid_first: Optional[int] = None
18
+ grid_last: Optional[int] = None
19
+ montage: bool = False
20
+ abort_now: bool = False
21
+ abort_at_end: bool = False
22
+ resume: bool = False
23
+
24
+ @model_validator(mode="after")
25
+ def check_grid(self):
26
+ assert self.montage != (self.grid_first is None)
27
+ assert self.montage != (self.grid_last is None)
28
+ return self
29
+
30
+ @model_validator(mode="after")
31
+ def check_session(self):
32
+ assert self.montage != (self.session_id is None)
33
+ return self
34
+
35
+
36
+ class Setup(BaseMessage):
37
+ conch_owner: Optional[str] = None
38
+ auto_focus: bool = False
39
+ auto_exposure: bool = False
40
+ lens_correction: bool = False
41
+ acquire_brightfield: bool = False
42
+ acquire_darkfield: bool = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pigeon-tem-comms
3
- Version: 0.1.1
3
+ Version: 0.3.0
4
4
  Summary: Pigeon messages for the next generation TEM imaging system.
5
5
  Author-email: Cameron Devine <cameron.devine@alleninstitute.org>
6
6
  License: BSD 3 Clause
@@ -0,0 +1,17 @@
1
+ TEM_comms/__init__.py,sha256=0FngFKym-Yl33wkqr68k6YglJCbVs1fV63uHFTmzJwk,1229
2
+ TEM_comms/buffer.py,sha256=Jr6fUIbUPreQSSGKWR7jkA1McyZZv3lVE8uQSER8VL4,123
3
+ TEM_comms/camera.py,sha256=L9ebaZra-M3g571PUzQCAuC92Auw4ox3gRceJ2uKRhs,522
4
+ TEM_comms/scope.py,sha256=CxpmTTBm6YMevPr3LeK9A7e8v5lGU6taG4e647asvak,503
5
+ TEM_comms/ui.py,sha256=8a3GxCjw7E52WcAgDZLlQ7S4L92w5GuhJK2V_tEdSSA,1055
6
+ TEM_comms/stage/__init__.py,sha256=UVtYKzMBI01FUADS24xSItNIjhqdZtlDeJdqsDJNVIc,67
7
+ TEM_comms/stage/aperture.py,sha256=LEIlUUbkUMAI-OYQnO4tqJTblCNPitwjcxSzZLFaliM,220
8
+ TEM_comms/stage/motion.py,sha256=hhTXTX-ED8o76oDtjluGJOzLcWfDmG0LEAt44Pfk4gI,230
9
+ TEM_comms/stage/rotation.py,sha256=J7tAIP2nskjInhZmdIbqwrvxTFXihEynVOAyxbDDfjU,262
10
+ TEM_comms/tile/__init__.py,sha256=kK9thh69UavYZ3toRzc_BLwjR3_Yif1tTdRAGLncrzY,458
11
+ TEM_comms/tile/statistics.py,sha256=8l1a8Qq0F2Jt1VV5ecoG5HSfZRa7njds1wo64n8CS3g,246
12
+ pigeon_tem_comms-0.3.0.dist-info/LICENSE,sha256=tZfQIUX7uNGacTb751ZWInVenJl6OwYQihcGbYrKSts,1463
13
+ pigeon_tem_comms-0.3.0.dist-info/METADATA,sha256=RuJGaL1qYm_x9TGFukRuSkuahXgwvgi2nwfi946f8ag,1553
14
+ pigeon_tem_comms-0.3.0.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
15
+ pigeon_tem_comms-0.3.0.dist-info/entry_points.txt,sha256=KFi0hPNwGY3gEmJF_8_smglVpfbU24lcCy0t_TJPgtg,36
16
+ pigeon_tem_comms-0.3.0.dist-info/top_level.txt,sha256=3_1RcQ7xvS2dJEYnPIigo9snoKcSXSNJzPqunY0qydI,10
17
+ pigeon_tem_comms-0.3.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (70.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,16 +0,0 @@
1
- TEM_comms/__init__.py,sha256=Ermd4vQJ4DYQeknsWSfbh4Bxa7fJGlRDCqL28cIoXRs,1139
2
- TEM_comms/buffer.py,sha256=Jr6fUIbUPreQSSGKWR7jkA1McyZZv3lVE8uQSER8VL4,123
3
- TEM_comms/camera.py,sha256=uBp9N00k4x_eYC_W8zUrTjFrmCpb6Tu2GQOG0WIGKwc,440
4
- TEM_comms/scope.py,sha256=cj8S0BqR7RozFNh2TsiT-DnuRKCIdMKol5PdIxG65JU,501
5
- TEM_comms/stage/__init__.py,sha256=xeB18s-MGkc83BsfWkUc0W3YwxoHVK-QfLAPfRelcFQ,66
6
- TEM_comms/stage/aperture.py,sha256=hnd9HB6jYywHRQ1fB7suKEUvXZDT2VkE5cFJ3zKctPg,217
7
- TEM_comms/stage/motion.py,sha256=NQPufhxRKB3ySEyPksDFi6srBlBGKxaqF5k2YAAfa9s,227
8
- TEM_comms/stage/rotation.py,sha256=3khQqRCBDXNDQ5uArzhQ4kL0JP58wVMEbW3rG8hrZ_s,259
9
- TEM_comms/tile/__init__.py,sha256=kK9thh69UavYZ3toRzc_BLwjR3_Yif1tTdRAGLncrzY,458
10
- TEM_comms/tile/statistics.py,sha256=sQHeXtO3UB9k6lKtDEeO3e142aaAKelp-A8A_Bf5XJ8,242
11
- pigeon_tem_comms-0.1.1.dist-info/LICENSE,sha256=tZfQIUX7uNGacTb751ZWInVenJl6OwYQihcGbYrKSts,1463
12
- pigeon_tem_comms-0.1.1.dist-info/METADATA,sha256=oEfpKGp64ngQAs_cITXtf9Pw9xc8ZsVQtXb7ETmQWh0,1553
13
- pigeon_tem_comms-0.1.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
14
- pigeon_tem_comms-0.1.1.dist-info/entry_points.txt,sha256=KFi0hPNwGY3gEmJF_8_smglVpfbU24lcCy0t_TJPgtg,36
15
- pigeon_tem_comms-0.1.1.dist-info/top_level.txt,sha256=3_1RcQ7xvS2dJEYnPIigo9snoKcSXSNJzPqunY0qydI,10
16
- pigeon_tem_comms-0.1.1.dist-info/RECORD,,