code-loader 1.0.166.dev1__tar.gz → 1.0.168__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 (36) hide show
  1. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/PKG-INFO +1 -1
  2. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/inner_leap_binder/leapbinder_decorators.py +14 -14
  3. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/pyproject.toml +1 -1
  4. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/LICENSE +0 -0
  5. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/README.md +0 -0
  6. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/__init__.py +0 -0
  7. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/contract/__init__.py +0 -0
  8. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/contract/datasetclasses.py +0 -0
  9. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/contract/enums.py +0 -0
  10. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/contract/exceptions.py +0 -0
  11. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/contract/mapping.py +0 -0
  12. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/contract/responsedataclasses.py +0 -0
  13. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/contract/visualizer_classes.py +0 -0
  14. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/default_losses.py +0 -0
  15. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/default_metrics.py +0 -0
  16. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/__init__.py +0 -0
  17. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/api.py +0 -0
  18. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/cli_config_utils.py +0 -0
  19. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/client.py +0 -0
  20. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/epoch.py +0 -0
  21. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/experiment.py +0 -0
  22. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/experiment_context.py +0 -0
  23. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/types.py +0 -0
  24. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/utils.py +0 -0
  25. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
  26. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/inner_leap_binder/__init__.py +0 -0
  27. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/inner_leap_binder/leapbinder.py +0 -0
  28. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/leaploader.py +0 -0
  29. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/leaploaderbase.py +0 -0
  30. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/mixpanel_tracker.py +0 -0
  31. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/plot_functions/__init__.py +0 -0
  32. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/plot_functions/plot_functions.py +0 -0
  33. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/plot_functions/visualize.py +0 -0
  34. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/utils.py +0 -0
  35. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/code_loader/visualizers/__init__.py +0 -0
  36. {code_loader-1.0.166.dev1 → code_loader-1.0.168}/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.166.dev1
3
+ Version: 1.0.168
4
4
  Summary:
5
5
  Home-page: https://github.com/tensorleap/code-loader
6
6
  License: MIT
@@ -413,6 +413,10 @@ def tensorleap_load_model(prediction_types: Optional[List[PredictionTypeHandler]
413
413
  f"Expected input names: {[i.name for i in self.model.get_inputs()]}"
414
414
  )
415
415
 
416
+ missing = [n for n in meta if n not in float_arrays_inputs]
417
+ if missing:
418
+ raise KeyError(f"Missing required input(s): {sorted(missing)}")
419
+
416
420
  onnx_input_order = [i.name for i in self.model.get_inputs()]
417
421
  provided_order = list(float_arrays_inputs.keys())
418
422
  if provided_order != onnx_input_order:
@@ -430,17 +434,11 @@ def tensorleap_load_model(prediction_types: Optional[List[PredictionTypeHandler]
430
434
  if want_dtype is None:
431
435
  raise TypeError(f"Unsupported ONNX input type: {onnx_type}")
432
436
 
433
- # Cast dtype if needed
434
437
  if arr.dtype != want_dtype:
435
438
  arr = arr.astype(want_dtype, copy=False)
436
439
 
437
440
  coerced[name] = arr
438
441
 
439
- # Verify required inputs are present
440
- missing = [n for n in meta if n not in coerced]
441
- if missing:
442
- raise KeyError(f"Missing required input(s): {sorted(missing)}")
443
-
444
442
  return coerced
445
443
 
446
444
  # onnx runtime interface
@@ -1078,10 +1076,16 @@ def tensorleap_preprocess():
1078
1076
  else f"{user_function.__name__}() validation failed: expected to return a single list[{PreprocessResponse.__name__}] object, "
1079
1077
  f"but returned {len(result)} objects instead."
1080
1078
  )
1079
+ assert len(result) >= 2, \
1080
+ (f'{user_function.__name__}() validation failed: '
1081
+ f'Expected at least 2 PreprocessResponse objects (training and validation), but got {len(result)}.')
1081
1082
  for i, response in enumerate(result):
1082
1083
  assert isinstance(response, PreprocessResponse), \
1083
1084
  (f'{user_function.__name__}() validation failed: '
1084
1085
  f'Element #{i} in the return list should be a PreprocessResponse. Got {type(response)}.')
1086
+ assert len(response) > 0, \
1087
+ (f'{user_function.__name__}() validation failed: '
1088
+ f'PreprocessResponse #{i} has length 0. Each PreprocessResponse must have at least one sample.')
1085
1089
  assert len(set(result)) == len(result), \
1086
1090
  (f'{user_function.__name__}() validation failed: '
1087
1091
  f'The return list should not contain duplicate PreprocessResponse objects.')
@@ -1650,8 +1654,8 @@ def tensorleap_status_table():
1650
1654
  code_mapping_failure = [0]
1651
1655
 
1652
1656
  table = [
1653
- {"name": "tensorleap_preprocess", "Added to integration": UNKNOWN},
1654
1657
  {"name": "tensorleap_integration_test", "Added to integration": UNKNOWN},
1658
+ {"name": "tensorleap_preprocess", "Added to integration": UNKNOWN},
1655
1659
  {"name": "tensorleap_input_encoder", "Added to integration": UNKNOWN},
1656
1660
  {"name": "tensorleap_gt_encoder", "Added to integration": UNKNOWN},
1657
1661
  {"name": "tensorleap_load_model", "Added to integration": UNKNOWN},
@@ -1735,12 +1739,8 @@ def tensorleap_status_table():
1735
1739
  mandatory_ready_mess = "\nAll mandatory parts have been successfully set. If no errors accured, you can now push the project to the Tensorleap system or continue to the next optional reccomeded interface,adding: "
1736
1740
  code_mapping_failure_mes = "Tensorleap_integration_test code flow failed, check raised exception."
1737
1741
 
1738
- # Sort table: CHECK first, then CROSS, then UNKNOWN
1739
- status_order = {CHECK: 0, CROSS: 1, UNKNOWN: 2}
1740
- sorted_table = sorted(table, key=lambda row: status_order.get(row["Added to integration"], 3))
1741
-
1742
- name_width = max(len(row["name"]) for row in sorted_table)
1743
- status_width = max(len(row["Added to integration"]) for row in sorted_table)
1742
+ name_width = max(len(row["name"]) for row in table)
1743
+ status_width = max(len(row["Added to integration"]) for row in table)
1744
1744
 
1745
1745
  header = f"{'Decorator Name'.ljust(name_width)} | {'Added to integration'.ljust(status_width)}"
1746
1746
  sep = "-" * len(header)
@@ -1748,7 +1748,7 @@ def tensorleap_status_table():
1748
1748
  print("\n" + header)
1749
1749
  print(sep)
1750
1750
 
1751
- for row in sorted_table:
1751
+ for row in table:
1752
1752
  print(f"{row['name'].ljust(name_width)} | {row['Added to integration'].ljust(status_width)}")
1753
1753
 
1754
1754
  # Determine next_step based on original table order (recommended integration order)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "code-loader"
3
- version = "1.0.166.dev1"
3
+ version = "1.0.168"
4
4
  description = ""
5
5
  authors = ["dorhar <doron.harnoy@tensorleap.ai>"]
6
6
  license = "MIT"