code-loader 1.0.118.dev2__tar.gz → 1.0.118.dev4__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.

Potentially problematic release.


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

Files changed (36) hide show
  1. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/PKG-INFO +1 -1
  2. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/inner_leap_binder/leapbinder_decorators.py +41 -8
  3. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/leaploader.py +15 -6
  4. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/leaploaderbase.py +4 -0
  5. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/pyproject.toml +1 -1
  6. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/LICENSE +0 -0
  7. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/README.md +0 -0
  8. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/__init__.py +0 -0
  9. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/contract/__init__.py +0 -0
  10. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/contract/datasetclasses.py +0 -0
  11. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/contract/enums.py +0 -0
  12. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/contract/exceptions.py +0 -0
  13. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/contract/mapping.py +0 -0
  14. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/contract/responsedataclasses.py +0 -0
  15. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/contract/visualizer_classes.py +0 -0
  16. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/default_losses.py +0 -0
  17. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/default_metrics.py +0 -0
  18. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/__init__.py +0 -0
  19. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/api.py +0 -0
  20. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/cli_config_utils.py +0 -0
  21. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/client.py +0 -0
  22. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/epoch.py +0 -0
  23. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/experiment.py +0 -0
  24. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/experiment_context.py +0 -0
  25. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/types.py +0 -0
  26. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/utils.py +0 -0
  27. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  28. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/inner_leap_binder/__init__.py +0 -0
  29. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/inner_leap_binder/leapbinder.py +0 -0
  30. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/mixpanel_tracker.py +0 -0
  31. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/plot_functions/__init__.py +0 -0
  32. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/plot_functions/plot_functions.py +0 -0
  33. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/plot_functions/visualize.py +0 -0
  34. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/utils.py +0 -0
  35. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/code_loader/visualizers/__init__.py +0 -0
  36. {code_loader-1.0.118.dev2 → code_loader-1.0.118.dev4}/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.118.dev2
3
+ Version: 1.0.118.dev4
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -675,8 +675,6 @@ def tensorleap_input_encoder(name: str, channel_dim=-1, model_input_index=None):
675
675
  if channel_dim <= 0 and channel_dim != -1:
676
676
  raise Exception(f"Channel dim for input {name} is expected to be either -1 or positive")
677
677
 
678
- leap_binder.set_input(user_function, name, channel_dim=channel_dim)
679
-
680
678
  def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
681
679
  assert isinstance(sample_id, (int, str)), \
682
680
  (f'tensorleap_input_encoder validation failed: '
@@ -699,15 +697,35 @@ def tensorleap_input_encoder(name: str, channel_dim=-1, model_input_index=None):
699
697
  assert channel_dim - 1 <= len(result.shape), (f'tensorleap_input_encoder validation failed: '
700
698
  f'The channel_dim ({channel_dim}) should be <= to the rank of the resulting input rank ({len(result.shape)}).')
701
699
 
700
+ def inner_without_validate(sample_id, preprocess_response):
701
+
702
+ global _called_from_inside_tl_decorator
703
+ _called_from_inside_tl_decorator += 1
704
+
705
+ try:
706
+ result = user_function(sample_id, preprocess_response)
707
+ finally:
708
+ _called_from_inside_tl_decorator -= 1
709
+
710
+ return result
711
+
712
+ leap_binder.set_input(inner_without_validate, name, channel_dim=channel_dim)
713
+
714
+
702
715
  def inner(sample_id, preprocess_response):
703
716
  _validate_input_args(sample_id, preprocess_response)
704
- result = user_function(sample_id, preprocess_response)
717
+
718
+ result = inner_without_validate(sample_id, preprocess_response)
719
+
705
720
  _validate_result(result)
706
721
 
707
- if _called_from_inside_tl_decorator == 0:
722
+ if _called_from_inside_tl_decorator == 1:
708
723
  result = np.expand_dims(result, axis=0)
724
+
709
725
  return result
710
726
 
727
+
728
+
711
729
  node_mapping_type = NodeMappingType.Input
712
730
  if model_input_index is not None:
713
731
  node_mapping_type = NodeMappingType(f'Input{str(model_input_index)}')
@@ -744,8 +762,6 @@ def tensorleap_gt_encoder(name: str):
744
762
  raise Exception(f'GT with name {name} already exists. '
745
763
  f'Please choose another')
746
764
 
747
- leap_binder.set_ground_truth(user_function, name)
748
-
749
765
  def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
750
766
  assert isinstance(sample_id, (int, str)), \
751
767
  (f'tensorleap_gt_encoder validation failed: '
@@ -766,13 +782,30 @@ def tensorleap_gt_encoder(name: str):
766
782
  (f'tensorleap_gt_encoder validation failed: '
767
783
  f'The return type should be a numpy array of type float32. Got {result.dtype}.')
768
784
 
785
+ def inner_without_validate(sample_id, preprocess_response):
786
+ global _called_from_inside_tl_decorator
787
+ _called_from_inside_tl_decorator += 1
788
+
789
+ try:
790
+ result = user_function(sample_id, preprocess_response)
791
+ finally:
792
+ _called_from_inside_tl_decorator -= 1
793
+
794
+ return result
795
+
796
+ leap_binder.set_ground_truth(inner_without_validate, name)
797
+
798
+
769
799
  def inner(sample_id, preprocess_response):
770
800
  _validate_input_args(sample_id, preprocess_response)
771
- result = user_function(sample_id, preprocess_response)
801
+
802
+ result = inner_without_validate(sample_id, preprocess_response)
803
+
772
804
  _validate_result(result)
773
805
 
774
- if _called_from_inside_tl_decorator == 0:
806
+ if _called_from_inside_tl_decorator == 1:
775
807
  result = np.expand_dims(result, axis=0)
808
+
776
809
  return result
777
810
 
778
811
  inner.node_mapping = NodeMapping(name, NodeMappingType.GroundTruth)
@@ -34,7 +34,7 @@ class LeapLoader(LeapLoaderBase):
34
34
  super().__init__(code_path, code_entry_name)
35
35
 
36
36
  self._preprocess_result_cached = None
37
-
37
+
38
38
  try:
39
39
  from code_loader.mixpanel_tracker import track_code_loader_loaded
40
40
  track_code_loader_loaded({
@@ -77,6 +77,8 @@ class LeapLoader(LeapLoaderBase):
77
77
  file_path = Path(self.code_path, self.code_entry_name)
78
78
  append_path_recursively(str(file_path))
79
79
 
80
+ importlib.invalidate_caches()
81
+
80
82
  spec = importlib.util.spec_from_file_location(self.code_path, file_path)
81
83
  if spec is None or spec.loader is None:
82
84
  raise DatasetScriptException(f'Something is went wrong with spec file from: {file_path}')
@@ -165,7 +167,9 @@ class LeapLoader(LeapLoaderBase):
165
167
 
166
168
  custom_latent_space = None
167
169
  if global_leap_binder.setup_container.custom_latent_space is not None:
168
- custom_latent_space = global_leap_binder.setup_container.custom_latent_space.function(sample_id, preprocess_result[state])
170
+ custom_latent_space = global_leap_binder.setup_container.custom_latent_space.function(sample_id,
171
+ preprocess_result[
172
+ state])
169
173
 
170
174
  sample = DatasetSample(inputs=self._get_inputs(state, sample_id),
171
175
  gt=None if state == DataStateEnum.unlabeled else self._get_gt(state, sample_id),
@@ -216,8 +220,6 @@ class LeapLoader(LeapLoaderBase):
216
220
  general_error = f"Something went wrong. {repr(e.__cause__)} in file {file_name}, line_number: {line_number}\nStacktrace:\n{stacktrace}"
217
221
  is_valid = False
218
222
 
219
-
220
-
221
223
  print_log = stdout_steam.getvalue()
222
224
  is_valid_for_model = bool(global_leap_binder.setup_container.custom_layers)
223
225
  model_setup = self.get_model_setup_response()
@@ -482,7 +484,8 @@ class LeapLoader(LeapLoaderBase):
482
484
  def _get_inputs(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[str, npt.NDArray[np.float32]]:
483
485
  return self._get_dataset_handlers(global_leap_binder.setup_container.inputs, state, sample_id)
484
486
 
485
- def _get_instances_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[str, List[ElementInstance]]:
487
+ def _get_instances_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[
488
+ str, List[ElementInstance]]:
486
489
  preprocess_result = self._preprocess_result()
487
490
  preprocess_state = preprocess_result[state]
488
491
  result_agg = {}
@@ -532,7 +535,8 @@ class LeapLoader(LeapLoaderBase):
532
535
 
533
536
  return converted_value, is_none
534
537
 
535
- def _get_metadata(self, state: DataStateEnum, sample_id: Union[int, str]) -> Tuple[Dict[str, Union[str, int, bool, float]], Dict[str, bool]]:
538
+ def _get_metadata(self, state: DataStateEnum, sample_id: Union[int, str]) -> Tuple[
539
+ Dict[str, Union[str, int, bool, float]], Dict[str, bool]]:
536
540
  result_agg = {}
537
541
  is_none = {}
538
542
  preprocess_result = self._preprocess_result()
@@ -561,6 +565,11 @@ class LeapLoader(LeapLoaderBase):
561
565
 
562
566
  return id_type
563
567
 
568
+ @lru_cache()
569
+ def has_custom_latent_space_decorator(self) -> bool:
570
+ self.exec_script()
571
+ return global_leap_binder.setup_container.custom_latent_space is not None
572
+
564
573
  def get_instances_data(self, state: DataStateEnum) -> Tuple[Dict[str, List[str]], Dict[str, str], Dict[str, str]]:
565
574
  """
566
575
  This Method get the data state and returns two dictionaries that holds the mapping of the sample ids to their
@@ -114,6 +114,10 @@ class LeapLoaderBase:
114
114
  def get_sample_id_type(self) -> Type:
115
115
  pass
116
116
 
117
+ @abstractmethod
118
+ def has_custom_latent_space_decorator(self) -> bool:
119
+ pass
120
+
117
121
  @abstractmethod
118
122
  def get_heatmap_visualizer_raw_vis_input_arg_name(self, visualizer_name: str) -> Optional[str]:
119
123
  pass
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.118.dev2"
3
+ version = "1.0.118.dev4"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"