pigeon-tem-comms 2.0.0__tar.gz → 2.1.1__tar.gz
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.
- {pigeon_tem_comms-2.0.0/pigeon_tem_comms.egg-info → pigeon_tem_comms-2.1.1}/PKG-INFO +1 -1
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/camera.py +2 -15
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/tile/__init__.py +32 -27
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/tile/metadata.py +16 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1/pigeon_tem_comms.egg-info}/PKG-INFO +1 -1
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/pyproject.toml +1 -1
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/LICENSE +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/README.md +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/__init__.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/buffer.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/calibration.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/lens_correction.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/montage.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/qc.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/roi.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/scope/__init__.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/scope/image_shift.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/stage/__init__.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/stage/aperture.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/stage/motion.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/stage/rotation.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/state.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/tile/statistics.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/TEM_comms/ui.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/pigeon_tem_comms.egg-info/SOURCES.txt +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/pigeon_tem_comms.egg-info/dependency_links.txt +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/pigeon_tem_comms.egg-info/entry_points.txt +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/pigeon_tem_comms.egg-info/requires.txt +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/pigeon_tem_comms.egg-info/top_level.txt +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/setup.cfg +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/tests/test_buffer.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/tests/test_calibration.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/tests/test_camera.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/tests/test_documentation.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/tests/test_qc.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/tests/test_scope_command.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/tests/test_stage.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/tests/test_tile.py +0 -0
- {pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/tests/test_ui.py +0 -0
|
@@ -1,27 +1,14 @@
|
|
|
1
1
|
from pigeon import BaseMessage
|
|
2
|
-
from .tile.metadata import TileMetadata
|
|
2
|
+
from .tile.metadata import TileMetadata, ProcessingOptions
|
|
3
3
|
from typing import Optional
|
|
4
4
|
from pydantic import Field
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
class Command(TileMetadata):
|
|
7
|
+
class Command(TileMetadata, ProcessingOptions):
|
|
8
8
|
"""
|
|
9
9
|
This message is used to instruct the camera to capture an image.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
-
brightfield: Optional[bool] = Field(
|
|
13
|
-
default=False,
|
|
14
|
-
description="If true, this tile should be used in creating the brightfield image.",
|
|
15
|
-
)
|
|
16
|
-
darkfield: Optional[bool] = Field(
|
|
17
|
-
default=False,
|
|
18
|
-
description="If true, this tile should be used in creating the darkfield image.",
|
|
19
|
-
)
|
|
20
|
-
lens_correction: Optional[bool] = Field(
|
|
21
|
-
default=True,
|
|
22
|
-
description="If true, this tile is part of a lens correction montage.",
|
|
23
|
-
)
|
|
24
|
-
|
|
25
12
|
|
|
26
13
|
class Image(BaseMessage):
|
|
27
14
|
"""
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
from .metadata import TileMetadata
|
|
1
|
+
from .metadata import TileMetadata, ProcessingOptions
|
|
2
2
|
from . import statistics
|
|
3
3
|
from pydantic import BaseModel, Field
|
|
4
|
-
from typing import Literal, List, Tuple
|
|
4
|
+
from typing import Literal, List, Tuple, Optional
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class Preview(TileMetadata):
|
|
@@ -20,7 +20,7 @@ class Mini(TileMetadata):
|
|
|
20
20
|
image: str = Field(description="The downsampled tile as a base 64 encoded string.")
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
class Raw(TileMetadata):
|
|
23
|
+
class Raw(TileMetadata, ProcessingOptions):
|
|
24
24
|
"""
|
|
25
25
|
This message is sent whenever a new tile is stored on the filesystem and is ready for processing.
|
|
26
26
|
"""
|
|
@@ -74,37 +74,42 @@ class Matches(TileMetadata):
|
|
|
74
74
|
class TemplateMatch(BaseModel):
|
|
75
75
|
model_config = {"extra": "forbid"}
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
position: Literal["top", "bottom", "left", "right"] = Field(
|
|
80
|
-
description="The position of matched tile relative to the captured tile."
|
|
77
|
+
offset: Tuple[float, float] = Field(
|
|
78
|
+
description="The offset between the expected and actual template positions."
|
|
81
79
|
)
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
distance: float = Field(description="The distance of the offset.")
|
|
81
|
+
rotation: float = Field(description="The angle of the offset.")
|
|
82
|
+
maxVal: float = Field(
|
|
83
|
+
description="The maximum value of the template match."
|
|
85
84
|
)
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
maxVal: List[float] = Field(
|
|
89
|
-
description="The maximum value from each of the template matches."
|
|
85
|
+
minVal: float = Field(
|
|
86
|
+
description="The minimum value of the template match."
|
|
90
87
|
)
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
expected_offset_in_crop: Tuple[int, int] = Field(description="")
|
|
89
|
+
maxLoc: Tuple[int, int] = Field(
|
|
90
|
+
description="The maximum location of the template match."
|
|
93
91
|
)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
description="The maximum location of each template match."
|
|
92
|
+
matched_pos_img2: Tuple[int, int] = Field(
|
|
93
|
+
description="The template top left corner absolute location."
|
|
97
94
|
)
|
|
98
|
-
|
|
99
|
-
description="
|
|
95
|
+
matched_center_img2: Tuple[int, int] = Field(
|
|
96
|
+
description="The template center absolute location."
|
|
100
97
|
)
|
|
101
|
-
|
|
102
|
-
|
|
98
|
+
good: bool = Field(description="True if the match is good.")
|
|
99
|
+
reject_reason: Optional[str] = Field(
|
|
100
|
+
default="", description="The reason why the match is not good."
|
|
103
101
|
)
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
class TemplateMatchContainer(BaseModel):
|
|
105
|
+
model_config = {"extra": "forbid"}
|
|
106
|
+
|
|
107
|
+
row: int = Field(description="The row of the neighboring tile.")
|
|
108
|
+
column: int = Field(description="The column of the neighboring tile.")
|
|
109
|
+
position: Literal["top", "bottom", "left", "right"] = Field(
|
|
110
|
+
description="The position of matched tile relative to the captured tile."
|
|
107
111
|
)
|
|
112
|
+
matches: List[TemplateMatch] = Field(description="A list of data structures containing the information about each individual match.")
|
|
108
113
|
|
|
109
114
|
|
|
110
115
|
class TemplateMatches(TileMetadata):
|
|
@@ -112,7 +117,7 @@ class TemplateMatches(TileMetadata):
|
|
|
112
117
|
This message contains data reltaing to template matches used for calculating the lens correction transform.
|
|
113
118
|
"""
|
|
114
119
|
|
|
115
|
-
matches: List[
|
|
120
|
+
matches: List[TemplateMatchContainer] = Field(
|
|
116
121
|
description="Information about how the captured tile matches to each of its available neighbors."
|
|
117
122
|
)
|
|
118
123
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from pigeon import BaseMessage
|
|
2
2
|
from pydantic import Field
|
|
3
|
+
from typing import Optional
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
class TileMetadata(BaseMessage):
|
|
@@ -20,3 +21,18 @@ class TileMetadata(BaseMessage):
|
|
|
20
21
|
overlap: int = Field(
|
|
21
22
|
description="The number of pixels of overlap between tiles.", examples=[512]
|
|
22
23
|
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class ProcessingOptions(BaseMessage):
|
|
27
|
+
brightfield: Optional[bool] = Field(
|
|
28
|
+
default=False,
|
|
29
|
+
description="If true, this tile should be used in creating the brightfield image.",
|
|
30
|
+
)
|
|
31
|
+
darkfield: Optional[bool] = Field(
|
|
32
|
+
default=False,
|
|
33
|
+
description="If true, this tile should be used in creating the darkfield image.",
|
|
34
|
+
)
|
|
35
|
+
lens_correction: Optional[bool] = Field(
|
|
36
|
+
default=False,
|
|
37
|
+
description="If true, this tile is part of a lens correction montage.",
|
|
38
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/pigeon_tem_comms.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{pigeon_tem_comms-2.0.0 → pigeon_tem_comms-2.1.1}/pigeon_tem_comms.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|