code-loader 1.0.186__py3-none-any.whl → 1.0.186.dev2__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.
@@ -32,14 +32,12 @@ class LeapImage:
32
32
  Visualizer representing an image for Tensorleap.
33
33
 
34
34
  Attributes:
35
- data (npt.NDArray[np.float32] | npt.NDArray[np.uint8]): The image data, shaped [H, W, 3] or [H, W, 1].
36
- Expected pixel range is [0, 255]. Float values are cast to int (truncated, not scaled), so a
37
- normalized [0, 1] float image renders near-black - scale it to [0, 255] or pass uint8.
35
+ data (npt.NDArray[np.float32] | npt.NDArray[np.uint8]): The image data.
38
36
  type (LeapDataType): The data type, default is LeapDataType.Image.
39
37
  compress: Optional[bool]: Whether to compress the image (.jpg) or not (.png)
40
38
 
41
39
  Example:
42
- image_data = (np.random.rand(100, 100, 3) * 255).astype(np.float32) # [0, 255]
40
+ image_data = np.random.rand(100, 100, 3).astype(np.float32)
43
41
  leap_image = LeapImage(data=image_data)
44
42
  """
45
43
  data: Union[npt.NDArray[np.float32], npt.NDArray[np.uint8]]
@@ -62,12 +60,10 @@ class LeapVideo:
62
60
 
63
61
  Attributes:
64
62
  data (npt.NDArray[np.float32] | npt.NDArray[np.uint8]): The video data, shaped [T, H, W, C], where T is the number of frames.
65
- Note the range differs from still images: float video is expected in [0, 1] (it is scaled by 255),
66
- while uint8 is used as-is in [0, 255]. Float values above 1 saturate to white.
67
63
  type (LeapDataType): The data type, default is LeapDataType.Video.
68
64
 
69
65
  Example:
70
- video_data = np.random.rand(10, 100, 100, 3).astype(np.float32) # [0, 1]
66
+ video_data = np.random.rand(10, 100, 100, 3).astype(np.float32)
71
67
  leap_video = LeapVideo(data=video_data)
72
68
  """
73
69
  data: Union[npt.NDArray[np.float32], npt.NDArray[np.uint8]]
@@ -88,13 +84,11 @@ class LeapImageWithBBox:
88
84
 
89
85
  Attributes:
90
86
  data (npt.NDArray[np.float32] | npt.NDArray[np.uint8]): The image data, shaped [H, W, 3] or [H, W, 1].
91
- Expected pixel range is [0, 255]. Float values are cast to int (truncated, not scaled), so a
92
- normalized [0, 1] float image renders near-black - scale it to [0, 255] or pass uint8.
93
87
  bounding_boxes (List[BoundingBox]): List of Tensorleap bounding boxes objects in relative size to image size.
94
88
  type (LeapDataType): The data type, default is LeapDataType.ImageWithBBox.
95
89
 
96
90
  Example:
97
- image_data = (np.random.rand(100, 100, 3) * 255).astype(np.float32) # [0, 255]
91
+ image_data = np.random.rand(100, 100, 3).astype(np.float32)
98
92
  bbox = BoundingBox(x=0.5, y=0.5, width=0.2, height=0.2, confidence=0.9, label="object")
99
93
  leap_image_with_bbox = LeapImageWithBBox(data=image_data, bounding_boxes=[bbox])
100
94
  """
@@ -237,8 +231,6 @@ class LeapImageMask:
237
231
  Attributes:
238
232
  mask (npt.NDArray[np.uint8]): The mask data, shaped [H, W].
239
233
  image (npt.NDArray[np.float32] | npt.NDArray[np.uint8]): The image data, shaped [H, W, 3] or shaped [H, W, 1].
240
- Any pixel range is accepted: the image is min-max normalized to [0, 255] for display, so unlike the
241
- plain Image visualizer, a normalized [0, 1] float renders fine here.
242
234
  labels (List[str]): Labels associated with the mask regions; e.g., class names for segmented objects. The length of `labels` should match the number of unique values in `mask`.
243
235
  type (LeapDataType): The data type, default is LeapDataType.ImageMask.
244
236
 
@@ -312,14 +304,12 @@ class LeapImageWithHeatmap:
312
304
 
313
305
  Attributes:
314
306
  image (npt.NDArray[np.float32]): The image data, shaped [H, W, C], where C is the number of channels.
315
- Expected pixel range is [0, 255] (float is truncated to int, not scaled), so a normalized [0, 1] float
316
- base image renders near-black - scale it to [0, 255]. The overlaid heatmaps are normalized separately.
317
307
  heatmaps (npt.NDArray[np.float32]): The heatmap data, shaped [N, H, W], where N is the number of heatmaps.
318
308
  labels (List[str]): Labels associated with the heatmaps; e.g., feature names or attention regions. The length of `labels` should match the number of heatmaps, N.
319
309
  type (LeapDataType): The data type, default is LeapDataType.ImageWithHeatmap.
320
310
 
321
311
  Example:
322
- image_data = (np.random.rand(100, 100, 3) * 255).astype(np.float32) # [0, 255]
312
+ image_data = np.random.rand(100, 100, 3).astype(np.float32)
323
313
  heatmaps = np.random.rand(3, 100, 100).astype(np.float32)
324
314
  labels = ["heatmap1", "heatmap2", "heatmap3"]
325
315
  leap_image_with_heatmap = LeapImageWithHeatmap(image=image_data, heatmaps=heatmaps, labels=labels)
@@ -1102,33 +1102,19 @@ def _viz_prefix(viz_name: str, leap_type_name: str) -> str:
1102
1102
  return f"Visualizer '{viz_name}' ({leap_type_name}):"
1103
1103
 
1104
1104
 
1105
- def _warn_nonfinite(arr, viz_name: str, leap_type_name: str, field_name: str = "image data") -> None:
1106
- """Warn when a float array contains NaN/Inf. Applies to every image-like visualizer, including
1107
- ImageMask (whose min-max normalization also can't render non-finite values)."""
1108
- if not isinstance(arr, np.ndarray) or arr.size == 0:
1109
- return
1110
- if np.issubdtype(arr.dtype, np.floating) and not np.all(np.isfinite(arr)):
1111
- store_general_warning(
1112
- key=("viz_nonfinite", viz_name, leap_type_name, field_name),
1113
- message=f"{_viz_prefix(viz_name, leap_type_name)} {field_name} contains NaN or Inf values, "
1114
- f"which will render incorrectly.",
1115
- link_to_docs=_VIZ_DOCS,
1116
- )
1117
-
1118
-
1119
1105
  def _warn_image_value_range(image, viz_name: str, leap_type_name: str, field_name: str = "image data") -> None:
1120
- """Warn when still-image pixel values sit in a range that renders near-black or clipped.
1121
-
1122
- Applies to Image / ImageWithBBox / ImageWithHeatmap, which the engine encodes with cv2
1123
- (saturate_cast float->uint8, no scaling). Float is therefore expected in [0, 255]; a
1124
- normalized [0, 1] float renders near-black. (Video and ImageMask use different conventions.)
1125
- """
1106
+ """Warn when image pixel values sit in a range that will render near-black or clipped."""
1126
1107
  if not isinstance(image, np.ndarray) or image.size == 0:
1127
1108
  return
1128
1109
  prefix = _viz_prefix(viz_name, leap_type_name)
1129
1110
 
1130
1111
  if np.issubdtype(image.dtype, np.floating):
1131
- _warn_nonfinite(image, viz_name, leap_type_name, field_name)
1112
+ if not np.all(np.isfinite(image)):
1113
+ store_general_warning(
1114
+ key=("viz_image_nonfinite", viz_name, leap_type_name, field_name),
1115
+ message=f"{prefix} {field_name} contains NaN or Inf values, which will render incorrectly.",
1116
+ link_to_docs=_VIZ_DOCS,
1117
+ )
1132
1118
  finite = image[np.isfinite(image)]
1133
1119
  if finite.size == 0:
1134
1120
  return
@@ -1161,42 +1147,6 @@ def _warn_image_value_range(image, viz_name: str, leap_type_name: str, field_nam
1161
1147
  )
1162
1148
 
1163
1149
 
1164
- def _warn_video_value_range(video, viz_name: str, leap_type_name: str, field_name: str = "video data") -> None:
1165
- """Warn when video pixel values won't survive the engine's float->uint8 scaling.
1166
-
1167
- Unlike still images, the engine scales float video by 255 (videoencoder.py), so float is
1168
- expected in [0, 1]; values above 1 saturate to white and negatives clip to black. uint8 is
1169
- used as-is in [0, 255].
1170
- """
1171
- if not isinstance(video, np.ndarray) or video.size == 0:
1172
- return
1173
- prefix = _viz_prefix(viz_name, leap_type_name)
1174
-
1175
- if np.issubdtype(video.dtype, np.floating):
1176
- _warn_nonfinite(video, viz_name, leap_type_name, field_name)
1177
- finite = video[np.isfinite(video)]
1178
- if finite.size == 0:
1179
- return
1180
- mn, mx = float(finite.min()), float(finite.max())
1181
- if mn < 0.0 or mx > 1.0:
1182
- store_general_warning(
1183
- key=("viz_video_range", viz_name, leap_type_name, field_name),
1184
- message=(f"{prefix} {field_name} is float with values in [{mn:.3g}, {mx:.3g}], outside the "
1185
- f"expected [0,1] range. Tensorleap scales float video by 255, so values > 1 saturate "
1186
- f"to white and negatives clip to black. Provide float video in [0,1], or uint8 in [0,255]."),
1187
- link_to_docs=_VIZ_DOCS,
1188
- )
1189
- elif np.issubdtype(video.dtype, np.integer):
1190
- mn, mx = int(video.min()), int(video.max())
1191
- if mx <= 1:
1192
- store_general_warning(
1193
- key=("viz_video_int_low", viz_name, leap_type_name, field_name),
1194
- message=(f"{prefix} {field_name} is uint8 but values span only [{mn}, {mx}] - this will appear "
1195
- f"near-black. uint8 video is used as-is in [0,255]; scale to [0,255] before casting."),
1196
- link_to_docs=_VIZ_DOCS,
1197
- )
1198
-
1199
-
1200
1150
  def _warn_bbox_coords(bounding_boxes, viz_name: str, leap_type_name: str) -> None:
1201
1151
  """Warn when bbox coords are not relative [0,1] (i.e. look like absolute pixels)."""
1202
1152
  for bbox in bounding_boxes:
@@ -1297,14 +1247,9 @@ def _emit_visualizer_warnings(result, viz_name: str, visualizer_type: LeapDataTy
1297
1247
  _warn_image_value_range(result.data, viz_name, leap_type_name)
1298
1248
  _warn_bbox_coords(result.bounding_boxes, viz_name, leap_type_name)
1299
1249
  elif visualizer_type == LeapDataType.Video:
1300
- # Engine scales float video by 255 (videoencoder.py), so float is expected in [0,1] here,
1301
- # the opposite of the still-image convention.
1302
- _warn_video_value_range(result.data, viz_name, leap_type_name)
1250
+ _warn_image_value_range(result.data, viz_name, leap_type_name, field_name="video data")
1303
1251
  elif visualizer_type == LeapDataType.ImageMask:
1304
- # Engine min-max normalizes the mask image (MaskEngineVisualizer._rescale_min_max), so any
1305
- # finite value range renders fine - no range warning here. NaN/Inf still break normalization,
1306
- # so keep that check alongside the structural mask checks.
1307
- _warn_nonfinite(result.image, viz_name, leap_type_name)
1252
+ _warn_image_value_range(result.image, viz_name, leap_type_name)
1308
1253
  _warn_image_mask(result, viz_name, leap_type_name)
1309
1254
  elif visualizer_type == LeapDataType.ImageWithHeatmap:
1310
1255
  _warn_image_with_heatmap(result, viz_name, leap_type_name)
code_loader/leaploader.py CHANGED
@@ -446,8 +446,8 @@ class LeapLoader(LeapLoaderBase):
446
446
  return result_payloads
447
447
 
448
448
  def run_simulation(self, sim_name, params=None, n_samples=1, seed=0,
449
- sample_ids=None, extend_preprocess=True):
450
- # type: (str, Optional[Dict[str, Any]], int, int, Optional[List[str]], bool) -> Dict[str, Any]
449
+ sample_ids=None, extend_preprocess=True, allow_partial=False):
450
+ # type: (str, Optional[Dict[str, Any]], int, int, Optional[List[str]], bool, bool) -> Dict[str, Any]
451
451
  # extend_preprocess=True (default): also extend preprocess_result[additional] with the
452
452
  # new synthetic sample_ids (producer-side behavior — synthetic worker needs this for
453
453
  # enumeration / data_length tracking). Pass False from consumer-side populators that
@@ -474,19 +474,26 @@ class LeapLoader(LeapLoaderBase):
474
474
  for sample_id in original_sample_ids:
475
475
  for handler in global_leap_binder.setup_container.inputs:
476
476
  per_encoder[handler.name].append(handler.function(sample_id, sim_preprocess))
477
- encoded = {name: np.stack(arrays) for name, arrays in per_encoder.items()}
477
+ encoded = {
478
+ name: np.stack(arrays) if arrays else np.empty((0,), dtype=np.float32)
479
+ for name, arrays in per_encoder.items()
480
+ }
478
481
  if sample_ids is not None:
479
- if len(sample_ids) != len(original_sample_ids):
480
- raise ValueError(
481
- "sample_ids length ({}) does not match simulation output length ({})".format(
482
- len(sample_ids), len(original_sample_ids)
483
- )
484
- )
485
482
  for sid in sample_ids:
486
483
  if not isinstance(sid, str):
487
484
  raise TypeError(
488
485
  "All sample_ids must be of type str. Got: {}".format(type(sid))
489
486
  )
487
+ if len(sample_ids) != len(original_sample_ids):
488
+ if not allow_partial:
489
+ raise ValueError(
490
+ "sample_ids length ({}) does not match simulation output length ({})".format(
491
+ len(sample_ids), len(original_sample_ids)
492
+ )
493
+ )
494
+ n_bound = min(len(sample_ids), len(original_sample_ids))
495
+ sample_ids = list(sample_ids)[:n_bound]
496
+ original_sample_ids = original_sample_ids[:n_bound]
490
497
  for synth_id, original_local_id in zip(sample_ids, original_sample_ids):
491
498
  self._synthetic_lookup[synth_id] = (sim_preprocess, original_local_id)
492
499
  if extend_preprocess:
@@ -154,8 +154,9 @@ class LeapLoaderBase:
154
154
  pass
155
155
 
156
156
  @abstractmethod
157
- def run_simulation(self, sim_name, params=None, n_samples=1, seed=0, sample_ids=None):
158
- # type: (str, Optional[Dict[str, Any]], int, int, Optional[List[str]]) -> Dict[str, Any]
157
+ def run_simulation(self, sim_name, params=None, n_samples=1, seed=0, sample_ids=None,
158
+ extend_preprocess=True, allow_partial=False):
159
+ # type: (str, Optional[Dict[str, Any]], int, int, Optional[List[str]], bool, bool) -> Dict[str, Any]
159
160
  pass
160
161
 
161
162
  def is_custom_latent_space(self) -> bool:
@@ -21,25 +21,6 @@ import math
21
21
 
22
22
  from code_loader.contract.visualizer_classes import LeapImage, LeapImageWithBBox, LeapGraph, LeapText, \
23
23
  LeapHorizontalBar, LeapImageMask, LeapTextMask, LeapImageWithHeatmap, LeapVideo
24
- from code_loader.utils import rescale_min_max
25
-
26
-
27
- def _to_engine_image(image: np.ndarray) -> np.ndarray:
28
- """Match the engine's still-image encoding (cv2 saturate_cast): round + clip to [0,255],
29
- no scaling, returned as uint8. Float is expected in [0,255]; a normalized [0,1] float
30
- therefore renders near-black, exactly as it would on the platform."""
31
- if np.issubdtype(image.dtype, np.floating):
32
- return np.clip(np.rint(image), 0, 255).astype(np.uint8)
33
- return np.clip(image, 0, 255).astype(np.uint8)
34
-
35
-
36
- def _to_engine_video(video: np.ndarray) -> np.ndarray:
37
- """Match the engine's video encoding (videoencoder.py): float is scaled by 255 then clipped,
38
- uint8 is used as-is. Float is expected in [0,1]."""
39
- if np.issubdtype(video.dtype, np.floating):
40
- return (video * 255).clip(0, 255).astype(np.uint8)
41
- return np.clip(video, 0, 255).astype(np.uint8)
42
-
43
24
 
44
25
  def run_only_on_non_mapping_mode():
45
26
  """
@@ -70,7 +51,7 @@ def plot_image_with_b_box(leap_data: LeapImageWithBBox, title: str) -> None:
70
51
  visualize(leap_image_with_bbox, title)
71
52
  """
72
53
 
73
- image = _to_engine_image(leap_data.data)
54
+ image = leap_data.data
74
55
  bounding_boxes = leap_data.bounding_boxes
75
56
 
76
57
  # Create figure and axes
@@ -126,7 +107,7 @@ def plot_image(leap_data: LeapImage, title: str) -> None:
126
107
  title = "Image"
127
108
  visualize(leap_image, title)
128
109
  """
129
- image_data = _to_engine_image(leap_data.data)
110
+ image_data = leap_data.data
130
111
 
131
112
  # If the image has one channel, convert it to a 3-channel image for display
132
113
  if image_data.shape[2] == 1:
@@ -324,8 +305,7 @@ def plot_image_mask(leap_data: LeapImageMask, title: str) -> None:
324
305
  visualize(leap_image_mask, title)
325
306
  """
326
307
 
327
- # Engine min-max normalizes the mask image to [0,255] (MaskEngineVisualizer._rescale_min_max)
328
- image = rescale_min_max(leap_data.image)
308
+ image = leap_data.image
329
309
  mask = leap_data.mask
330
310
  labels = leap_data.labels
331
311
 
@@ -410,7 +390,7 @@ def plot_text_mask(leap_data: LeapTextMask, title: str) -> None:
410
390
 
411
391
  @run_only_on_non_mapping_mode()
412
392
  def plot_video(leap_data: LeapVideo, title: str) -> None:
413
- video_data = _to_engine_video(leap_data.data)
393
+ video_data = leap_data.data
414
394
  fig, ax = plt.subplots()
415
395
  fig.patch.set_facecolor('black')
416
396
  ax.set_facecolor('black')
@@ -436,7 +416,7 @@ def plot_image_with_heatmap(leap_data: LeapImageWithHeatmap, title: str) -> None
436
416
  title = "Image With Heatmap"
437
417
  visualize(leap_image_with_heatmap, title)
438
418
  """
439
- image = _to_engine_image(leap_data.image)
419
+ image = leap_data.image
440
420
  heatmaps = leap_data.heatmaps
441
421
  labels = leap_data.labels
442
422
 
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 TensorLeap
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,7 +1,8 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.1
2
2
  Name: code-loader
3
- Version: 1.0.186
3
+ Version: 1.0.186.dev2
4
4
  Summary:
5
+ Home-page: https://github.com/tensorleap/code-loader
5
6
  License: MIT
6
7
  Author: dorhar
7
8
  Author-email: doron.harnoy@tensorleap.ai
@@ -19,7 +20,6 @@ Requires-Dist: numpy (>=2.3.2,<3.0.0) ; python_version >= "3.11" and python_vers
19
20
  Requires-Dist: psutil (>=5.9.5,<6.0.0)
20
21
  Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
21
22
  Requires-Dist: requests (>=2.32.3,<3.0.0)
22
- Project-URL: Homepage, https://github.com/tensorleap/code-loader
23
23
  Project-URL: Repository, https://github.com/tensorleap/code-loader
24
24
  Description-Content-Type: text/markdown
25
25
 
@@ -1,3 +1,4 @@
1
+ LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
1
2
  code_loader/__init__.py,sha256=outxRQ0M-zMfV0QGVJmAed5qWfRmyD0TV6-goEGAzBw,406
2
3
  code_loader/contract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
4
  code_loader/contract/datasetclasses.py,sha256=RYZcnX7vLMYhyQtCbX2PscVFNAYULxgAA9U4DRRfLqA,10456
@@ -6,7 +7,7 @@ code_loader/contract/exceptions.py,sha256=jWqu5i7t-0IG0jGRsKF4DjJdrsdpJjIYpUkN1F
6
7
  code_loader/contract/mapping.py,sha256=sWJhpng-IkOzQnWQdMT5w2ZZ3X1Z_OOzSwCLXIS7oxE,1446
7
8
  code_loader/contract/responsedataclasses.py,sha256=5VFgGjRubMW8ItMPils3rkBNejunCGLaa192AIi-xko,4925
8
9
  code_loader/contract/sim_config.py,sha256=le8KMALZiP0WU4UcuKnTOSWBW2rNjpnWYfII502NqDM,3493
9
- code_loader/contract/visualizer_classes.py,sha256=cWXkBBYk_YP7-VdNwLJvSPQfvBAvoNWircgIuZwHQVc,16519
10
+ code_loader/contract/visualizer_classes.py,sha256=Wz9eItmoRaKEHa3p0aW0Ypxx4_xUmaZyLBznnTuxwi0,15425
10
11
  code_loader/default_losses.py,sha256=NoOQym1106bDN5dcIk56Elr7ZG5quUHArqfP5-Nyxyo,1139
11
12
  code_loader/default_metrics.py,sha256=2XSlyNw_XLDGSJDoz5W_Evi5wbL0dhwq24pPr15vSPc,5025
12
13
  code_loader/experiment_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -21,17 +22,17 @@ code_loader/experiment_api/utils.py,sha256=XZHtxge12TS4H4-8PjV3sKuhp8Ud6ojAiIzTZ
21
22
  code_loader/experiment_api/workingspace_config_utils.py,sha256=DLzXQCg4dgTV_YgaSbeTVzq-2ja_SQw4zi7LXwKL9cY,990
22
23
  code_loader/inner_leap_binder/__init__.py,sha256=koOlJyMNYzGbEsoIbXathSmQ-L38N_pEXH_HvL7beXU,99
23
24
  code_loader/inner_leap_binder/leapbinder.py,sha256=XLYYcV50qjMvoC1S6WW0tLBch_0g5gl1UyHiVSWYbvg,40491
24
- code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=qfKa--0kG_K_Eb8wRd5tIXEJ6rbKva3360gU8EU9eKo,118375
25
- code_loader/leaploader.py,sha256=K9Q5kiCZ_A2GkS5qOEantAMvWGaz3bmO1X8buXDSpgg,44682
26
- code_loader/leaploaderbase.py,sha256=l36qDA00GhZEG5NLKpEtAXgWJA-UQQIhNFGxywK7mUA,6530
25
+ code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=8a7aJ1o4f60VnlErNjX_4RbUXpLWt91pgGcIDLBvOWc,115314
26
+ code_loader/leaploader.py,sha256=kbzsJapHrQE8JEnNUvH_OAybX0RdMc8WjJuA9aIoVVM,45046
27
+ code_loader/leaploaderbase.py,sha256=rXLdPKPUl-2qYKCoLuT-Tv9MUJl1PNh5vYRuLXHz99Y,6610
27
28
  code_loader/mixpanel_tracker.py,sha256=rNwRmFifNbdUoqLQvvhhgpKczWpWiEmd8MfyJe27sxw,9131
28
29
  code_loader/plot_functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- code_loader/plot_functions/plot_functions.py,sha256=2DC-zlVaN13P4VNx5d8csgs80C6SisaeP1-Kq2LW7iM,16075
30
+ code_loader/plot_functions/plot_functions.py,sha256=6Q7VWGxetL2W0EK2QeCdObVATvBuHs3YBA09H4uoIk0,14996
30
31
  code_loader/plot_functions/visualize.py,sha256=gsBAYYkwMh7jIpJeDMPS8G4CW-pxwx6LznoQIvi4vpo,657
31
32
  code_loader/utils.py,sha256=YecipkdTA-VcE9F0RQcY9cFnY8P3AksPnHM2Db7xUSk,3972
32
33
  code_loader/visualizers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
34
  code_loader/visualizers/default_visualizers.py,sha256=onRnLE_TXfgLN4o52hQIOOhUcFexGlqJ3xSpQDVLuZM,2604
34
- code_loader-1.0.186.dist-info/LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
35
- code_loader-1.0.186.dist-info/METADATA,sha256=ywHfeK2VPwGtYN6pnhYE243fUPHMaiSOAjYzzA7gNaw,1102
36
- code_loader-1.0.186.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
37
- code_loader-1.0.186.dist-info/RECORD,,
35
+ code_loader-1.0.186.dev2.dist-info/LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
36
+ code_loader-1.0.186.dev2.dist-info/METADATA,sha256=eKHDUl5VyL5X2L9f_Zdg6krcfqc8TP-MTLEbNif_f6w,1095
37
+ code_loader-1.0.186.dev2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
38
+ code_loader-1.0.186.dev2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: poetry-core 1.9.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
File without changes