code-loader 1.0.169__tar.gz → 1.0.169.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.169 → code_loader-1.0.169.dev1}/PKG-INFO +1 -1
- code_loader-1.0.169.dev1/code_loader/contract/metric_metadata_utils.py +36 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/inner_leap_binder/leapbinder_decorators.py +14 -12
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/pyproject.toml +1 -1
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/LICENSE +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/README.md +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/__init__.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/contract/__init__.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/contract/datasetclasses.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/contract/enums.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/contract/exceptions.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/contract/mapping.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/contract/responsedataclasses.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/contract/visualizer_classes.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/default_losses.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/default_metrics.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/__init__.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/api.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/cli_config_utils.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/client.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/epoch.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/experiment.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/experiment_context.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/types.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/utils.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/inner_leap_binder/__init__.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/inner_leap_binder/leapbinder.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/leaploader.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/leaploaderbase.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/mixpanel_tracker.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/plot_functions/__init__.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/plot_functions/plot_functions.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/plot_functions/visualize.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/utils.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/visualizers/__init__.py +0 -0
- {code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/visualizers/default_visualizers.py +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from typing import Dict, Iterable, Optional, Tuple, Union
|
|
2
|
+
|
|
3
|
+
from code_loader.contract.enums import MetricDirection
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def resolve_metric_output_metadata(
|
|
7
|
+
direction: Union[None, MetricDirection, Dict[str, MetricDirection]],
|
|
8
|
+
compute_insights: Optional[Union[bool, Dict[str, bool]]],
|
|
9
|
+
result_keys: Iterable[str],
|
|
10
|
+
) -> Tuple[Dict[str, MetricDirection], Dict[str, bool]]:
|
|
11
|
+
result_keys = list(result_keys)
|
|
12
|
+
|
|
13
|
+
if isinstance(direction, dict):
|
|
14
|
+
resolved_direction = {
|
|
15
|
+
key: direction.get(key, MetricDirection.Downward)
|
|
16
|
+
for key in result_keys
|
|
17
|
+
}
|
|
18
|
+
elif isinstance(direction, MetricDirection):
|
|
19
|
+
resolved_direction = {key: direction for key in result_keys}
|
|
20
|
+
else:
|
|
21
|
+
resolved_direction = {
|
|
22
|
+
key: MetricDirection.Downward
|
|
23
|
+
for key in result_keys
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if isinstance(compute_insights, dict):
|
|
27
|
+
resolved_compute_insights = {
|
|
28
|
+
key: compute_insights.get(key, True)
|
|
29
|
+
for key in result_keys
|
|
30
|
+
}
|
|
31
|
+
elif isinstance(compute_insights, bool):
|
|
32
|
+
resolved_compute_insights = {key: compute_insights for key in result_keys}
|
|
33
|
+
else:
|
|
34
|
+
resolved_compute_insights = {key: True for key in result_keys}
|
|
35
|
+
|
|
36
|
+
return resolved_direction, resolved_compute_insights
|
|
@@ -21,6 +21,7 @@ from code_loader.contract.datasetclasses import CustomCallableInterfaceMultiArgs
|
|
|
21
21
|
ConfusionMatrixElement, SamplePreprocessResponse, PredictionTypeHandler, InstanceCallableInterface, ElementInstance, \
|
|
22
22
|
InstanceLengthCallableInterface
|
|
23
23
|
from code_loader.contract.enums import MetricDirection, LeapDataType, DatasetMetadataType, DataStateType
|
|
24
|
+
from code_loader.contract.metric_metadata_utils import resolve_metric_output_metadata
|
|
24
25
|
from code_loader import leap_binder, LeapLoader
|
|
25
26
|
from code_loader.contract.mapping import NodeMapping, NodeMappingType, NodeConnection
|
|
26
27
|
from code_loader.contract.visualizer_classes import LeapImage, LeapImageMask, LeapTextMask, LeapText, LeapGraph, \
|
|
@@ -699,21 +700,21 @@ def tensorleap_custom_metric(name: str,
|
|
|
699
700
|
(f'{user_function.__name__}() validation failed: '
|
|
700
701
|
f'Keys in the compute_insights mapping should be part of result keys. Got key {ci_key}.')
|
|
701
702
|
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
703
|
+
raw_direction = None if direction is _UNSET else direction
|
|
704
|
+
effective_direction, effective_compute_insights = resolve_metric_output_metadata(
|
|
705
|
+
raw_direction,
|
|
706
|
+
compute_insights,
|
|
707
|
+
result.keys(),
|
|
708
|
+
)
|
|
709
|
+
defaulted_direction_keys = {
|
|
710
|
+
key for key in result_keys
|
|
711
|
+
if raw_direction is None or (isinstance(raw_direction, dict) and key not in raw_direction)
|
|
712
|
+
}
|
|
707
713
|
|
|
708
714
|
leap_binder.setup_container.metrics[-1].metric_handler_data.direction = effective_direction
|
|
715
|
+
leap_binder.setup_container.metrics[-1].metric_handler_data.compute_insights = effective_compute_insights
|
|
709
716
|
|
|
710
717
|
if defaulted_direction_keys and not _call_from_tl_platform:
|
|
711
|
-
if compute_insights is None:
|
|
712
|
-
effective_compute_insights = {}
|
|
713
|
-
elif isinstance(compute_insights, dict):
|
|
714
|
-
effective_compute_insights = compute_insights
|
|
715
|
-
else:
|
|
716
|
-
effective_compute_insights = {k: compute_insights for k in result_keys}
|
|
717
718
|
warning_keys = {key for key in defaulted_direction_keys if effective_compute_insights.get(key, True)}
|
|
718
719
|
if warning_keys:
|
|
719
720
|
store_warning_by_param(
|
|
@@ -961,6 +962,8 @@ def tensorleap_metadata(
|
|
|
961
962
|
def _validate_result(result):
|
|
962
963
|
supported_result_types = (type(None), int, str, bool, float, dict, np.floating,
|
|
963
964
|
np.bool_, np.unsignedinteger, np.signedinteger, np.integer)
|
|
965
|
+
validate_output_structure(result, func_name=user_function.__name__,
|
|
966
|
+
expected_type_name=supported_result_types)
|
|
964
967
|
assert isinstance(result, supported_result_types), \
|
|
965
968
|
(f'{user_function.__name__}() validation failed: '
|
|
966
969
|
f'Unsupported return type. Got {type(result)}. should be any of {str(supported_result_types)}')
|
|
@@ -1812,4 +1815,3 @@ if not _call_from_tl_platform:
|
|
|
1812
1815
|
|
|
1813
1816
|
|
|
1814
1817
|
|
|
1815
|
-
|
|
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.169 → code_loader-1.0.169.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.169 → code_loader-1.0.169.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.169 → code_loader-1.0.169.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.169 → code_loader-1.0.169.dev1}/code_loader/inner_leap_binder/leapbinder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/plot_functions/plot_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.169 → code_loader-1.0.169.dev1}/code_loader/visualizers/default_visualizers.py
RENAMED
|
File without changes
|