code-loader 1.0.38.dev6__tar.gz → 1.0.40a0__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.
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/PKG-INFO +1 -1
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/contract/datasetclasses.py +13 -4
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/contract/enums.py +0 -1
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/contract/visualizer_classes.py +1 -20
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/inner_leap_binder/leapbinder.py +8 -7
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/leaploader.py +11 -2
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/visualizers/default_visualizers.py +2 -12
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/pyproject.toml +1 -1
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/LICENSE +0 -0
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/README.md +0 -0
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/__init__.py +0 -0
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/contract/__init__.py +0 -0
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/contract/exceptions.py +0 -0
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/contract/responsedataclasses.py +0 -0
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/inner_leap_binder/__init__.py +0 -0
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/utils.py +0 -0
- {code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/visualizers/__init__.py +0 -0
@@ -6,7 +6,7 @@ import numpy.typing as npt
|
|
6
6
|
|
7
7
|
from code_loader.contract.enums import DataStateType, DataStateEnum, LeapDataType, ConfusionMatrixValue, MetricDirection
|
8
8
|
from code_loader.contract.visualizer_classes import LeapImage, LeapText, LeapGraph, LeapHorizontalBar, \
|
9
|
-
LeapTextMask, LeapImageMask, LeapImageWithBBox
|
9
|
+
LeapTextMask, LeapImageMask, LeapImageWithBBox
|
10
10
|
|
11
11
|
custom_latent_space_attribute = "custom_latent_space"
|
12
12
|
|
@@ -17,8 +17,16 @@ class PreprocessResponse:
|
|
17
17
|
data: Any
|
18
18
|
|
19
19
|
|
20
|
+
@dataclass
|
21
|
+
class ElementInstance:
|
22
|
+
name: str
|
23
|
+
mask: npt.NDArray[np.float32]
|
24
|
+
|
25
|
+
|
20
26
|
SectionCallableInterface = Callable[[int, PreprocessResponse], npt.NDArray[np.float32]]
|
21
27
|
|
28
|
+
InstanceCallableInterface = Callable[[int, PreprocessResponse], List[ElementInstance]]
|
29
|
+
|
22
30
|
MetadataSectionCallableInterface = Union[
|
23
31
|
Callable[[int, PreprocessResponse], int],
|
24
32
|
Callable[[int, PreprocessResponse], Dict[str, int]],
|
@@ -50,12 +58,11 @@ VisualizerCallableInterface = Union[
|
|
50
58
|
Callable[..., LeapHorizontalBar],
|
51
59
|
Callable[..., LeapImageMask],
|
52
60
|
Callable[..., LeapTextMask],
|
53
|
-
Callable[..., LeapImageWithBBox]
|
54
|
-
Callable[..., LeapImageWithHeatmap]
|
61
|
+
Callable[..., LeapImageWithBBox]
|
55
62
|
]
|
56
63
|
|
57
64
|
VisualizerCallableReturnType = Union[LeapImage, LeapText, LeapGraph, LeapHorizontalBar,
|
58
|
-
LeapImageMask, LeapTextMask, LeapImageWithBBox
|
65
|
+
LeapImageMask, LeapTextMask, LeapImageWithBBox]
|
59
66
|
|
60
67
|
CustomCallableInterface = Callable[..., Any]
|
61
68
|
|
@@ -90,6 +97,7 @@ class MetricHandler:
|
|
90
97
|
arg_names: List[str]
|
91
98
|
direction: Optional[MetricDirection] = MetricDirection.Downward
|
92
99
|
|
100
|
+
|
93
101
|
@dataclass
|
94
102
|
class RawInputsForHeatmap:
|
95
103
|
raw_input_by_vizualizer_arg_name: Dict[str, npt.NDArray[np.float32]]
|
@@ -113,6 +121,7 @@ class DatasetBaseHandler:
|
|
113
121
|
@dataclass
|
114
122
|
class InputHandler(DatasetBaseHandler):
|
115
123
|
shape: Optional[List[int]] = None
|
124
|
+
instance_function: Optional[InstanceCallableInterface] = None
|
116
125
|
|
117
126
|
|
118
127
|
@dataclass
|
@@ -135,24 +135,6 @@ class LeapTextMask:
|
|
135
135
|
validate_type(type(label), str)
|
136
136
|
|
137
137
|
|
138
|
-
@dataclass
|
139
|
-
class LeapImageWithHeatmap:
|
140
|
-
image: npt.NDArray[np.float32]
|
141
|
-
heatmaps: npt.NDArray[np.float32]
|
142
|
-
labels: List[str]
|
143
|
-
type: LeapDataType = LeapDataType.ImageWithHeatmap
|
144
|
-
|
145
|
-
def __post_init__(self) -> None:
|
146
|
-
validate_type(self.type, LeapDataType.ImageWithHeatmap)
|
147
|
-
validate_type(type(self.heatmaps), np.ndarray)
|
148
|
-
validate_type(self.heatmaps.dtype, np.float32)
|
149
|
-
validate_type(type(self.image), np.ndarray)
|
150
|
-
validate_type(self.image.dtype, np.float32)
|
151
|
-
validate_type(type(self.labels), list)
|
152
|
-
for label in self.labels:
|
153
|
-
validate_type(type(label), str)
|
154
|
-
|
155
|
-
|
156
138
|
map_leap_data_type_to_visualizer_class = {
|
157
139
|
LeapDataType.Image.value: LeapImage,
|
158
140
|
LeapDataType.Graph.value: LeapGraph,
|
@@ -160,6 +142,5 @@ map_leap_data_type_to_visualizer_class = {
|
|
160
142
|
LeapDataType.HorizontalBar.value: LeapHorizontalBar,
|
161
143
|
LeapDataType.ImageMask.value: LeapImageMask,
|
162
144
|
LeapDataType.TextMask.value: LeapTextMask,
|
163
|
-
LeapDataType.ImageWithBBox.value: LeapImageWithBBox
|
164
|
-
LeapDataType.ImageWithHeatmap.value: LeapImageWithHeatmap
|
145
|
+
LeapDataType.ImageWithBBox.value: LeapImageWithBBox
|
165
146
|
}
|
{code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/inner_leap_binder/leapbinder.py
RENAMED
@@ -9,7 +9,8 @@ from code_loader.contract.datasetclasses import SectionCallableInterface, InputH
|
|
9
9
|
PreprocessHandler, VisualizerCallableInterface, CustomLossHandler, CustomCallableInterface, PredictionTypeHandler, \
|
10
10
|
MetadataSectionCallableInterface, UnlabeledDataPreprocessHandler, CustomLayerHandler, MetricHandler, \
|
11
11
|
CustomCallableInterfaceMultiArgs, ConfusionMatrixCallableInterfaceMultiArgs, VisualizerCallableReturnType, \
|
12
|
-
CustomMultipleReturnCallableInterfaceMultiArgs, DatasetBaseHandler, custom_latent_space_attribute,
|
12
|
+
CustomMultipleReturnCallableInterfaceMultiArgs, DatasetBaseHandler, custom_latent_space_attribute, \
|
13
|
+
RawInputsForHeatmap, InstanceCallableInterface
|
13
14
|
from code_loader.contract.enums import LeapDataType, DataStateEnum, DataStateType, MetricDirection
|
14
15
|
from code_loader.contract.responsedataclasses import DatasetTestResultPayload
|
15
16
|
from code_loader.contract.visualizer_classes import map_leap_data_type_to_visualizer_class
|
@@ -17,7 +18,7 @@ from code_loader.utils import to_numpy_return_wrapper, get_shape
|
|
17
18
|
from code_loader.visualizers.default_visualizers import DefaultVisualizer, \
|
18
19
|
default_graph_visualizer, \
|
19
20
|
default_image_visualizer, default_horizontal_bar_visualizer, default_word_visualizer, \
|
20
|
-
default_image_mask_visualizer, default_text_mask_visualizer, default_raw_data_visualizer
|
21
|
+
default_image_mask_visualizer, default_text_mask_visualizer, default_raw_data_visualizer
|
21
22
|
|
22
23
|
|
23
24
|
class LeapBinder:
|
@@ -31,8 +32,6 @@ class LeapBinder:
|
|
31
32
|
def _extend_with_default_visualizers(self) -> None:
|
32
33
|
self.set_visualizer(function=default_image_visualizer, name=DefaultVisualizer.Image.value,
|
33
34
|
visualizer_type=LeapDataType.Image)
|
34
|
-
self.set_visualizer(function=default_image_heatmap_visualizer, name=DefaultVisualizer.ImageHeatmap.value,
|
35
|
-
visualizer_type=LeapDataType.ImageWithHeatmap)
|
36
35
|
self.set_visualizer(function=default_graph_visualizer, name=DefaultVisualizer.Graph.value,
|
37
36
|
visualizer_type=LeapDataType.Graph)
|
38
37
|
self.set_visualizer(function=default_raw_data_visualizer, name=DefaultVisualizer.RawData.value,
|
@@ -97,9 +96,10 @@ class LeapBinder:
|
|
97
96
|
def set_unlabeled_data_preprocess(self, function: Callable[[], PreprocessResponse]) -> None:
|
98
97
|
self.setup_container.unlabeled_data_preprocess = UnlabeledDataPreprocessHandler(function)
|
99
98
|
|
100
|
-
def set_input(self, function: SectionCallableInterface, name: str
|
99
|
+
def set_input(self, function: SectionCallableInterface, name: str,
|
100
|
+
instance_function: Optional[InstanceCallableInterface] = None) -> None:
|
101
101
|
function = to_numpy_return_wrapper(function)
|
102
|
-
self.setup_container.inputs.append(InputHandler(name, function))
|
102
|
+
self.setup_container.inputs.append(InputHandler(name, function, instance_function=instance_function))
|
103
103
|
|
104
104
|
self._encoder_names.append(name)
|
105
105
|
|
@@ -134,7 +134,8 @@ class LeapBinder:
|
|
134
134
|
custom_layer.kernel_index = kernel_index
|
135
135
|
|
136
136
|
if use_custom_latent_space and not hasattr(custom_layer, custom_latent_space_attribute):
|
137
|
-
raise Exception(
|
137
|
+
raise Exception(
|
138
|
+
f"{custom_latent_space_attribute} function has not been set for custom layer: {custom_layer.__name__}")
|
138
139
|
|
139
140
|
init_args = inspect.getfullargspec(custom_layer.__init__)[0][1:]
|
140
141
|
call_args = inspect.getfullargspec(custom_layer.call)[0][1:]
|
@@ -5,14 +5,14 @@ import sys
|
|
5
5
|
from contextlib import redirect_stdout
|
6
6
|
from functools import lru_cache
|
7
7
|
from pathlib import Path
|
8
|
-
from typing import Dict, List, Iterable, Union, Any
|
8
|
+
from typing import Dict, List, Iterable, Union, Any, Optional
|
9
9
|
|
10
10
|
import numpy as np
|
11
11
|
import numpy.typing as npt
|
12
12
|
|
13
13
|
from code_loader.contract.datasetclasses import DatasetSample, DatasetBaseHandler, GroundTruthHandler, \
|
14
14
|
PreprocessResponse, VisualizerHandler, VisualizerCallableReturnType, CustomLossHandler, \
|
15
|
-
PredictionTypeHandler, MetadataHandler, CustomLayerHandler, MetricHandler
|
15
|
+
PredictionTypeHandler, MetadataHandler, CustomLayerHandler, MetricHandler, ElementInstance
|
16
16
|
from code_loader.contract.enums import DataStateEnum, TestingSectionEnum, DataStateType, DatasetMetadataType
|
17
17
|
from code_loader.contract.exceptions import DatasetScriptException
|
18
18
|
from code_loader.contract.responsedataclasses import DatasetIntegParseResult, DatasetTestResultPayload, \
|
@@ -298,6 +298,15 @@ class LeapLoader:
|
|
298
298
|
def _get_inputs(self, state: DataStateEnum, idx: int) -> Dict[str, npt.NDArray[np.float32]]:
|
299
299
|
return self._get_dataset_handlers(global_leap_binder.setup_container.inputs, state, idx)
|
300
300
|
|
301
|
+
def get_instance_elements(self, state: DataStateEnum, idx: int, input_name: str) -> Optional[List[ElementInstance]]:
|
302
|
+
preprocess_result = self._preprocess_result()
|
303
|
+
preprocess_state = preprocess_result[state]
|
304
|
+
for input in global_leap_binder.setup_container.inputs:
|
305
|
+
if input.name == input_name:
|
306
|
+
if input.instance_function is not None:
|
307
|
+
return input.instance_function(idx, preprocess_state)
|
308
|
+
|
309
|
+
|
301
310
|
def _get_gt(self, state: DataStateEnum, idx: int) -> Dict[str, npt.NDArray[np.float32]]:
|
302
311
|
return self._get_dataset_handlers(global_leap_binder.setup_container.ground_truths, state, idx)
|
303
312
|
|
{code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/visualizers/default_visualizers.py
RENAMED
@@ -4,7 +4,7 @@ import numpy as np
|
|
4
4
|
import numpy.typing as npt
|
5
5
|
|
6
6
|
from code_loader.contract.visualizer_classes import LeapImage, LeapGraph, LeapHorizontalBar, LeapText, \
|
7
|
-
LeapImageMask, LeapTextMask
|
7
|
+
LeapImageMask, LeapTextMask
|
8
8
|
from code_loader.utils import rescale_min_max
|
9
9
|
|
10
10
|
|
@@ -16,23 +16,13 @@ class DefaultVisualizer(Enum):
|
|
16
16
|
ImageMask = 'ImageMask'
|
17
17
|
TextMask = 'TextMask'
|
18
18
|
RawData = 'RawData'
|
19
|
-
|
20
|
-
|
19
|
+
|
21
20
|
|
22
21
|
def default_image_visualizer(data: npt.NDArray[np.float32]) -> LeapImage:
|
23
22
|
rescaled_data = rescale_min_max(data)
|
24
23
|
return LeapImage(rescaled_data)
|
25
24
|
|
26
25
|
|
27
|
-
def default_image_heatmap_visualizer(image: npt.NDArray[np.float32], heatmaps: npt.NDArray[np.float32], labels: list) -> LeapImageWithHeatmap:
|
28
|
-
rescaled_image = rescale_min_max(image)
|
29
|
-
rescaled_heatmaps = []
|
30
|
-
for heatmap in heatmaps:
|
31
|
-
rescaled_heatmap = rescale_min_max(heatmap)
|
32
|
-
rescaled_heatmaps = np.append(rescaled_heatmaps, rescaled_heatmap)
|
33
|
-
return LeapImageWithHeatmap(rescaled_image, rescaled_heatmaps, labels)
|
34
|
-
|
35
|
-
|
36
26
|
def default_graph_visualizer(data: npt.NDArray[np.float32]) -> LeapGraph:
|
37
27
|
return LeapGraph(data)
|
38
28
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{code_loader-1.0.38.dev6 → code_loader-1.0.40a0}/code_loader/contract/responsedataclasses.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|