code-loader 1.0.77.dev1__tar.gz → 1.0.77.dev3__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 (31) hide show
  1. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/PKG-INFO +1 -1
  2. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/contract/datasetclasses.py +1 -0
  3. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/inner_leap_binder/leapbinder.py +8 -1
  4. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/leaploader.py +25 -13
  5. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/pyproject.toml +1 -1
  6. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/LICENSE +0 -0
  7. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/README.md +0 -0
  8. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/__init__.py +0 -0
  9. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/contract/__init__.py +0 -0
  10. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/contract/enums.py +0 -0
  11. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/contract/exceptions.py +0 -0
  12. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/contract/responsedataclasses.py +0 -0
  13. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/contract/visualizer_classes.py +0 -0
  14. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/default_losses.py +0 -0
  15. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/default_metrics.py +0 -0
  16. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/__init__.py +0 -0
  17. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/api.py +0 -0
  18. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/cli_config_utils.py +0 -0
  19. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/client.py +0 -0
  20. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/epoch.py +0 -0
  21. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/experiment.py +0 -0
  22. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/experiment_context.py +0 -0
  23. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/types.py +0 -0
  24. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/utils.py +0 -0
  25. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  26. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/inner_leap_binder/__init__.py +0 -0
  27. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/inner_leap_binder/leapbinder_decorators.py +0 -0
  28. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/leaploaderbase.py +0 -0
  29. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/utils.py +0 -0
  30. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/code_loader/visualizers/__init__.py +0 -0
  31. {code_loader-1.0.77.dev1 → code_loader-1.0.77.dev3}/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.77.dev1
3
+ Version: 1.0.77.dev3
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -235,5 +235,6 @@ class DatasetSample:
235
235
  inputs: Dict[str, npt.NDArray[np.float32]]
236
236
  gt: Optional[Dict[str, npt.NDArray[np.float32]]]
237
237
  metadata: Dict[str, Union[Optional[str], int, bool, Optional[float]]]
238
+ metadata_is_none: Dict[str, bool]
238
239
  index: Union[int, str]
239
240
  state: DataStateEnum
@@ -466,7 +466,7 @@ class LeapBinder:
466
466
  @staticmethod
467
467
  def check_handler(
468
468
  preprocess_response: PreprocessResponse, test_result: List[DatasetTestResultPayload],
469
- dataset_base_handler: Union[DatasetBaseHandler, MetadataHandler]) -> List[DatasetTestResultPayload]:
469
+ dataset_base_handler: Union[DatasetBaseHandler, MetadataHandler], state: DataStateEnum) -> List[DatasetTestResultPayload]:
470
470
  assert preprocess_response.sample_ids is not None
471
471
  raw_result = dataset_base_handler.function(preprocess_response.sample_ids[0], preprocess_response)
472
472
  handler_type = 'metadata' if isinstance(dataset_base_handler, MetadataHandler) else None
@@ -481,6 +481,10 @@ class LeapBinder:
481
481
 
482
482
  metadata_type = None
483
483
  if single_metadata_result is None:
484
+ if state != DataStateEnum.training and test_result[i].name == f'{dataset_base_handler.name}_{single_metadata_name}':
485
+ metadata_test_result_payloads[i] = test_result[i]
486
+ continue
487
+
484
488
  if dataset_base_handler.metadata_type is None:
485
489
  raise Exception(f"Metadata {single_metadata_name} is None and no metadata type is provided")
486
490
  elif isinstance(dataset_base_handler.metadata_type, dict):
@@ -498,6 +502,9 @@ class LeapBinder:
498
502
  test_result = metadata_test_result_payloads
499
503
  else:
500
504
  if raw_result is None:
505
+ if state != DataStateEnum.training:
506
+ return test_result
507
+
501
508
  if dataset_base_handler.metadata_type is None:
502
509
  raise Exception(f"Metadata {dataset_base_handler.name} is None and no metadata type is provided")
503
510
  elif isinstance(dataset_base_handler.metadata_type, dict):
@@ -6,7 +6,7 @@ import sys
6
6
  from contextlib import redirect_stdout
7
7
  from functools import lru_cache
8
8
  from pathlib import Path
9
- from typing import Dict, List, Iterable, Union, Any, Type, Optional, Callable
9
+ from typing import Dict, List, Iterable, Union, Any, Type, Optional, Callable, Tuple
10
10
 
11
11
  import numpy as np
12
12
  import numpy.typing as npt
@@ -140,9 +140,11 @@ class LeapLoader(LeapLoaderBase):
140
140
  if state == DataStateEnum.unlabeled and sample_id not in preprocess_result[state].sample_ids:
141
141
  self._preprocess_result(update_unlabeled_preprocess=True)
142
142
 
143
+ metadata, metadata_is_none = self._get_metadata(state, sample_id)
143
144
  sample = DatasetSample(inputs=self._get_inputs(state, sample_id),
144
145
  gt=None if state == DataStateEnum.unlabeled else self._get_gt(state, sample_id),
145
- metadata=self._get_metadata(state, sample_id),
146
+ metadata=metadata,
147
+ metadata_is_none=metadata_is_none,
146
148
  index=sample_id,
147
149
  state=state)
148
150
  return sample
@@ -210,7 +212,7 @@ class LeapLoader(LeapLoaderBase):
210
212
  state_name = state.name
211
213
  try:
212
214
  test_result = global_leap_binder.check_handler(
213
- preprocess_response, test_result, dataset_base_handler)
215
+ preprocess_response, test_result, dataset_base_handler, state)
214
216
  except Exception as e:
215
217
  line_number, file_name, stacktrace = get_root_exception_file_and_line_number()
216
218
  test_result[0].display[
@@ -339,6 +341,11 @@ class LeapLoader(LeapLoaderBase):
339
341
  continue
340
342
  if hasattr(handler_test_payload.raw_result, 'tolist'):
341
343
  handler_test_payload.raw_result = handler_test_payload.raw_result.tolist()
344
+ if isinstance(handler_test_payload.raw_result, DatasetMetadataType):
345
+ dataset_metadata_type = handler_test_payload.raw_result
346
+ metadata_instances.append(DatasetMetadataInstance(name=handler_test_payload.name,
347
+ type=dataset_metadata_type))
348
+ continue
342
349
  metadata_type = type(handler_test_payload.raw_result)
343
350
  if metadata_type == int or isinstance(handler_test_payload.raw_result,
344
351
  (np.unsignedinteger, np.signedinteger)):
@@ -438,7 +445,7 @@ class LeapLoader(LeapLoaderBase):
438
445
  }
439
446
  return metadata_name_to_type
440
447
 
441
- def _convert_metadata_to_correct_type(self, metadata_name: str, value: Any) -> Any:
448
+ def _convert_metadata_to_correct_type(self, metadata_name: str, value: Any) -> Tuple[Any, bool]:
442
449
  metadata_name_to_type = self._metadata_name_to_type()
443
450
  metadata_type_to_python_type = {
444
451
  DatasetMetadataType.float: float,
@@ -447,22 +454,26 @@ class LeapLoader(LeapLoaderBase):
447
454
  DatasetMetadataType.int: int
448
455
  }
449
456
  metadata_type_to_default_value = {
450
- DatasetMetadataType.float: -1,
451
- DatasetMetadataType.string: "",
457
+ DatasetMetadataType.float: -1.0,
458
+ DatasetMetadataType.string: 'None',
452
459
  DatasetMetadataType.boolean: False,
453
460
  DatasetMetadataType.int: -1
454
461
  }
455
462
 
456
463
  try:
464
+ is_none = False
465
+ if value is None:
466
+ raise ValueError()
457
467
  converted_value = metadata_type_to_python_type[metadata_name_to_type[metadata_name]](value)
458
468
  except ValueError:
469
+ is_none = True
459
470
  converted_value = metadata_type_to_default_value[metadata_name_to_type[metadata_name]]
460
471
 
461
- return converted_value
472
+ return converted_value, is_none
462
473
 
463
- def _get_metadata(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[
464
- str, Union[str, int, bool, float]]:
474
+ def _get_metadata(self, state: DataStateEnum, sample_id: Union[int, str]) -> Tuple[Dict[str, Union[str, int, bool, float]], Dict[str, bool]]:
465
475
  result_agg = {}
476
+ is_none = {}
466
477
  preprocess_result = self._preprocess_result()
467
478
  preprocess_state = preprocess_result[state]
468
479
  for handler in global_leap_binder.setup_container.metadata:
@@ -470,13 +481,14 @@ class LeapLoader(LeapLoaderBase):
470
481
  if isinstance(handler_result, dict):
471
482
  for single_metadata_name, single_metadata_result in handler_result.items():
472
483
  handler_name = f'{handler.name}_{single_metadata_name}'
473
- result_agg[handler_name] = self._convert_metadata_to_correct_type(handler_name,
474
- single_metadata_result)
484
+ result_agg[handler_name], is_none[handler_name] = self._convert_metadata_to_correct_type(
485
+ handler_name, single_metadata_result)
475
486
  else:
476
487
  handler_name = handler.name
477
- result_agg[handler_name] = self._convert_metadata_to_correct_type(handler_name, handler_result)
488
+ result_agg[handler_name], is_none[handler_name] = self._convert_metadata_to_correct_type(
489
+ handler_name, single_metadata_result)
478
490
 
479
- return result_agg
491
+ return result_agg, is_none
480
492
 
481
493
  @lru_cache()
482
494
  def get_sample_id_type(self) -> Type:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.77.dev1"
3
+ version = "1.0.77.dev3"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"