code-loader 1.0.77.dev2__tar.gz → 1.0.77.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.
Files changed (31) hide show
  1. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/PKG-INFO +1 -1
  2. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/contract/datasetclasses.py +1 -0
  3. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/leaploader.py +18 -12
  4. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/pyproject.toml +1 -1
  5. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/LICENSE +0 -0
  6. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/README.md +0 -0
  7. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/__init__.py +0 -0
  8. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/contract/__init__.py +0 -0
  9. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/contract/enums.py +0 -0
  10. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/contract/exceptions.py +0 -0
  11. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/contract/responsedataclasses.py +0 -0
  12. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/contract/visualizer_classes.py +0 -0
  13. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/default_losses.py +0 -0
  14. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/default_metrics.py +0 -0
  15. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/__init__.py +0 -0
  16. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/api.py +0 -0
  17. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/cli_config_utils.py +0 -0
  18. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/client.py +0 -0
  19. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/epoch.py +0 -0
  20. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/experiment.py +0 -0
  21. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/experiment_context.py +0 -0
  22. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/types.py +0 -0
  23. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/utils.py +0 -0
  24. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  25. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/inner_leap_binder/__init__.py +0 -0
  26. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/inner_leap_binder/leapbinder.py +0 -0
  27. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/inner_leap_binder/leapbinder_decorators.py +0 -0
  28. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/leaploaderbase.py +0 -0
  29. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/utils.py +0 -0
  30. {code_loader-1.0.77.dev2 → code_loader-1.0.77.dev4}/code_loader/visualizers/__init__.py +0 -0
  31. {code_loader-1.0.77.dev2 → code_loader-1.0.77.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.77.dev2
3
+ Version: 1.0.77.dev4
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
@@ -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
@@ -443,7 +445,7 @@ class LeapLoader(LeapLoaderBase):
443
445
  }
444
446
  return metadata_name_to_type
445
447
 
446
- 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]:
447
449
  metadata_name_to_type = self._metadata_name_to_type()
448
450
  metadata_type_to_python_type = {
449
451
  DatasetMetadataType.float: float,
@@ -452,23 +454,26 @@ class LeapLoader(LeapLoaderBase):
452
454
  DatasetMetadataType.int: int
453
455
  }
454
456
  metadata_type_to_default_value = {
455
- DatasetMetadataType.float: np.nan,
457
+ DatasetMetadataType.float: -1.0,
456
458
  DatasetMetadataType.string: 'None',
457
- DatasetMetadataType.boolean: np.nan,
458
- DatasetMetadataType.int: np.nan
459
+ DatasetMetadataType.boolean: False,
460
+ DatasetMetadataType.int: -1
459
461
  }
460
462
 
461
463
  try:
464
+ is_none = False
462
465
  if value is None:
463
466
  raise ValueError()
464
467
  converted_value = metadata_type_to_python_type[metadata_name_to_type[metadata_name]](value)
465
468
  except ValueError:
469
+ is_none = True
466
470
  converted_value = metadata_type_to_default_value[metadata_name_to_type[metadata_name]]
467
471
 
468
- return converted_value
472
+ return converted_value, is_none
469
473
 
470
- def _get_metadata(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[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]]:
471
475
  result_agg = {}
476
+ is_none = {}
472
477
  preprocess_result = self._preprocess_result()
473
478
  preprocess_state = preprocess_result[state]
474
479
  for handler in global_leap_binder.setup_container.metadata:
@@ -476,13 +481,14 @@ class LeapLoader(LeapLoaderBase):
476
481
  if isinstance(handler_result, dict):
477
482
  for single_metadata_name, single_metadata_result in handler_result.items():
478
483
  handler_name = f'{handler.name}_{single_metadata_name}'
479
- result_agg[handler_name] = self._convert_metadata_to_correct_type(handler_name,
480
- single_metadata_result)
484
+ result_agg[handler_name], is_none[handler_name] = self._convert_metadata_to_correct_type(
485
+ handler_name, single_metadata_result)
481
486
  else:
482
487
  handler_name = handler.name
483
- 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, handler_result)
484
490
 
485
- return result_agg
491
+ return result_agg, is_none
486
492
 
487
493
  @lru_cache()
488
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.dev2"
3
+ version = "1.0.77.dev4"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"