code-loader 1.0.118.dev3__tar.gz → 1.0.119.dev2__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.dev3 → code_loader-1.0.119.dev2}/PKG-INFO +1 -1
  2. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/contract/datasetclasses.py +0 -7
  3. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/inner_leap_binder/leapbinder.py +1 -14
  4. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/inner_leap_binder/leapbinder_decorators.py +7 -51
  5. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/leaploader.py +7 -20
  6. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/leaploaderbase.py +0 -4
  7. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/mixpanel_tracker.py +6 -0
  8. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/pyproject.toml +1 -1
  9. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/LICENSE +0 -0
  10. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/README.md +0 -0
  11. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/__init__.py +0 -0
  12. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/contract/__init__.py +0 -0
  13. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/contract/enums.py +0 -0
  14. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/contract/exceptions.py +0 -0
  15. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/contract/mapping.py +0 -0
  16. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/contract/responsedataclasses.py +0 -0
  17. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/contract/visualizer_classes.py +0 -0
  18. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/default_losses.py +0 -0
  19. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/default_metrics.py +0 -0
  20. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/__init__.py +0 -0
  21. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/api.py +0 -0
  22. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/cli_config_utils.py +0 -0
  23. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/client.py +0 -0
  24. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/epoch.py +0 -0
  25. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/experiment.py +0 -0
  26. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/experiment_context.py +0 -0
  27. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/types.py +0 -0
  28. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/utils.py +0 -0
  29. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  30. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/inner_leap_binder/__init__.py +0 -0
  31. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/plot_functions/__init__.py +0 -0
  32. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/plot_functions/plot_functions.py +0 -0
  33. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/plot_functions/visualize.py +0 -0
  34. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/utils.py +0 -0
  35. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/code_loader/visualizers/__init__.py +0 -0
  36. {code_loader-1.0.118.dev3 → code_loader-1.0.119.dev2}/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.dev3
3
+ Version: 1.0.119.dev2
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -212,11 +212,6 @@ class MetadataHandler:
212
212
  metadata_type: Optional[Union[DatasetMetadataType, Dict[str, DatasetMetadataType]]] = None
213
213
 
214
214
 
215
- @dataclass
216
- class CustomLatentSpaceHandler:
217
- function: SectionCallableInterface
218
- name: str = 'custom_latent_space'
219
-
220
215
  @dataclass
221
216
  class PredictionTypeHandler:
222
217
  name: str
@@ -246,7 +241,6 @@ class DatasetIntegrationSetup:
246
241
  custom_loss_handlers: List[CustomLossHandler] = field(default_factory=list)
247
242
  metrics: List[MetricHandler] = field(default_factory=list)
248
243
  custom_layers: Dict[str, CustomLayerHandler] = field(default_factory=dict)
249
- custom_latent_space: Optional[CustomLatentSpaceHandler] = None
250
244
 
251
245
 
252
246
  @dataclass
@@ -258,5 +252,4 @@ class DatasetSample:
258
252
  index: Union[int, str]
259
253
  state: DataStateEnum
260
254
  instance_masks: Optional[Dict[str, List[ElementInstance]]] = None
261
- custom_latent_space: Optional[npt.NDArray[np.float32]] = None
262
255
 
@@ -11,7 +11,7 @@ from code_loader.contract.datasetclasses import SectionCallableInterface, InputH
11
11
  CustomCallableInterfaceMultiArgs, ConfusionMatrixCallableInterfaceMultiArgs, LeapData, \
12
12
  CustomMultipleReturnCallableInterfaceMultiArgs, DatasetBaseHandler, custom_latent_space_attribute, \
13
13
  RawInputsForHeatmap, VisualizerHandlerData, MetricHandlerData, CustomLossHandlerData, SamplePreprocessResponse, \
14
- ElementInstanceMasksHandler, InstanceCallableInterface, CustomLatentSpaceHandler
14
+ ElementInstanceMasksHandler, InstanceCallableInterface
15
15
  from code_loader.contract.enums import LeapDataType, DataStateEnum, DataStateType, MetricDirection, DatasetMetadataType
16
16
  from code_loader.contract.mapping import NodeConnection, NodeMapping, NodeMappingType
17
17
  from code_loader.contract.responsedataclasses import DatasetTestResultPayload
@@ -421,19 +421,6 @@ class LeapBinder:
421
421
  """
422
422
  self.setup_container.metadata.append(MetadataHandler(name, function, metadata_type))
423
423
 
424
- def set_custom_latent_space(self, function: SectionCallableInterface) -> None:
425
- """
426
- Set a custom latent space function.
427
-
428
- Args:
429
- function (SectionCallableInterface): The metadata handler function.
430
- This function receives:
431
- subset (PreprocessResponse): The subset of the data.
432
- index (int): The index of the sample within the subset.
433
- This function should numpy float32 array contains the latent space vec of the sample.
434
- """
435
- self.setup_container.custom_latent_space = CustomLatentSpaceHandler(function)
436
-
437
424
  def set_custom_layer(self, custom_layer: Type[Any], name: str, inspect_layer: bool = False,
438
425
  kernel_index: Optional[int] = None, use_custom_latent_space: bool = False) -> None:
439
426
  """
@@ -443,55 +443,6 @@ def tensorleap_metadata(
443
443
  return decorating_function
444
444
 
445
445
 
446
-
447
- def tensorleap_custom_latent_space():
448
- def decorating_function(user_function: SectionCallableInterface):
449
- def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
450
- assert isinstance(sample_id, (int, str)), \
451
- (f'tensorleap_custom_latent_space validation failed: '
452
- f'Argument sample_id should be either int or str. Got {type(sample_id)}.')
453
- assert isinstance(preprocess_response, PreprocessResponse), \
454
- (f'tensorleap_custom_latent_space validation failed: '
455
- f'Argument preprocess_response should be a PreprocessResponse. Got {type(preprocess_response)}.')
456
- assert type(sample_id) == preprocess_response.sample_id_type, \
457
- (f'tensorleap_custom_latent_space validation failed: '
458
- f'Argument sample_id should be as the same type as defined in the preprocess response '
459
- f'{preprocess_response.sample_id_type}. Got {type(sample_id)}.')
460
-
461
- def _validate_result(result):
462
- assert isinstance(result, np.ndarray), \
463
- (f'tensorleap_custom_loss validation failed: '
464
- f'The return type should be a numpy array. Got {type(result)}.')
465
-
466
- def inner_without_validate(sample_id, preprocess_response):
467
- global _called_from_inside_tl_decorator
468
- _called_from_inside_tl_decorator += 1
469
-
470
- try:
471
- result = user_function(sample_id, preprocess_response)
472
- finally:
473
- _called_from_inside_tl_decorator -= 1
474
-
475
- return result
476
-
477
- leap_binder.set_custom_latent_space(inner_without_validate)
478
-
479
- def inner(sample_id, preprocess_response):
480
- if os.environ.get(mapping_runtime_mode_env_var_mame):
481
- return None
482
-
483
- _validate_input_args(sample_id, preprocess_response)
484
-
485
- result = inner_without_validate(sample_id, preprocess_response)
486
-
487
- _validate_result(result)
488
- return result
489
-
490
- return inner
491
-
492
- return decorating_function
493
-
494
-
495
446
  def tensorleap_preprocess():
496
447
  def decorating_function(user_function: Callable[[], List[PreprocessResponse]]):
497
448
  leap_binder.set_preprocess(user_function)
@@ -809,8 +760,14 @@ def tensorleap_custom_loss(name: str, connects_to=None):
809
760
  f'Please choose another')
810
761
 
811
762
  valid_types = (np.ndarray, SamplePreprocessResponse)
763
+ try:
764
+ import tensorflow as tf
765
+ valid_types = (np.ndarray, SamplePreprocessResponse, tf.Tensor)
766
+ except ImportError:
767
+ pass
812
768
 
813
769
  def _validate_input_args(*args, **kwargs):
770
+
814
771
  for i, arg in enumerate(args):
815
772
  if isinstance(arg, list):
816
773
  for y, elem in enumerate(arg):
@@ -829,11 +786,10 @@ def tensorleap_custom_loss(name: str, connects_to=None):
829
786
  f'Argument #{_arg_name} should be a numpy array. Got {type(arg)}.')
830
787
 
831
788
  def _validate_result(result):
832
- assert isinstance(result, np.ndarray), \
789
+ assert isinstance(result, valid_types), \
833
790
  (f'tensorleap_custom_loss validation failed: '
834
791
  f'The return type should be a numpy array. Got {type(result)}.')
835
792
 
836
-
837
793
  @functools.wraps(user_function)
838
794
  def inner_without_validate(*args, **kwargs):
839
795
  global _called_from_inside_tl_decorator
@@ -16,7 +16,7 @@ from code_loader.contract.datasetclasses import DatasetSample, DatasetBaseHandle
16
16
  PreprocessResponse, VisualizerHandler, LeapData, \
17
17
  PredictionTypeHandler, MetadataHandler, CustomLayerHandler, MetricHandler, VisualizerHandlerData, MetricHandlerData, \
18
18
  MetricCallableReturnType, CustomLossHandlerData, CustomLossHandler, RawInputsForHeatmap, SamplePreprocessResponse, \
19
- ElementInstance, custom_latent_space_attribute
19
+ ElementInstance
20
20
  from code_loader.contract.enums import DataStateEnum, TestingSectionEnum, DataStateType, DatasetMetadataType
21
21
  from code_loader.contract.exceptions import DatasetScriptException
22
22
  from code_loader.contract.responsedataclasses import DatasetIntegParseResult, DatasetTestResultPayload, \
@@ -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({
@@ -162,20 +162,12 @@ class LeapLoader(LeapLoaderBase):
162
162
  self._preprocess_result(update_unlabeled_preprocess=True)
163
163
 
164
164
  metadata, metadata_is_none = self._get_metadata(state, sample_id)
165
-
166
- custom_latent_space = None
167
- 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,
169
- preprocess_result[
170
- state])
171
-
172
165
  sample = DatasetSample(inputs=self._get_inputs(state, sample_id),
173
166
  gt=None if state == DataStateEnum.unlabeled else self._get_gt(state, sample_id),
174
167
  metadata=metadata,
175
168
  metadata_is_none=metadata_is_none,
176
169
  index=sample_id,
177
- state=state,
178
- custom_latent_space=custom_latent_space)
170
+ state=state)
179
171
  return sample
180
172
 
181
173
  def get_sample_with_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> DatasetSample:
@@ -218,6 +210,8 @@ class LeapLoader(LeapLoaderBase):
218
210
  general_error = f"Something went wrong. {repr(e.__cause__)} in file {file_name}, line_number: {line_number}\nStacktrace:\n{stacktrace}"
219
211
  is_valid = False
220
212
 
213
+
214
+
221
215
  print_log = stdout_steam.getvalue()
222
216
  is_valid_for_model = bool(global_leap_binder.setup_container.custom_layers)
223
217
  model_setup = self.get_model_setup_response()
@@ -482,8 +476,7 @@ class LeapLoader(LeapLoaderBase):
482
476
  def _get_inputs(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[str, npt.NDArray[np.float32]]:
483
477
  return self._get_dataset_handlers(global_leap_binder.setup_container.inputs, state, sample_id)
484
478
 
485
- def _get_instances_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[
486
- str, List[ElementInstance]]:
479
+ def _get_instances_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[str, List[ElementInstance]]:
487
480
  preprocess_result = self._preprocess_result()
488
481
  preprocess_state = preprocess_result[state]
489
482
  result_agg = {}
@@ -533,8 +526,7 @@ class LeapLoader(LeapLoaderBase):
533
526
 
534
527
  return converted_value, is_none
535
528
 
536
- def _get_metadata(self, state: DataStateEnum, sample_id: Union[int, str]) -> Tuple[
537
- Dict[str, Union[str, int, bool, float]], Dict[str, bool]]:
529
+ def _get_metadata(self, state: DataStateEnum, sample_id: Union[int, str]) -> Tuple[Dict[str, Union[str, int, bool, float]], Dict[str, bool]]:
538
530
  result_agg = {}
539
531
  is_none = {}
540
532
  preprocess_result = self._preprocess_result()
@@ -563,11 +555,6 @@ class LeapLoader(LeapLoaderBase):
563
555
 
564
556
  return id_type
565
557
 
566
- @lru_cache()
567
- def has_custom_latent_space_decorator(self) -> bool:
568
- self.exec_script()
569
- return global_leap_binder.setup_container.custom_latent_space is not None
570
-
571
558
  def get_instances_data(self, state: DataStateEnum) -> Tuple[Dict[str, List[str]], Dict[str, str], Dict[str, str]]:
572
559
  """
573
560
  This Method get the data state and returns two dictionaries that holds the mapping of the sample ids to their
@@ -114,10 +114,6 @@ 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
-
121
117
  @abstractmethod
122
118
  def get_heatmap_visualizer_raw_vis_input_arg_name(self, visualizer_name: str) -> Optional[str]:
123
119
  pass
@@ -94,6 +94,10 @@ class MixpanelTracker:
94
94
  Args:
95
95
  event_properties: Optional additional properties to include in the event
96
96
  """
97
+
98
+ if os.environ.get('IS_TENSORLEAP_PLATFORM') == 'true':
99
+ return
100
+
97
101
  try:
98
102
  distinct_id = self._get_distinct_id()
99
103
 
@@ -106,6 +110,8 @@ class MixpanelTracker:
106
110
  '$device_id': device_id, # Always use device_id for $device_id
107
111
  'python_version': f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}",
108
112
  'platform': os.name,
113
+ 'code_loader_version': '1.0',
114
+ 'is_tensorleap_platform': os.environ.get('IS_TENSORLEAP_PLATFORM'),
109
115
  }
110
116
 
111
117
  if tensorleap_user_id:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.118.dev3"
3
+ version = "1.0.119.dev2"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"