code-loader 1.0.157.dev11__tar.gz → 1.0.157.dev12__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.
Files changed (36) hide show
  1. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/PKG-INFO +1 -1
  2. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/inner_leap_binder/leapbinder_decorators.py +20 -12
  3. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/leaploader.py +0 -1
  4. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/utils.py +16 -0
  5. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/pyproject.toml +1 -1
  6. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/LICENSE +0 -0
  7. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/README.md +0 -0
  8. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/__init__.py +0 -0
  9. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/contract/__init__.py +0 -0
  10. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/contract/datasetclasses.py +0 -0
  11. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/contract/enums.py +0 -0
  12. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/contract/exceptions.py +0 -0
  13. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/contract/mapping.py +0 -0
  14. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/contract/responsedataclasses.py +0 -0
  15. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/contract/visualizer_classes.py +0 -0
  16. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/default_losses.py +0 -0
  17. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/default_metrics.py +0 -0
  18. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/__init__.py +0 -0
  19. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/api.py +0 -0
  20. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/cli_config_utils.py +0 -0
  21. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/client.py +0 -0
  22. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/epoch.py +0 -0
  23. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/experiment.py +0 -0
  24. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/experiment_context.py +0 -0
  25. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/types.py +0 -0
  26. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/utils.py +0 -0
  27. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  28. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/inner_leap_binder/__init__.py +0 -0
  29. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/inner_leap_binder/leapbinder.py +0 -0
  30. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/leaploaderbase.py +0 -0
  31. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/mixpanel_tracker.py +0 -0
  32. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/plot_functions/__init__.py +0 -0
  33. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/plot_functions/plot_functions.py +0 -0
  34. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/plot_functions/visualize.py +0 -0
  35. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/visualizers/__init__.py +0 -0
  36. {code_loader-1.0.157.dev11 → code_loader-1.0.157.dev12}/code_loader/visualizers/default_visualizers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: code-loader
3
- Version: 1.0.157.dev11
3
+ Version: 1.0.157.dev12
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -11,6 +11,8 @@ from typing import Optional, Union, Callable, List, Dict, get_args, get_origin,
11
11
  import numpy as np
12
12
  import numpy.typing as npt
13
13
 
14
+ from code_loader.utils import get_metadata_type_from_variable
15
+
14
16
  logger = logging.getLogger(__name__)
15
17
 
16
18
  from code_loader.contract.datasetclasses import CustomCallableInterfaceMultiArgs, \
@@ -19,7 +21,7 @@ from code_loader.contract.datasetclasses import CustomCallableInterfaceMultiArgs
19
21
  ConfusionMatrixElement, SamplePreprocessResponse, PredictionTypeHandler, InstanceCallableInterface, ElementInstance, \
20
22
  InstanceLengthCallableInterface
21
23
  from code_loader.contract.enums import MetricDirection, LeapDataType, DatasetMetadataType, DataStateType
22
- from code_loader import leap_binder
24
+ from code_loader import leap_binder, LeapLoader
23
25
  from code_loader.contract.mapping import NodeMapping, NodeMappingType, NodeConnection
24
26
  from code_loader.contract.visualizer_classes import LeapImage, LeapImageMask, LeapTextMask, LeapText, LeapGraph, \
25
27
  LeapHorizontalBar, LeapImageWithBBox, LeapImageWithHeatmap
@@ -1085,6 +1087,12 @@ def tensorleap_element_instance_preprocess(
1085
1087
  preprocess_response.sample_ids = all_sample_ids
1086
1088
  return result
1087
1089
 
1090
+ def map_dict_to_metadata_types(data: dict) -> dict:
1091
+ return {
1092
+ k: get_metadata_type_from_variable(v)
1093
+ for k, v in data.items()
1094
+ }
1095
+
1088
1096
  def extract_extra_instance_metadata():
1089
1097
  result = user_function()
1090
1098
  for preprocess_response in result:
@@ -1094,24 +1102,24 @@ def tensorleap_element_instance_preprocess(
1094
1102
  element_instance = instance_mask_encoder(sample_id, preprocess_response, instance_id)
1095
1103
  instance_metadata = element_instance.instance_metadata
1096
1104
  if instance_metadata is None:
1097
- return {}
1105
+ return {}, None
1098
1106
  if instance_metadata is not None and all(value is not None for value in instance_metadata.values()):
1099
- return instance_metadata
1100
- return {}
1101
-
1107
+ return instance_metadata, map_dict_to_metadata_types(instance_metadata)
1108
+ return {}, None
1102
1109
 
1103
1110
  def builtin_instance_metadata(idx: str, preprocess: PreprocessResponse) -> Dict[str, str]:
1104
1111
  return {'is_instance': '0', 'original_sample_id': idx, 'instance_name': 'none'}
1105
1112
 
1106
- def builtin_instance_extra_metadata(idx: str, preprocess: PreprocessResponse) -> Dict[str, str]:
1107
- instance_metadata = extract_extra_instance_metadata()
1108
- # for key, value in instance_metadata.items():
1109
- # instance_metadata[key] = Nonew
1110
- return instance_metadata
1111
-
1112
1113
  leap_binder.set_preprocess(user_function_instance)
1113
1114
  leap_binder.set_metadata(builtin_instance_metadata, "builtin_instance_metadata")
1114
- leap_binder.set_metadata(builtin_instance_extra_metadata, "builtin_instance_extra_metadata")
1115
+
1116
+ instance_metadata, instance_metadata_types = extract_extra_instance_metadata()
1117
+ def builtin_instance_extra_metadata(idx: str, preprocess: PreprocessResponse) -> Dict[str, str]:
1118
+ for key, value in instance_metadata.items():
1119
+ instance_metadata[key] = None
1120
+ return instance_metadata
1121
+ if instance_metadata_types is not None:
1122
+ leap_binder.set_metadata(builtin_instance_extra_metadata, "builtin_instance_extra_metadata", instance_metadata_types)
1115
1123
 
1116
1124
  def _validate_input_args(*args, **kwargs):
1117
1125
  assert len(args) == 0 and len(kwargs) == 0, \
@@ -28,7 +28,6 @@ from code_loader.inner_leap_binder.leapbinder import mapping_runtime_mode_env_va
28
28
  from code_loader.leaploaderbase import LeapLoaderBase
29
29
  from code_loader.utils import get_root_exception_file_and_line_number
30
30
 
31
-
32
31
  class LeapLoader(LeapLoaderBase):
33
32
  def __init__(self, code_path: str, code_entry_name: str):
34
33
  super().__init__(code_path, code_entry_name)
@@ -8,6 +8,7 @@ import numpy.typing as npt
8
8
 
9
9
  from code_loader.contract.datasetclasses import SectionCallableInterface, PreprocessResponse, \
10
10
  InstanceCallableInterface, ElementInstance
11
+ from code_loader.contract.enums import DatasetMetadataType
11
12
 
12
13
 
13
14
  def to_numpy_return_wrapper(encoder_function: SectionCallableInterface) -> SectionCallableInterface:
@@ -75,4 +76,19 @@ def rescale_min_max(image: npt.NDArray[np.float32]) -> npt.NDArray[np.float32]:
75
76
 
76
77
  return image
77
78
 
79
+ def get_metadata_type_from_variable(variable):
80
+ metadata_type = type(variable)
81
+ if metadata_type == int or isinstance(variable,
82
+ (np.unsignedinteger, np.signedinteger)):
83
+ metadata_type = float
84
+ if isinstance(variable, str):
85
+ dataset_metadata_type = DatasetMetadataType.string
86
+ elif metadata_type == bool or isinstance(variable, np.bool_):
87
+ dataset_metadata_type = DatasetMetadataType.boolean
88
+ elif metadata_type == float or isinstance(variable, np.floating):
89
+ dataset_metadata_type = DatasetMetadataType.float
90
+ else:
91
+ raise Exception(f"Unsupported return type of metadata {variable}."
92
+ f"The return type should be one of [int, float, str, bool]. Got {metadata_type}")
93
+ return dataset_metadata_type
78
94
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.157.dev11"
3
+ version = "1.0.157.dev12"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"