code-loader 1.0.91.dev5__tar.gz → 1.0.91.dev7__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 (32) hide show
  1. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/PKG-INFO +1 -1
  2. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/contract/datasetclasses.py +2 -0
  3. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/inner_leap_binder/leapbinder_decorators.py +21 -14
  4. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/leaploader.py +13 -2
  5. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/utils.py +0 -2
  6. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/pyproject.toml +1 -1
  7. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/LICENSE +0 -0
  8. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/README.md +0 -0
  9. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/__init__.py +0 -0
  10. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/contract/__init__.py +0 -0
  11. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/contract/enums.py +0 -0
  12. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/contract/exceptions.py +0 -0
  13. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/contract/mapping.py +0 -0
  14. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/contract/responsedataclasses.py +0 -0
  15. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/contract/visualizer_classes.py +0 -0
  16. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/default_losses.py +0 -0
  17. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/default_metrics.py +0 -0
  18. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/__init__.py +0 -0
  19. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/api.py +0 -0
  20. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/cli_config_utils.py +0 -0
  21. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/client.py +0 -0
  22. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/epoch.py +0 -0
  23. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/experiment.py +0 -0
  24. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/experiment_context.py +0 -0
  25. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/types.py +0 -0
  26. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/utils.py +0 -0
  27. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  28. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/inner_leap_binder/__init__.py +0 -0
  29. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/inner_leap_binder/leapbinder.py +0 -0
  30. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/leaploaderbase.py +0 -0
  31. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/code_loader/visualizers/__init__.py +0 -0
  32. {code_loader-1.0.91.dev5 → code_loader-1.0.91.dev7}/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.91.dev5
3
+ Version: 1.0.91.dev7
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -248,3 +248,5 @@ class DatasetSample:
248
248
  metadata_is_none: Dict[str, bool]
249
249
  index: Union[int, str]
250
250
  state: DataStateEnum
251
+ instance_masks: Optional[Dict[str, List[npt.NDArray[np.float32]]]] = None
252
+
@@ -8,7 +8,7 @@ import numpy.typing as npt
8
8
  from code_loader.contract.datasetclasses import CustomCallableInterfaceMultiArgs, \
9
9
  CustomMultipleReturnCallableInterfaceMultiArgs, ConfusionMatrixCallableInterfaceMultiArgs, CustomCallableInterface, \
10
10
  VisualizerCallableInterface, MetadataSectionCallableInterface, PreprocessResponse, SectionCallableInterface, \
11
- ConfusionMatrixElement, SamplePreprocessResponse
11
+ ConfusionMatrixElement, SamplePreprocessResponse, InstanceCallableInterface
12
12
  from code_loader.contract.enums import MetricDirection, LeapDataType, DatasetMetadataType
13
13
  from code_loader import leap_binder
14
14
  from code_loader.contract.mapping import NodeMapping, NodeMappingType, NodeConnection
@@ -347,23 +347,30 @@ def tensorleap_unlabeled_preprocess():
347
347
  return decorating_function
348
348
 
349
349
 
350
- def tensorleap_instance_encoder():
351
- def decorating_function(user_function: Callable[[], PreprocessResponse]):
352
- leap_binder.set_unlabeled_data_preprocess(user_function)
350
+ def tensorleap_instances_masks_encoder(name: str):
351
+ def decorating_function(user_function: InstanceCallableInterface):
352
+ leap_binder.set_instance_masks(user_function, name)
353
353
 
354
- def _validate_input_args(*args, **kwargs):
355
- assert len(args) == 0 and len(kwargs) == 0, \
356
- (f'tensorleap_instance_encoder validation failed: '
357
- f'The function should not take any arguments. Got {args} and {kwargs}.')
354
+ def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
355
+ assert isinstance(sample_id, (int, str)), \
356
+ (f'tensorleap_input_encoder validation failed: '
357
+ f'Argument sample_id should be either int or str. Got {type(sample_id)}.')
358
+ assert isinstance(preprocess_response, PreprocessResponse), \
359
+ (f'tensorleap_input_encoder validation failed: '
360
+ f'Argument preprocess_response should be a PreprocessResponse. Got {type(preprocess_response)}.')
361
+ assert type(sample_id) == preprocess_response.sample_id_type, \
362
+ (f'tensorleap_input_encoder validation failed: '
363
+ f'Argument sample_id should be as the same type as defined in the preprocess response '
364
+ f'{preprocess_response.sample_id_type}. Got {type(sample_id)}.')
358
365
 
359
366
  def _validate_result(result):
360
- assert isinstance(result, PreprocessResponse), \
361
- (f'tensorleap_instance_encoder validation failed: '
362
- f'The return type should be a PreprocessResponse. Got {type(result)}.')
367
+ assert isinstance(result, list), \
368
+ (f'tensorleap_input_encoder validation failed: '
369
+ f'Unsupported return type. Should be a numpy array. Got {type(result)}.')
363
370
 
364
- def inner(*args, **kwargs):
365
- _validate_input_args(*args, **kwargs)
366
- result = user_function()
371
+ def inner(sample_id, preprocess_response):
372
+ _validate_input_args(sample_id, preprocess_response)
373
+ result = user_function(sample_id, preprocess_response)
367
374
  _validate_result(result)
368
375
  return result
369
376
 
@@ -150,7 +150,7 @@ class LeapLoader(LeapLoaderBase):
150
150
  state=state)
151
151
  return sample
152
152
 
153
- def get_sample_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> List[DatasetSample]:
153
+ def get_sample_with_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> DatasetSample:
154
154
  self.exec_script()
155
155
  preprocess_result = self._preprocess_result()
156
156
  if state == DataStateEnum.unlabeled and sample_id not in preprocess_result[state].sample_ids:
@@ -162,7 +162,8 @@ class LeapLoader(LeapLoaderBase):
162
162
  metadata=metadata,
163
163
  metadata_is_none=metadata_is_none,
164
164
  index=sample_id,
165
- state=state)
165
+ state=state,
166
+ instance_masks=self._get_masks(state, sample_id))
166
167
  return sample
167
168
 
168
169
  def check_dataset(self) -> DatasetIntegParseResult:
@@ -452,6 +453,16 @@ class LeapLoader(LeapLoaderBase):
452
453
  def _get_inputs(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[str, npt.NDArray[np.float32]]:
453
454
  return self._get_dataset_handlers(global_leap_binder.setup_container.inputs, state, sample_id)
454
455
 
456
+ def _get_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[str, List[npt.NDArray[np.float32]]]:
457
+ preprocess_result = self._preprocess_result()
458
+ preprocess_state = preprocess_result[state]
459
+ result_agg = {}
460
+ for handler in global_leap_binder.setup_container.instance_masks:
461
+ handler_result = handler.function(sample_id, preprocess_state)
462
+ handler_name = handler.name
463
+ result_agg[handler_name] = handler_result
464
+ return result_agg
465
+
455
466
  def _get_gt(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[str, npt.NDArray[np.float32]]:
456
467
  return self._get_dataset_handlers(global_leap_binder.setup_container.ground_truths, state, sample_id)
457
468
 
@@ -5,8 +5,6 @@ from typing import List, Union, Tuple, Any, Callable
5
5
  import traceback
6
6
  import numpy as np
7
7
  import numpy.typing as npt
8
- from numpy import ndarray, dtype, floating
9
- from numpy._typing import _32Bit
10
8
 
11
9
  from code_loader.contract.datasetclasses import SectionCallableInterface, PreprocessResponse, \
12
10
  InstanceCallableInterface
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.91.dev5"
3
+ version = "1.0.91.dev7"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"