pigeon-tem-comms 1.3.1__py3-none-any.whl → 1.4.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
@@ -27,7 +27,7 @@ topics = {
27
27
  "tile.statistics.focus": tile.statistics.Focus,
28
28
  "tile.statistics.histogram": tile.statistics.Histogram,
29
29
  "tile.statistics.min_max_mean": tile.statistics.MinMaxMean,
30
- "tile.transform": tile.Transform,
30
+ "tile.matches": tile.Matches,
31
31
  "ui.edit": ui.Edit,
32
32
  "ui.run": ui.Run,
33
33
  "ui.setup": ui.Setup,
@@ -36,6 +36,7 @@ topics = {
36
36
  "roi.load": roi.LoadROI,
37
37
  "roi.create": roi.CreateROI,
38
38
  "roi.current": roi.ROI,
39
+ "roi.status": roi.ROIStatus,
39
40
  "montage.minimaps": montage.Minimaps,
40
41
  "calibration.resolution": calibration.Resolution,
41
42
  "calibration.centroid": calibration.Centroid,
TEM_comms/roi.py CHANGED
@@ -31,15 +31,34 @@ class LoadROI(BaseMessage):
31
31
  )
32
32
 
33
33
 
34
- class CreateROI(BaseMessage):
35
- center: Vertex
36
- width: float
37
- height: float
38
- rotation_angle: float = 0.0
39
- montage_id: str
40
- specimen_id: Optional[str] = None
41
- grid_id: Optional[str] = None
42
- section_id: Optional[str] = None
43
- queue_position: Optional[int] = Field(
44
- None, description="Position in queue, None means set as current"
34
+ class CreateROI(ROI):
35
+ center: Optional[Vertex] = None
36
+ tilt_angles: Optional[List[float]] = Field(
37
+ default=[0.0],
38
+ description="List of tilt angles in degrees for tomography series",
39
+ )
40
+ aperture_centroid_pixel: Optional[Vertex] = Field(
41
+ None, description="Aperture centroid in pixel coordinates"
42
+ )
43
+ aperture_centroid_physical: Optional[Vertex] = Field(
44
+ None, description="Aperture centroid in physical coordinates (nm)"
45
+ )
46
+ overview_nm_per_pixel: Optional[float] = Field(
47
+ None, description="Overview image scale in nm per pixel"
48
+ )
49
+
50
+
51
+ class ROIStatus(BaseMessage):
52
+ type: str = Field(
53
+ description="Event type: roi_added, roi_advanced, queue_cleared, queue_empty"
54
+ )
55
+ timestamp: int = Field(description="Timestamp")
56
+ roi_count: int = Field(description="Total number of active ROIs (queue + current)")
57
+ has_active_rois: bool = Field(description="Whether there are any ROIs available")
58
+ source: Optional[str] = Field(
59
+ None, description="Source of last ROI submission: UI or external"
60
+ )
61
+ montage_id: Optional[str] = Field(None, description="Current montage ID")
62
+ queue_info: Optional[dict] = Field(
63
+ None, description="Queue statistics: total, completed, remaining"
45
64
  )
@@ -1,5 +1,7 @@
1
1
  from .metadata import TileMetadata
2
2
  from . import statistics
3
+ from pydantic import BaseModel
4
+ from typing import Literal, List
3
5
 
4
6
 
5
7
  class Preview(TileMetadata):
@@ -14,10 +16,26 @@ class Raw(TileMetadata):
14
16
  path: str
15
17
 
16
18
 
17
- class Transform(TileMetadata):
19
+ class Match(BaseModel):
20
+ model_config = {"extra": "forbid"}
21
+ row: int
22
+ column: int
23
+ dX: float
24
+ dY: float
25
+ dXsd: float
26
+ dYsd: float
27
+ distance: float
18
28
  rotation: float
19
- x: float
20
- y: float
29
+ match_quality: float
30
+ position: Literal["top", "bottom", "left", "right"]
31
+ pX: List[int]
32
+ pY: List[int]
33
+ qX: List[int]
34
+ qY: List[int]
35
+
36
+
37
+ class Matches(TileMetadata):
38
+ matches: List[Match]
21
39
 
22
40
 
23
41
  class Processed(TileMetadata):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pigeon-tem-comms
3
- Version: 1.3.1
3
+ Version: 1.4.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
@@ -1,22 +1,22 @@
1
- TEM_comms/__init__.py,sha256=ptgtd0FnSXyDZz26kX-4ivwOPQ8hXePNtepilqQl7B0,1475
1
+ TEM_comms/__init__.py,sha256=sXY1A8yg0ihaT0Y7kSUXiNp35ibQxVJ4EjIgNoCQKOc,1504
2
2
  TEM_comms/buffer.py,sha256=Jr6fUIbUPreQSSGKWR7jkA1McyZZv3lVE8uQSER8VL4,123
3
3
  TEM_comms/calibration.py,sha256=aDxJ0VepU9A6dZR-SK1yEoTFLwzF6bz5eingSMJLcvw,327
4
4
  TEM_comms/camera.py,sha256=5tOFqm7zOPVoX6ZFr5KIMxb0jAjWpE8yo8bctvOpbcU,698
5
5
  TEM_comms/montage.py,sha256=QQ5IJcIfPb4y5QdZ-lXYNV0WLTcZUrLmOwuS0t84_2M,666
6
6
  TEM_comms/qc.py,sha256=sujy2i0wimMvrHDPEXKdaiO7xxvRcHiy83mVpATLyqA,141
7
- TEM_comms/roi.py,sha256=37fKMT-KNJfWOwWvFAPTFHuBzkV1h6RS42kQsU00teQ,1145
7
+ TEM_comms/roi.py,sha256=bKPBDNi1i1jxROtiw5bGh4Zn3-E0-LW_DWazYdg4PLs,2065
8
8
  TEM_comms/scope.py,sha256=7fTqhgfaNCGYsd66vCx_zTb5dW442s8cWi3RXmLNyG8,837
9
9
  TEM_comms/ui.py,sha256=pyjF9vex2qVzmKCoHdVTtDMEKRDOuhO-dWTBa2qb47Y,1484
10
10
  TEM_comms/stage/__init__.py,sha256=UVtYKzMBI01FUADS24xSItNIjhqdZtlDeJdqsDJNVIc,67
11
11
  TEM_comms/stage/aperture.py,sha256=QBO9MiVgzWJM_oAdy-9-z2qtX-pUqLyYSuMXkIDwMX4,351
12
12
  TEM_comms/stage/motion.py,sha256=EiMDAviHZo8DYjzeFcYFkbHFs90kLDsZKbrcla0y7eU,452
13
13
  TEM_comms/stage/rotation.py,sha256=tUcf6IpQ2ooRDYb51Zb4pi7pQUrBuLPiLKSg8Ebb2DY,332
14
- TEM_comms/tile/__init__.py,sha256=ID3b4VAHqVXAkxTYOZ7H2oTSrnVdUYt4Xb6gpQ0I3qo,316
14
+ TEM_comms/tile/__init__.py,sha256=nLWbdyLdI1qkIYmnVDKt4PAu29e2VQuXqcWwWXczdgE,704
15
15
  TEM_comms/tile/metadata.py,sha256=pUxmi_C02e5nwTm51rIULkKaRz6ij5mlXylzAcDU-9c,149
16
16
  TEM_comms/tile/statistics.py,sha256=C1pMEOjwVrhjGR6R7efKJE-pR_tw9ZAGrprLIHcXc_A,245
17
- pigeon_tem_comms-1.3.1.dist-info/licenses/LICENSE,sha256=tZfQIUX7uNGacTb751ZWInVenJl6OwYQihcGbYrKSts,1463
18
- pigeon_tem_comms-1.3.1.dist-info/METADATA,sha256=wcyVTqR7XLZV4GFelE26zHKH17ShbHOnX1p5L23pJBg,1575
19
- pigeon_tem_comms-1.3.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
20
- pigeon_tem_comms-1.3.1.dist-info/entry_points.txt,sha256=X2WfBCDgfH9XVVqiI4rLu7BLyMNuLW6WWckqXxfbrgk,38
21
- pigeon_tem_comms-1.3.1.dist-info/top_level.txt,sha256=3_1RcQ7xvS2dJEYnPIigo9snoKcSXSNJzPqunY0qydI,10
22
- pigeon_tem_comms-1.3.1.dist-info/RECORD,,
17
+ pigeon_tem_comms-1.4.0.dist-info/licenses/LICENSE,sha256=tZfQIUX7uNGacTb751ZWInVenJl6OwYQihcGbYrKSts,1463
18
+ pigeon_tem_comms-1.4.0.dist-info/METADATA,sha256=DUNzN0l80uhFA_eNsc3YU85an1-A4wceqvbgXAepJ24,1575
19
+ pigeon_tem_comms-1.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
20
+ pigeon_tem_comms-1.4.0.dist-info/entry_points.txt,sha256=X2WfBCDgfH9XVVqiI4rLu7BLyMNuLW6WWckqXxfbrgk,38
21
+ pigeon_tem_comms-1.4.0.dist-info/top_level.txt,sha256=3_1RcQ7xvS2dJEYnPIigo9snoKcSXSNJzPqunY0qydI,10
22
+ pigeon_tem_comms-1.4.0.dist-info/RECORD,,