code-loader 1.0.162__tar.gz → 1.0.164.dev1__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.162 → code_loader-1.0.164.dev1}/PKG-INFO +1 -1
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/inner_leap_binder/leapbinder_decorators.py +20 -13
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/plot_functions/plot_functions.py +14 -1
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/pyproject.toml +1 -1
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/LICENSE +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/README.md +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/__init__.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/contract/__init__.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/contract/datasetclasses.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/contract/enums.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/contract/exceptions.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/contract/mapping.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/contract/responsedataclasses.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/contract/visualizer_classes.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/default_losses.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/default_metrics.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/__init__.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/api.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/cli_config_utils.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/client.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/epoch.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/experiment.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/experiment_context.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/types.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/utils.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/inner_leap_binder/__init__.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/inner_leap_binder/leapbinder.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/leaploader.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/leaploaderbase.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/mixpanel_tracker.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/plot_functions/__init__.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/plot_functions/visualize.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/utils.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/visualizers/__init__.py +0 -0
- {code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/visualizers/default_visualizers.py +0 -0
|
@@ -24,7 +24,7 @@ from code_loader.contract.enums import MetricDirection, LeapDataType, DatasetMet
|
|
|
24
24
|
from code_loader import leap_binder, LeapLoader
|
|
25
25
|
from code_loader.contract.mapping import NodeMapping, NodeMappingType, NodeConnection
|
|
26
26
|
from code_loader.contract.visualizer_classes import LeapImage, LeapImageMask, LeapTextMask, LeapText, LeapGraph, \
|
|
27
|
-
LeapHorizontalBar, LeapImageWithBBox, LeapImageWithHeatmap
|
|
27
|
+
LeapHorizontalBar, LeapImageWithBBox, LeapImageWithHeatmap, LeapVideo
|
|
28
28
|
from code_loader.inner_leap_binder.leapbinder import mapping_runtime_mode_env_var_mame
|
|
29
29
|
from code_loader.mixpanel_tracker import clear_integration_events, AnalyticsEvent, emit_integration_event_once
|
|
30
30
|
|
|
@@ -693,14 +693,15 @@ def tensorleap_custom_metric(name: str,
|
|
|
693
693
|
f'Keys in the direction mapping should be part of result keys. Got key {direction_key}.')
|
|
694
694
|
|
|
695
695
|
if compute_insights is not None:
|
|
696
|
-
assert isinstance(compute_insights, dict), \
|
|
696
|
+
assert isinstance(compute_insights, (bool, dict)), \
|
|
697
697
|
(f'{user_function.__name__}() validation failed: '
|
|
698
|
-
f'compute_insights should be dict if using the dict results. Got {type(compute_insights)}.')
|
|
698
|
+
f'compute_insights should be bool or dict if using the dict results. Got {type(compute_insights)}.')
|
|
699
699
|
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
700
|
+
if isinstance(compute_insights, dict):
|
|
701
|
+
for ci_key in compute_insights:
|
|
702
|
+
assert ci_key in result, \
|
|
703
|
+
(f'{user_function.__name__}() validation failed: '
|
|
704
|
+
f'Keys in the compute_insights mapping should be part of result keys. Got key {ci_key}.')
|
|
704
705
|
|
|
705
706
|
else:
|
|
706
707
|
_validate_single_metric(result)
|
|
@@ -824,7 +825,8 @@ def tensorleap_custom_visualizer(name: str, visualizer_type: LeapDataType,
|
|
|
824
825
|
LeapDataType.Graph: LeapGraph,
|
|
825
826
|
LeapDataType.HorizontalBar: LeapHorizontalBar,
|
|
826
827
|
LeapDataType.ImageWithBBox: LeapImageWithBBox,
|
|
827
|
-
LeapDataType.ImageWithHeatmap: LeapImageWithHeatmap
|
|
828
|
+
LeapDataType.ImageWithHeatmap: LeapImageWithHeatmap,
|
|
829
|
+
LeapDataType.Video: LeapVideo
|
|
828
830
|
}
|
|
829
831
|
validate_output_structure(result, func_name=user_function.__name__,
|
|
830
832
|
expected_type_name=result_type_map[visualizer_type])
|
|
@@ -1687,8 +1689,12 @@ def tensorleap_status_table():
|
|
|
1687
1689
|
mandatory_ready_mess = "\nAll mandatory parts have been successfully set. If no errors accured, you can now push the project to the Tensorleap system or continue to the next optional reccomeded interface,adding: "
|
|
1688
1690
|
code_mapping_failure_mes = "Tensorleap_integration_test code flow failed, check raised exception."
|
|
1689
1691
|
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
+
# Sort table: CHECK first, then CROSS, then UNKNOWN
|
|
1693
|
+
status_order = {CHECK: 0, CROSS: 1, UNKNOWN: 2}
|
|
1694
|
+
sorted_table = sorted(table, key=lambda row: status_order.get(row["Added to integration"], 3))
|
|
1695
|
+
|
|
1696
|
+
name_width = max(len(row["name"]) for row in sorted_table)
|
|
1697
|
+
status_width = max(len(row["Added to integration"]) for row in sorted_table)
|
|
1692
1698
|
|
|
1693
1699
|
header = f"{'Decorator Name'.ljust(name_width)} | {'Added to integration'.ljust(status_width)}"
|
|
1694
1700
|
sep = "-" * len(header)
|
|
@@ -1696,11 +1702,13 @@ def tensorleap_status_table():
|
|
|
1696
1702
|
print("\n" + header)
|
|
1697
1703
|
print(sep)
|
|
1698
1704
|
|
|
1705
|
+
for row in sorted_table:
|
|
1706
|
+
print(f"{row['name'].ljust(name_width)} | {row['Added to integration'].ljust(status_width)}")
|
|
1707
|
+
|
|
1708
|
+
# Determine next_step based on original table order (recommended integration order)
|
|
1699
1709
|
ready = True
|
|
1700
1710
|
next_step = None
|
|
1701
|
-
|
|
1702
1711
|
for row in table:
|
|
1703
|
-
print(f"{row['name'].ljust(name_width)} | {row['Added to integration'].ljust(status_width)}")
|
|
1704
1712
|
if not _crashed["value"] and ready:
|
|
1705
1713
|
if row["Added to integration"] != CHECK:
|
|
1706
1714
|
ready = False
|
|
@@ -1764,4 +1772,3 @@ if not _call_from_tl_platform:
|
|
|
1764
1772
|
|
|
1765
1773
|
|
|
1766
1774
|
|
|
1767
|
-
|
{code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/plot_functions/plot_functions.py
RENAMED
|
@@ -20,7 +20,7 @@ from textwrap import wrap
|
|
|
20
20
|
import math
|
|
21
21
|
|
|
22
22
|
from code_loader.contract.visualizer_classes import LeapImage, LeapImageWithBBox, LeapGraph, LeapText, \
|
|
23
|
-
LeapHorizontalBar, LeapImageMask, LeapTextMask, LeapImageWithHeatmap
|
|
23
|
+
LeapHorizontalBar, LeapImageMask, LeapTextMask, LeapImageWithHeatmap, LeapVideo
|
|
24
24
|
|
|
25
25
|
def run_only_on_non_mapping_mode():
|
|
26
26
|
"""
|
|
@@ -388,6 +388,18 @@ def plot_text_mask(leap_data: LeapTextMask, title: str) -> None:
|
|
|
388
388
|
|
|
389
389
|
plt.show()
|
|
390
390
|
|
|
391
|
+
@run_only_on_non_mapping_mode()
|
|
392
|
+
def plot_video(leap_data: LeapVideo, title: str) -> None:
|
|
393
|
+
video_data = leap_data.data
|
|
394
|
+
fig, ax = plt.subplots()
|
|
395
|
+
fig.patch.set_facecolor('black')
|
|
396
|
+
ax.set_facecolor('black')
|
|
397
|
+
ax.set_title(title, color='white')
|
|
398
|
+
for frame in video_data:
|
|
399
|
+
ax.imshow(frame)
|
|
400
|
+
plt.pause(0.1) # Adjust the pause duration as needed
|
|
401
|
+
plt.show()
|
|
402
|
+
|
|
391
403
|
@run_only_on_non_mapping_mode()
|
|
392
404
|
def plot_image_with_heatmap(leap_data: LeapImageWithHeatmap, title: str) -> None:
|
|
393
405
|
"""
|
|
@@ -441,4 +453,5 @@ plot_switch = {
|
|
|
441
453
|
LeapDataType.TextMask: plot_text_mask,
|
|
442
454
|
LeapDataType.ImageWithHeatmap: plot_image_with_heatmap,
|
|
443
455
|
LeapDataType.ImageWithBBox: plot_image_with_b_box,
|
|
456
|
+
LeapDataType.Video: plot_video,
|
|
444
457
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/contract/responsedataclasses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/cli_config_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/experiment_api/experiment_context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/inner_leap_binder/leapbinder.py
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
|
{code_loader-1.0.162 → code_loader-1.0.164.dev1}/code_loader/visualizers/default_visualizers.py
RENAMED
|
File without changes
|