code-loader 1.0.25__tar.gz → 1.0.26__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: code-loader
3
- Version: 1.0.25
3
+ Version: 1.0.26
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -5,7 +5,7 @@ import sys
5
5
  from contextlib import redirect_stdout
6
6
  from functools import lru_cache
7
7
  from pathlib import Path
8
- from typing import Dict, List, Iterable, Union
8
+ from typing import Dict, List, Iterable, Union, Any
9
9
 
10
10
  import numpy as np
11
11
  import numpy.typing as npt
@@ -301,7 +301,40 @@ class LeapLoader:
301
301
  def _get_gt(self, state: DataStateEnum, idx: int) -> Dict[str, npt.NDArray[np.float32]]:
302
302
  return self._get_dataset_handlers(global_leap_binder.setup_container.ground_truths, state, idx)
303
303
 
304
+ @lru_cache()
305
+ def _metadata_name_to_type(self) -> Dict[str, DatasetMetadataType]:
306
+ global_leap_binder.check_preprocess(self._preprocess_result())
307
+ handlers_test_payloads = self._check_handlers()
308
+ metadata_setup = self.get_dataset_setup_response(handlers_test_payloads).metadata
309
+ metadata_name_to_type = {
310
+ metadata_instance.name: metadata_instance.type
311
+ for metadata_instance in metadata_setup
312
+ }
313
+ return metadata_name_to_type
314
+
304
315
  def _get_metadata(self, state: DataStateEnum, idx: int) -> Dict[str, Union[str, int, bool, float]]:
316
+ def _convert_metadata_to_correct_type(metadata_name: str, value: Any) -> Any:
317
+ metadata_name_to_type = self._metadata_name_to_type()
318
+ metadata_type_to_python_type = {
319
+ DatasetMetadataType.float: float,
320
+ DatasetMetadataType.string: str,
321
+ DatasetMetadataType.boolean: bool,
322
+ DatasetMetadataType.int: int
323
+ }
324
+ metadata_type_to_default_value = {
325
+ DatasetMetadataType.float: -1,
326
+ DatasetMetadataType.string: "",
327
+ DatasetMetadataType.boolean: False,
328
+ DatasetMetadataType.int: -1
329
+ }
330
+
331
+ try:
332
+ converted_value = metadata_type_to_python_type[metadata_name_to_type[metadata_name]](value)
333
+ except ValueError:
334
+ converted_value = metadata_type_to_default_value[metadata_name_to_type[metadata_name]]
335
+
336
+ return converted_value
337
+
305
338
  result_agg = {}
306
339
  preprocess_result = self._preprocess_result()
307
340
  preprocess_state = preprocess_result[state]
@@ -310,9 +343,9 @@ class LeapLoader:
310
343
  if isinstance(handler_result, dict):
311
344
  for single_metadata_name, single_metadata_result in handler_result.items():
312
345
  handler_name = f'{handler.name}_{single_metadata_name}'
313
- result_agg[handler_name] = single_metadata_result
346
+ result_agg[handler_name] = _convert_metadata_to_correct_type(handler_name, single_metadata_result)
314
347
  else:
315
348
  handler_name = handler.name
316
- result_agg[handler_name] = handler_result
349
+ result_agg[handler_name] = _convert_metadata_to_correct_type(handler_name, handler_result)
317
350
 
318
351
  return result_agg
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.25"
3
+ version = "1.0.26"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"
File without changes
File without changes