code-loader 1.0.94.dev11__py3-none-any.whl → 1.0.153.dev3__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.

Potentially problematic release.


This version of code-loader might be problematic. Click here for more details.

@@ -0,0 +1,444 @@
1
+ # mypy: ignore-errors
2
+
3
+
4
+ import os
5
+
6
+ from code_loader.inner_leap_binder.leapbinder import mapping_runtime_mode_env_var_mame
7
+
8
+ if not os.environ.get(mapping_runtime_mode_env_var_mame):
9
+ try:
10
+ import matplotlib.pyplot as plt # type: ignore
11
+ except ImportError:
12
+ raise ImportError(
13
+ "Matplotlib is not installed. Please install it using 'pip install matplotlib' to visualize Leap data."
14
+ )
15
+
16
+
17
+ import numpy as np
18
+ from code_loader.contract.enums import LeapDataType
19
+ from textwrap import wrap
20
+ import math
21
+
22
+ from code_loader.contract.visualizer_classes import LeapImage, LeapImageWithBBox, LeapGraph, LeapText, \
23
+ LeapHorizontalBar, LeapImageMask, LeapTextMask, LeapImageWithHeatmap
24
+
25
+ def run_only_on_non_mapping_mode():
26
+ """
27
+ Decorator to ensure that the function is only run when not in mapping mode.
28
+ """
29
+ def decorator(func):
30
+ def wrapper(*args, **kwargs):
31
+ if os.environ.get(mapping_runtime_mode_env_var_mame):
32
+ return
33
+ return func(*args, **kwargs)
34
+ return wrapper
35
+ return decorator
36
+
37
+
38
+ @run_only_on_non_mapping_mode()
39
+ def plot_image_with_b_box(leap_data: LeapImageWithBBox, title: str) -> None:
40
+ """
41
+ Plot an image with overlaid bounding boxes.
42
+
43
+ Returns:
44
+ None
45
+
46
+ Example:
47
+ image_data = np.random.rand(100, 100, 3).astype(np.float32)
48
+ bbox = BoundingBox(x=0.5, y=0.5, width=0.2, height=0.2, confidence=0.9, label="object")
49
+ leap_image_with_bbox = LeapImageWithBBox(data=image_data, bounding_boxes=[bbox])
50
+ title = "Image With bbox"
51
+ visualize(leap_image_with_bbox, title)
52
+ """
53
+
54
+ image = leap_data.data
55
+ bounding_boxes = leap_data.bounding_boxes
56
+
57
+ # Create figure and axes
58
+ fig, ax = plt.subplots(1)
59
+ fig.patch.set_facecolor('black')
60
+ ax.set_facecolor('black')
61
+
62
+ # Display the image
63
+ ax.imshow(image)
64
+ ax.set_title(title, color='white')
65
+
66
+ # Draw bounding boxes on the image
67
+ for bbox in bounding_boxes:
68
+ x, y, width, height = bbox.x, bbox.y, bbox.width, bbox.height
69
+ confidence, label = bbox.confidence, bbox.label
70
+
71
+ # Convert relative coordinates to absolute coordinates
72
+ abs_x = x * image.shape[1]
73
+ abs_y = y * image.shape[0]
74
+ abs_width = width * image.shape[1]
75
+ abs_height = height * image.shape[0]
76
+
77
+ # Create a rectangle patch
78
+ rect = plt.Rectangle(
79
+ (abs_x - abs_width / 2, abs_y - abs_height / 2),
80
+ abs_width, abs_height,
81
+ linewidth=3, edgecolor='r', facecolor='none'
82
+ )
83
+
84
+ # Add the rectangle to the axes
85
+ ax.add_patch(rect)
86
+
87
+ # Display label and confidence
88
+ ax.text(abs_x - abs_width / 2, abs_y - abs_height / 2 - 5,
89
+ f"{label} {confidence:.2f}", color='r', fontsize=8,
90
+ bbox=dict(facecolor='white', alpha=0.7, edgecolor='none', boxstyle='round,pad=0.3'))
91
+
92
+ # Show the image with bounding boxes
93
+ plt.show()
94
+
95
+
96
+ @run_only_on_non_mapping_mode()
97
+ def plot_image(leap_data: LeapImage, title: str) -> None:
98
+ """
99
+ Display the image contained in the LeapImage object.
100
+
101
+ Returns:
102
+ None
103
+
104
+ Example:
105
+ image_data = np.random.rand(100, 100, 3).astype(np.float32)
106
+ leap_image = LeapImage(data=image_data)
107
+ title = "Image"
108
+ visualize(leap_image, title)
109
+ """
110
+ image_data = leap_data.data
111
+
112
+ # If the image has one channel, convert it to a 3-channel image for display
113
+ if image_data.shape[2] == 1:
114
+ image_data = np.repeat(image_data, 3, axis=2)
115
+
116
+ fig, ax = plt.subplots()
117
+ fig.patch.set_facecolor('black')
118
+ ax.set_facecolor('black')
119
+
120
+ ax.imshow(image_data)
121
+
122
+ plt.axis('off')
123
+ plt.title(title, color='white')
124
+ plt.show()
125
+
126
+
127
+ @run_only_on_non_mapping_mode()
128
+ def plot_graph(leap_data: LeapGraph, title: str) -> None:
129
+ """
130
+ Display the line chart contained in the LeapGraph object.
131
+
132
+ Returns:
133
+ None
134
+
135
+ Example:
136
+ graph_data = np.random.rand(100, 3).astype(np.float32)
137
+ leap_graph = LeapGraph(data=graph_data)
138
+ title = "Graph"
139
+ visualize(leap_graph, title)
140
+ """
141
+ graph_data = leap_data.data
142
+ num_variables = graph_data.shape[1]
143
+
144
+ fig, ax = plt.subplots(figsize=(10, 6))
145
+
146
+ # Set the background color to black
147
+ fig.patch.set_facecolor('black')
148
+ ax.set_facecolor('black')
149
+
150
+ for i in range(num_variables):
151
+ plt.plot(graph_data[:, i], label=f'Variable {i + 1}')
152
+
153
+ ax.set_xlabel('Data Points', color='white')
154
+ ax.set_ylabel('Values', color='white')
155
+ ax.set_title(title, color='white')
156
+ ax.legend()
157
+ ax.grid(True, color='white')
158
+
159
+ # Change the color of the tick labels to white
160
+ ax.tick_params(colors='white')
161
+
162
+ plt.show()
163
+
164
+
165
+ @run_only_on_non_mapping_mode()
166
+ def plot_text_with_heatmap(leap_data: LeapText, title: str) -> None:
167
+ """
168
+ Display the text contained in the LeapText object with a heatmap overlay.
169
+
170
+ Args:
171
+ leap_data (LeapData): The LeapText object containing text tokens and an optional heatmap.
172
+ title (str): The title of the visualization.
173
+
174
+ Returns:
175
+ None
176
+
177
+ Example:
178
+ text_data = ['I', 'ate', 'a', 'banana', '', '', '']
179
+ heatmap = [0.1, 0.3, 0.2, 0.9, 0.0, 0.0, 0.0]
180
+ leap_text = LeapText(data=text_data, heatmap=heatmap) # Create LeapText object
181
+ title = "Text with Heatmap"
182
+ visualize(leap_text, title)
183
+ """
184
+ text_data = leap_data.data
185
+ heatmap = leap_data.heatmap
186
+
187
+ text_data = [s for s in text_data if s != "[PAD]"]
188
+
189
+ fig, ax = plt.subplots(figsize=(12, 5))
190
+ fig.patch.set_facecolor('black')
191
+ ax.set_facecolor('black')
192
+ ax.axis('off') # Hide axes
193
+
194
+ font_size = 20
195
+
196
+ if heatmap is not None:
197
+ heatmap = heatmap[:len(text_data)]
198
+ if len(heatmap) != len(text_data):
199
+ raise ValueError(
200
+ f"Heatmap length ({len(heatmap)}) must match the number of tokens in `data` ({len(text_data)}).")
201
+
202
+ max_tokens_per_row = 10
203
+ num_rows = math.ceil(len(text_data) / max_tokens_per_row)
204
+
205
+ fig.set_size_inches(12, num_rows * 1.2)
206
+ for idx, (token, value) in enumerate(zip(text_data, heatmap)):
207
+ if token:
208
+ row = idx // max_tokens_per_row
209
+ col = idx % max_tokens_per_row
210
+
211
+ x_pos = col / max_tokens_per_row + 0.03
212
+ y_pos = 1 - (row + 0.5) / num_rows
213
+ color = plt.cm.jet(value)
214
+ ax.text(
215
+ x_pos,
216
+ y_pos,
217
+ token,
218
+ fontsize=font_size,
219
+ color=color,
220
+ ha="left",
221
+ va="center"
222
+ )
223
+ else:
224
+ display_text = ' '.join([token for token in text_data if token])
225
+ wrapped_text = "\n".join(wrap(display_text, width=80))
226
+ font_color = 'white'
227
+ ax.text(0.5, 0.5, wrapped_text, color=font_color, fontsize=font_size, ha='center', va='center')
228
+
229
+ ax.set_title(title, color='white', fontsize=16)
230
+
231
+ plt.tight_layout()
232
+ plt.show()
233
+
234
+ @run_only_on_non_mapping_mode()
235
+ def plot_hbar(leap_data: LeapHorizontalBar, title: str) -> None:
236
+ """
237
+ Display the horizontal bar chart contained in the LeapHorizontalBar object.
238
+
239
+ Returns:
240
+ None
241
+
242
+ Example:
243
+ body_data = np.random.rand(5).astype(np.float32)
244
+ gt_data = np.random.rand(5).astype(np.float32)
245
+ labels = ['Class A', 'Class B', 'Class C', 'Class D', 'Class E']
246
+ leap_horizontal_bar = LeapHorizontalBar(body=body_data, gt=gt_data, labels=labels)
247
+ title = "Horizontal Bar"
248
+ visualize(leap_horizontal_bar, title)
249
+ """
250
+ body_data = leap_data.body
251
+ labels = leap_data.labels
252
+
253
+ # Check if 'gt' attribute exists and is not None
254
+ gt_data = getattr(leap_data, 'gt', None)
255
+
256
+ fig, ax = plt.subplots()
257
+
258
+ fig.patch.set_facecolor('black')
259
+ ax.set_facecolor('black')
260
+
261
+ # Adjust positions for side-by-side bars
262
+ y_positions = range(len(labels))
263
+ bar_width = 0.4
264
+
265
+ # Plot horizontal bar chart
266
+ if gt_data is not None:
267
+ ax.barh([y - bar_width / 2 for y in y_positions], body_data, color='green', height=bar_width, label='Prediction')
268
+ ax.barh([y + bar_width / 2 for y in y_positions], gt_data, color='orange', height=bar_width, label='GT')
269
+ else:
270
+ ax.barh(y_positions, body_data, color='green', label='Body Data')
271
+
272
+ # Set the y-ticks to align with the center of the bars
273
+ ax.set_yticks(y_positions)
274
+ ax.set_yticklabels(labels, color='white')
275
+
276
+ # Set the color of the labels and title to white
277
+ ax.set_xlabel('Scores', color='white')
278
+ ax.set_title(title, color='white')
279
+
280
+ # Set the color of the ticks to white
281
+ ax.tick_params(axis='x', colors='white')
282
+ ax.tick_params(axis='y', colors='white')
283
+
284
+ # Add legend if gt is present
285
+ if gt_data is not None:
286
+ ax.legend(loc='best', facecolor='black', edgecolor='white', labelcolor='white')
287
+
288
+ plt.show()
289
+
290
+ @run_only_on_non_mapping_mode()
291
+ def plot_image_mask(leap_data: LeapImageMask, title: str) -> None:
292
+ """
293
+ Plots an image with overlaid masks given a LeapImageMask visualizer object.
294
+
295
+ Returns:
296
+ None
297
+
298
+
299
+ Example:
300
+ image_data = np.random.rand(100, 100, 3).astype(np.float32)
301
+ mask_data = np.random.randint(0, 2, (100, 100)).astype(np.uint8)
302
+ labels = ["background", "object"]
303
+ leap_image_mask = LeapImageMask(image=image_data, mask=mask_data, labels=labels)
304
+ title = "Image Mask"
305
+ visualize(leap_image_mask, title)
306
+ """
307
+
308
+ image = leap_data.image
309
+ mask = leap_data.mask
310
+ labels = leap_data.labels
311
+
312
+ # Create a color map for each label
313
+ colors = plt.cm.jet(np.linspace(0, 1, len(labels)))
314
+ if image.dtype == np.uint8:
315
+ colors = colors * 255
316
+
317
+ # Make a copy of the image to draw on
318
+ overlayed_image = image.copy()
319
+
320
+ # Iterate through the unique values in the mask (excluding 0)
321
+ for i, label in enumerate(labels):
322
+ # Extract binary mask for the current instance
323
+ instance_mask = (mask == (i + 1))
324
+
325
+ # fill the instance mask with a translucent color
326
+ overlayed_image[instance_mask] = (
327
+ overlayed_image[instance_mask] * (1 - 0.5) + np.array(colors[i][:image.shape[-1]], dtype=image.dtype) * 0.5)
328
+
329
+ # Display the result using matplotlib
330
+ fig, ax = plt.subplots(1)
331
+ fig.patch.set_facecolor('black') # Set the figure background to black
332
+ ax.set_facecolor('black') # Set the axis background to black
333
+
334
+ ax.imshow(overlayed_image)
335
+ ax.set_title(title, color='white')
336
+ plt.axis('off') # Hide the axis
337
+ plt.show()
338
+
339
+ @run_only_on_non_mapping_mode()
340
+ def plot_text_mask(leap_data: LeapTextMask, title: str) -> None:
341
+ """
342
+ Plots text with overlaid masks given a LeapTextMask visualizer object.
343
+
344
+ Returns:
345
+ None
346
+
347
+ Example:
348
+ text_data = ['I', 'ate', 'a', 'banana', '', '', '']
349
+ mask_data = np.array([0, 0, 0, 1, 0, 0, 0]).astype(np.uint8)
350
+ labels = ["object"]
351
+ leap_text_mask = LeapTextMask(text=text_data, mask=mask_data, labels=labels)
352
+ title = "Text Mask"
353
+ visualize(leap_text_mask, title)
354
+ """
355
+
356
+ text_data = leap_data.text
357
+ mask_data = leap_data.mask
358
+ labels = leap_data.labels
359
+
360
+ # Create a color map for each label
361
+ colors = plt.cm.jet(np.linspace(0, 1, len(labels)))
362
+
363
+ # Create a figure and axis
364
+ fig, ax = plt.subplots()
365
+
366
+ # Set background to black
367
+ fig.patch.set_facecolor('black')
368
+ ax.set_facecolor('black')
369
+ ax.set_title(title, color='white')
370
+ ax.axis('off')
371
+
372
+ # Set initial position
373
+ x_pos, y_pos = 0.01, 0.5 # Adjusted initial position for better visibility
374
+
375
+ # Display the text with colors
376
+ for token, mask_value in zip(text_data, mask_data):
377
+ if mask_value > 0:
378
+ color = colors[mask_value % len(colors)]
379
+ bbox = dict(facecolor=color, edgecolor='none',
380
+ boxstyle='round,pad=0.3') # Background color for masked tokens
381
+ else:
382
+ bbox = None
383
+
384
+ ax.text(x_pos, y_pos, token, fontsize=12, color='white', ha='left', va='center', bbox=bbox)
385
+
386
+ # Update the x position for the next token
387
+ x_pos += len(token) * 0.03 + 0.02 # Adjust the spacing between tokens
388
+
389
+ plt.show()
390
+
391
+ @run_only_on_non_mapping_mode()
392
+ def plot_image_with_heatmap(leap_data: LeapImageWithHeatmap, title: str) -> None:
393
+ """
394
+ Display the image with overlaid heatmaps contained in the LeapImageWithHeatmap object.
395
+
396
+ Returns:
397
+ None
398
+
399
+ Example:
400
+ image_data = np.random.rand(100, 100, 3).astype(np.float32)
401
+ heatmaps = np.random.rand(3, 100, 100).astype(np.float32)
402
+ labels = ["heatmap1", "heatmap2", "heatmap3"]
403
+ leap_image_with_heatmap = LeapImageWithHeatmap(image=image_data, heatmaps=heatmaps, labels=labels)
404
+ title = "Image With Heatmap"
405
+ visualize(leap_image_with_heatmap, title)
406
+ """
407
+ image = leap_data.image
408
+ heatmaps = leap_data.heatmaps
409
+ labels = leap_data.labels
410
+
411
+ # Plot the base image
412
+ fig, ax = plt.subplots()
413
+ fig.patch.set_facecolor('black') # Set the figure background to black
414
+ ax.set_facecolor('black') # Set the axis background to black
415
+ ax.imshow(image, cmap='gray')
416
+
417
+ # Overlay each heatmap with some transparency
418
+ for i in range(len(labels)):
419
+ heatmap = heatmaps[i]
420
+ ax.imshow(heatmap, cmap='jet', alpha=0.5) # Adjust alpha for transparency
421
+ ax.set_title(f'Heatmap: {labels[i]}', color='white')
422
+
423
+ # Display a colorbar for the heatmap
424
+ cbar = plt.colorbar(ax.imshow(heatmap, cmap='jet', alpha=0.5))
425
+ cbar.set_label(labels[i], color='white')
426
+ cbar.ax.yaxis.set_tick_params(color='white') # Set color for the colorbar ticks
427
+ plt.setp(plt.getp(cbar.ax.axes, 'yticklabels'), color='white') # Set color for the colorbar labels
428
+
429
+ plt.axis('off')
430
+ plt.title(title, color='white')
431
+ plt.show()
432
+
433
+
434
+
435
+ plot_switch = {
436
+ LeapDataType.Image: plot_image,
437
+ LeapDataType.Text: plot_text_with_heatmap,
438
+ LeapDataType.Graph: plot_graph,
439
+ LeapDataType.HorizontalBar: plot_hbar,
440
+ LeapDataType.ImageMask: plot_image_mask,
441
+ LeapDataType.TextMask: plot_text_mask,
442
+ LeapDataType.ImageWithHeatmap: plot_image_with_heatmap,
443
+ LeapDataType.ImageWithBBox: plot_image_with_b_box,
444
+ }
@@ -0,0 +1,22 @@
1
+ # mypy: ignore-errors
2
+
3
+ import sys
4
+
5
+ from code_loader.contract.datasetclasses import LeapData
6
+
7
+ from typing import Optional
8
+
9
+ from code_loader.plot_functions.plot_functions import plot_switch, run_only_on_non_mapping_mode
10
+
11
+
12
+ @run_only_on_non_mapping_mode()
13
+ def visualize(leap_data: LeapData, title: Optional[str] = None) -> None:
14
+ vis_function = plot_switch.get(leap_data.type)
15
+ if vis_function is None:
16
+ print(f"Error: leap data type is not supported, leap data type: {leap_data.type}")
17
+ sys.exit(1)
18
+
19
+ if not title:
20
+ title = f"Leap {leap_data.type.name} Visualization"
21
+ vis_function(leap_data, title) # type: ignore[operator]
22
+
code_loader/utils.py CHANGED
@@ -18,12 +18,12 @@ def to_numpy_return_wrapper(encoder_function: SectionCallableInterface) -> Secti
18
18
 
19
19
  return numpy_encoder_function
20
20
 
21
- def to_numpy_return_masks_wrapper(encoder_function: InstanceCallableInterface) -> Callable[
22
- [Union[int, str], PreprocessResponse], List[ElementInstance]]:
23
- def numpy_encoder_function(idx: Union[int, str], samples: PreprocessResponse) -> List[ElementInstance]:
24
- result = encoder_function(idx, samples)
25
- for res in result:
26
- res.mask = np.array(res.mask)
21
+ def to_numpy_return_masks_wrapper(encoder_function: InstanceCallableInterface) -> InstanceCallableInterface:
22
+ def numpy_encoder_function(idx: Union[int, str], samples: PreprocessResponse, element_idx: int) -> Union[ElementInstance, None]:
23
+ result = encoder_function(idx, samples, element_idx)
24
+ if result is None:
25
+ return None
26
+ result.mask = np.array(result.mask)
27
27
  return result
28
28
  return numpy_encoder_function
29
29
 
@@ -69,6 +69,9 @@ def default_image_mask_visualizer(mask: npt.NDArray[np.float32], image: npt.NDAr
69
69
 
70
70
 
71
71
  def default_text_mask_visualizer(mask: npt.NDArray[np.float32], text_data: npt.NDArray[np.float32]) -> LeapTextMask:
72
+ mask = mask[0]
73
+ text_data = text_data[0]
74
+
72
75
  words = default_word_visualizer(text_data).data
73
76
  n_different_labels = mask.shape[-1]
74
77
  labels = [str(i) for i in range(n_different_labels)]
@@ -1,19 +1,22 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: code-loader
3
- Version: 1.0.94.dev11
3
+ Version: 1.0.153.dev3
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
7
7
  Author: dorhar
8
8
  Author-email: doron.harnoy@tensorleap.ai
9
- Requires-Python: >=3.8,<3.12
9
+ Requires-Python: >=3.8,<3.13
10
10
  Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.8
13
13
  Classifier: Programming Language :: Python :: 3.9
14
14
  Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
- Requires-Dist: numpy (>=1.22.3,<2.0.0)
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Requires-Dist: mixpanel (>=4.10.0,<5.0.0)
18
+ Requires-Dist: numpy (>=1.22.3,<2.0.0) ; python_version >= "3.8" and python_version < "3.11"
19
+ Requires-Dist: numpy (>=2.3.2,<3.0.0) ; python_version >= "3.11" and python_version < "3.13"
17
20
  Requires-Dist: psutil (>=5.9.5,<6.0.0)
18
21
  Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
19
22
  Requires-Dist: requests (>=2.32.3,<3.0.0)
@@ -1,10 +1,10 @@
1
1
  LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
2
- code_loader/__init__.py,sha256=6MMWr0ObOU7hkqQKgOqp4Zp3I28L7joGC9iCbQYtAJg,241
2
+ code_loader/__init__.py,sha256=outxRQ0M-zMfV0QGVJmAed5qWfRmyD0TV6-goEGAzBw,406
3
3
  code_loader/contract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- code_loader/contract/datasetclasses.py,sha256=af_AcMYL6KZZ_yfsxSEWFmlkjSPE-Yn1gm1GO0RvnYg,8902
4
+ code_loader/contract/datasetclasses.py,sha256=aDlpOA9U8boY2BRXMwLHkRRiCSL9CyH8OwyrmHrwX-c,9801
5
5
  code_loader/contract/enums.py,sha256=GEFkvUMXnCNt-GOoz7NJ9ecQZ2PPDettJNOsxsiM0wk,1622
6
6
  code_loader/contract/exceptions.py,sha256=jWqu5i7t-0IG0jGRsKF4DjJdrsdpJjIYpUkN1F4RiyQ,51
7
- code_loader/contract/mapping.py,sha256=e11h_sprwOyE32PcqgRq9JvyahQrPzwqgkhmbQLKLQY,1165
7
+ code_loader/contract/mapping.py,sha256=sWJhpng-IkOzQnWQdMT5w2ZZ3X1Z_OOzSwCLXIS7oxE,1446
8
8
  code_loader/contract/responsedataclasses.py,sha256=6-5DJkYBdXb3UB1eNidTTPPBIYxMjEoMdYDkp9VhH8o,4223
9
9
  code_loader/contract/visualizer_classes.py,sha256=Wz9eItmoRaKEHa3p0aW0Ypxx4_xUmaZyLBznnTuxwi0,15425
10
10
  code_loader/default_losses.py,sha256=NoOQym1106bDN5dcIk56Elr7ZG5quUHArqfP5-Nyxyo,1139
@@ -20,14 +20,18 @@ code_loader/experiment_api/types.py,sha256=MY8xFARHwdVA7p4dxyhD60ShmttgTvb4qdp1o
20
20
  code_loader/experiment_api/utils.py,sha256=XZHtxge12TS4H4-8PjV3sKuhp8Ud6ojAiIzTZJEqBqc,3304
21
21
  code_loader/experiment_api/workingspace_config_utils.py,sha256=DLzXQCg4dgTV_YgaSbeTVzq-2ja_SQw4zi7LXwKL9cY,990
22
22
  code_loader/inner_leap_binder/__init__.py,sha256=koOlJyMNYzGbEsoIbXathSmQ-L38N_pEXH_HvL7beXU,99
23
- code_loader/inner_leap_binder/leapbinder.py,sha256=wmCOj_YKbRXqLL1k5Tw_FrcZgfmgnVQcjs2ok6wdlww,32362
24
- code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=Asjvwncj3ObyhFc4MsG6bKgcoLU7ji_56QX8Kx0l1YY,29040
25
- code_loader/leaploader.py,sha256=HPDZb10HPYh18_HjoIYT8ipB5pmVvL5tEI_KFKmHS7g,28866
26
- code_loader/leaploaderbase.py,sha256=tpMVEd97675b_var4hvesjN7EgQzoCbPEayNBut6AvI,4551
27
- code_loader/utils.py,sha256=_j8b60pimoNAvWMRj7hEkkT6C76qES6cZoBFHpXHMxA,2698
23
+ code_loader/inner_leap_binder/leapbinder.py,sha256=Q3D9yVM-GNEJfYRFvMV__BoZbcWOgnWKhrZXAv6Tu7o,33232
24
+ code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=k7h0OXFgMWNj-0jxelcPlYVZvrddv5GRxIMRk_OD0Ro,81986
25
+ code_loader/leaploader.py,sha256=oxtlf7NhWuiUPeIwAO699JaD-mK_7fGM55okKLyKaJg,30582
26
+ code_loader/leaploaderbase.py,sha256=NXCDIIF7-ziGJccKIE9NszMSYKEE-3bn4Z4Xa3oYYOc,5909
27
+ code_loader/mixpanel_tracker.py,sha256=eKvymkw7X2Ht6iw-a0V9VQm6OnB9kW7hYy35YtwRAvU,8457
28
+ code_loader/plot_functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ code_loader/plot_functions/plot_functions.py,sha256=OGFLfbL31N2wuwcXIxxQ14f0Kuuvv1BZkAuFi2c0ma4,14560
30
+ code_loader/plot_functions/visualize.py,sha256=gsBAYYkwMh7jIpJeDMPS8G4CW-pxwx6LznoQIvi4vpo,657
31
+ code_loader/utils.py,sha256=gXENTYpjdidq2dx0gVbXlErPeHoNs-4TYAZbLRe0y2c,2712
28
32
  code_loader/visualizers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- code_loader/visualizers/default_visualizers.py,sha256=669lBpLISLO6my5Qcgn1FLDDeZgHumPf252m4KHY4YM,2555
30
- code_loader-1.0.94.dev11.dist-info/LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
31
- code_loader-1.0.94.dev11.dist-info/METADATA,sha256=xJbtoqVCq1CXvuNX-TLasEk_reVwUbcnjaF6YinHCYI,855
32
- code_loader-1.0.94.dev11.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
33
- code_loader-1.0.94.dev11.dist-info/RECORD,,
33
+ code_loader/visualizers/default_visualizers.py,sha256=onRnLE_TXfgLN4o52hQIOOhUcFexGlqJ3xSpQDVLuZM,2604
34
+ code_loader-1.0.153.dev3.dist-info/LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
35
+ code_loader-1.0.153.dev3.dist-info/METADATA,sha256=5WV-VTDLoQlNwrAhsjWMtS71nwsnjb9v_EDAt4FlVT0,1095
36
+ code_loader-1.0.153.dev3.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
37
+ code_loader-1.0.153.dev3.dist-info/RECORD,,