code-loader 1.0.119rc1__py3-none-any.whl → 1.0.120__py3-none-any.whl
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.
Potentially problematic release.
This version of code-loader might be problematic. Click here for more details.
- code_loader/contract/datasetclasses.py +7 -0
- code_loader/inner_leap_binder/leapbinder.py +14 -1
- code_loader/inner_leap_binder/leapbinder_decorators.py +90 -13
- code_loader/leaploader.py +22 -7
- code_loader/leaploaderbase.py +4 -0
- code_loader/mixpanel_tracker.py +0 -5
- code_loader-1.0.120.dist-info/LICENSE +21 -0
- {code_loader-1.0.119rc1.dist-info → code_loader-1.0.120.dist-info}/METADATA +3 -3
- {code_loader-1.0.119rc1.dist-info → code_loader-1.0.120.dist-info}/RECORD +11 -10
- {code_loader-1.0.119rc1.dist-info → code_loader-1.0.120.dist-info}/WHEEL +1 -1
- /code_loader-1.0.119rc1.dist-info/LICENSE → /LICENSE +0 -0
|
@@ -212,6 +212,11 @@ class MetadataHandler:
|
|
|
212
212
|
metadata_type: Optional[Union[DatasetMetadataType, Dict[str, DatasetMetadataType]]] = None
|
|
213
213
|
|
|
214
214
|
|
|
215
|
+
@dataclass
|
|
216
|
+
class CustomLatentSpaceHandler:
|
|
217
|
+
function: SectionCallableInterface
|
|
218
|
+
name: str = 'custom_latent_space'
|
|
219
|
+
|
|
215
220
|
@dataclass
|
|
216
221
|
class PredictionTypeHandler:
|
|
217
222
|
name: str
|
|
@@ -241,6 +246,7 @@ class DatasetIntegrationSetup:
|
|
|
241
246
|
custom_loss_handlers: List[CustomLossHandler] = field(default_factory=list)
|
|
242
247
|
metrics: List[MetricHandler] = field(default_factory=list)
|
|
243
248
|
custom_layers: Dict[str, CustomLayerHandler] = field(default_factory=dict)
|
|
249
|
+
custom_latent_space: Optional[CustomLatentSpaceHandler] = None
|
|
244
250
|
|
|
245
251
|
|
|
246
252
|
@dataclass
|
|
@@ -252,4 +258,5 @@ class DatasetSample:
|
|
|
252
258
|
index: Union[int, str]
|
|
253
259
|
state: DataStateEnum
|
|
254
260
|
instance_masks: Optional[Dict[str, List[ElementInstance]]] = None
|
|
261
|
+
custom_latent_space: Optional[npt.NDArray[np.float32]] = None
|
|
255
262
|
|
|
@@ -11,7 +11,7 @@ from code_loader.contract.datasetclasses import SectionCallableInterface, InputH
|
|
|
11
11
|
CustomCallableInterfaceMultiArgs, ConfusionMatrixCallableInterfaceMultiArgs, LeapData, \
|
|
12
12
|
CustomMultipleReturnCallableInterfaceMultiArgs, DatasetBaseHandler, custom_latent_space_attribute, \
|
|
13
13
|
RawInputsForHeatmap, VisualizerHandlerData, MetricHandlerData, CustomLossHandlerData, SamplePreprocessResponse, \
|
|
14
|
-
ElementInstanceMasksHandler, InstanceCallableInterface
|
|
14
|
+
ElementInstanceMasksHandler, InstanceCallableInterface, CustomLatentSpaceHandler
|
|
15
15
|
from code_loader.contract.enums import LeapDataType, DataStateEnum, DataStateType, MetricDirection, DatasetMetadataType
|
|
16
16
|
from code_loader.contract.mapping import NodeConnection, NodeMapping, NodeMappingType
|
|
17
17
|
from code_loader.contract.responsedataclasses import DatasetTestResultPayload
|
|
@@ -421,6 +421,19 @@ class LeapBinder:
|
|
|
421
421
|
"""
|
|
422
422
|
self.setup_container.metadata.append(MetadataHandler(name, function, metadata_type))
|
|
423
423
|
|
|
424
|
+
def set_custom_latent_space(self, function: SectionCallableInterface) -> None:
|
|
425
|
+
"""
|
|
426
|
+
Set a custom latent space function.
|
|
427
|
+
|
|
428
|
+
Args:
|
|
429
|
+
function (SectionCallableInterface): The metadata handler function.
|
|
430
|
+
This function receives:
|
|
431
|
+
subset (PreprocessResponse): The subset of the data.
|
|
432
|
+
index (int): The index of the sample within the subset.
|
|
433
|
+
This function should numpy float32 array contains the latent space vec of the sample.
|
|
434
|
+
"""
|
|
435
|
+
self.setup_container.custom_latent_space = CustomLatentSpaceHandler(function)
|
|
436
|
+
|
|
424
437
|
def set_custom_layer(self, custom_layer: Type[Any], name: str, inspect_layer: bool = False,
|
|
425
438
|
kernel_index: Optional[int] = None, use_custom_latent_space: bool = False) -> None:
|
|
426
439
|
"""
|
|
@@ -443,6 +443,55 @@ def tensorleap_metadata(
|
|
|
443
443
|
return decorating_function
|
|
444
444
|
|
|
445
445
|
|
|
446
|
+
|
|
447
|
+
def tensorleap_custom_latent_space():
|
|
448
|
+
def decorating_function(user_function: SectionCallableInterface):
|
|
449
|
+
def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
|
|
450
|
+
assert isinstance(sample_id, (int, str)), \
|
|
451
|
+
(f'tensorleap_custom_latent_space validation failed: '
|
|
452
|
+
f'Argument sample_id should be either int or str. Got {type(sample_id)}.')
|
|
453
|
+
assert isinstance(preprocess_response, PreprocessResponse), \
|
|
454
|
+
(f'tensorleap_custom_latent_space validation failed: '
|
|
455
|
+
f'Argument preprocess_response should be a PreprocessResponse. Got {type(preprocess_response)}.')
|
|
456
|
+
assert type(sample_id) == preprocess_response.sample_id_type, \
|
|
457
|
+
(f'tensorleap_custom_latent_space validation failed: '
|
|
458
|
+
f'Argument sample_id should be as the same type as defined in the preprocess response '
|
|
459
|
+
f'{preprocess_response.sample_id_type}. Got {type(sample_id)}.')
|
|
460
|
+
|
|
461
|
+
def _validate_result(result):
|
|
462
|
+
assert isinstance(result, np.ndarray), \
|
|
463
|
+
(f'tensorleap_custom_loss validation failed: '
|
|
464
|
+
f'The return type should be a numpy array. Got {type(result)}.')
|
|
465
|
+
|
|
466
|
+
def inner_without_validate(sample_id, preprocess_response):
|
|
467
|
+
global _called_from_inside_tl_decorator
|
|
468
|
+
_called_from_inside_tl_decorator += 1
|
|
469
|
+
|
|
470
|
+
try:
|
|
471
|
+
result = user_function(sample_id, preprocess_response)
|
|
472
|
+
finally:
|
|
473
|
+
_called_from_inside_tl_decorator -= 1
|
|
474
|
+
|
|
475
|
+
return result
|
|
476
|
+
|
|
477
|
+
leap_binder.set_custom_latent_space(inner_without_validate)
|
|
478
|
+
|
|
479
|
+
def inner(sample_id, preprocess_response):
|
|
480
|
+
if os.environ.get(mapping_runtime_mode_env_var_mame):
|
|
481
|
+
return None
|
|
482
|
+
|
|
483
|
+
_validate_input_args(sample_id, preprocess_response)
|
|
484
|
+
|
|
485
|
+
result = inner_without_validate(sample_id, preprocess_response)
|
|
486
|
+
|
|
487
|
+
_validate_result(result)
|
|
488
|
+
return result
|
|
489
|
+
|
|
490
|
+
return inner
|
|
491
|
+
|
|
492
|
+
return decorating_function
|
|
493
|
+
|
|
494
|
+
|
|
446
495
|
def tensorleap_preprocess():
|
|
447
496
|
def decorating_function(user_function: Callable[[], List[PreprocessResponse]]):
|
|
448
497
|
leap_binder.set_preprocess(user_function)
|
|
@@ -626,8 +675,6 @@ def tensorleap_input_encoder(name: str, channel_dim=-1, model_input_index=None):
|
|
|
626
675
|
if channel_dim <= 0 and channel_dim != -1:
|
|
627
676
|
raise Exception(f"Channel dim for input {name} is expected to be either -1 or positive")
|
|
628
677
|
|
|
629
|
-
leap_binder.set_input(user_function, name, channel_dim=channel_dim)
|
|
630
|
-
|
|
631
678
|
def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
|
|
632
679
|
assert isinstance(sample_id, (int, str)), \
|
|
633
680
|
(f'tensorleap_input_encoder validation failed: '
|
|
@@ -650,15 +697,35 @@ def tensorleap_input_encoder(name: str, channel_dim=-1, model_input_index=None):
|
|
|
650
697
|
assert channel_dim - 1 <= len(result.shape), (f'tensorleap_input_encoder validation failed: '
|
|
651
698
|
f'The channel_dim ({channel_dim}) should be <= to the rank of the resulting input rank ({len(result.shape)}).')
|
|
652
699
|
|
|
700
|
+
def inner_without_validate(sample_id, preprocess_response):
|
|
701
|
+
|
|
702
|
+
global _called_from_inside_tl_decorator
|
|
703
|
+
_called_from_inside_tl_decorator += 1
|
|
704
|
+
|
|
705
|
+
try:
|
|
706
|
+
result = user_function(sample_id, preprocess_response)
|
|
707
|
+
finally:
|
|
708
|
+
_called_from_inside_tl_decorator -= 1
|
|
709
|
+
|
|
710
|
+
return result
|
|
711
|
+
|
|
712
|
+
leap_binder.set_input(inner_without_validate, name, channel_dim=channel_dim)
|
|
713
|
+
|
|
714
|
+
|
|
653
715
|
def inner(sample_id, preprocess_response):
|
|
654
716
|
_validate_input_args(sample_id, preprocess_response)
|
|
655
|
-
|
|
717
|
+
|
|
718
|
+
result = inner_without_validate(sample_id, preprocess_response)
|
|
719
|
+
|
|
656
720
|
_validate_result(result)
|
|
657
721
|
|
|
658
722
|
if _called_from_inside_tl_decorator == 0:
|
|
659
723
|
result = np.expand_dims(result, axis=0)
|
|
724
|
+
|
|
660
725
|
return result
|
|
661
726
|
|
|
727
|
+
|
|
728
|
+
|
|
662
729
|
node_mapping_type = NodeMappingType.Input
|
|
663
730
|
if model_input_index is not None:
|
|
664
731
|
node_mapping_type = NodeMappingType(f'Input{str(model_input_index)}')
|
|
@@ -695,8 +762,6 @@ def tensorleap_gt_encoder(name: str):
|
|
|
695
762
|
raise Exception(f'GT with name {name} already exists. '
|
|
696
763
|
f'Please choose another')
|
|
697
764
|
|
|
698
|
-
leap_binder.set_ground_truth(user_function, name)
|
|
699
|
-
|
|
700
765
|
def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
|
|
701
766
|
assert isinstance(sample_id, (int, str)), \
|
|
702
767
|
(f'tensorleap_gt_encoder validation failed: '
|
|
@@ -717,13 +782,30 @@ def tensorleap_gt_encoder(name: str):
|
|
|
717
782
|
(f'tensorleap_gt_encoder validation failed: '
|
|
718
783
|
f'The return type should be a numpy array of type float32. Got {result.dtype}.')
|
|
719
784
|
|
|
785
|
+
def inner_without_validate(sample_id, preprocess_response):
|
|
786
|
+
global _called_from_inside_tl_decorator
|
|
787
|
+
_called_from_inside_tl_decorator += 1
|
|
788
|
+
|
|
789
|
+
try:
|
|
790
|
+
result = user_function(sample_id, preprocess_response)
|
|
791
|
+
finally:
|
|
792
|
+
_called_from_inside_tl_decorator -= 1
|
|
793
|
+
|
|
794
|
+
return result
|
|
795
|
+
|
|
796
|
+
leap_binder.set_ground_truth(inner_without_validate, name)
|
|
797
|
+
|
|
798
|
+
|
|
720
799
|
def inner(sample_id, preprocess_response):
|
|
721
800
|
_validate_input_args(sample_id, preprocess_response)
|
|
722
|
-
|
|
801
|
+
|
|
802
|
+
result = inner_without_validate(sample_id, preprocess_response)
|
|
803
|
+
|
|
723
804
|
_validate_result(result)
|
|
724
805
|
|
|
725
806
|
if _called_from_inside_tl_decorator == 0:
|
|
726
807
|
result = np.expand_dims(result, axis=0)
|
|
808
|
+
|
|
727
809
|
return result
|
|
728
810
|
|
|
729
811
|
inner.node_mapping = NodeMapping(name, NodeMappingType.GroundTruth)
|
|
@@ -760,14 +842,8 @@ def tensorleap_custom_loss(name: str, connects_to=None):
|
|
|
760
842
|
f'Please choose another')
|
|
761
843
|
|
|
762
844
|
valid_types = (np.ndarray, SamplePreprocessResponse)
|
|
763
|
-
try:
|
|
764
|
-
import tensorflow as tf
|
|
765
|
-
valid_types = (np.ndarray, SamplePreprocessResponse, tf.Tensor)
|
|
766
|
-
except ImportError:
|
|
767
|
-
pass
|
|
768
845
|
|
|
769
846
|
def _validate_input_args(*args, **kwargs):
|
|
770
|
-
|
|
771
847
|
for i, arg in enumerate(args):
|
|
772
848
|
if isinstance(arg, list):
|
|
773
849
|
for y, elem in enumerate(arg):
|
|
@@ -786,10 +862,11 @@ def tensorleap_custom_loss(name: str, connects_to=None):
|
|
|
786
862
|
f'Argument #{_arg_name} should be a numpy array. Got {type(arg)}.')
|
|
787
863
|
|
|
788
864
|
def _validate_result(result):
|
|
789
|
-
assert isinstance(result,
|
|
865
|
+
assert isinstance(result, np.ndarray), \
|
|
790
866
|
(f'tensorleap_custom_loss validation failed: '
|
|
791
867
|
f'The return type should be a numpy array. Got {type(result)}.')
|
|
792
868
|
|
|
869
|
+
|
|
793
870
|
@functools.wraps(user_function)
|
|
794
871
|
def inner_without_validate(*args, **kwargs):
|
|
795
872
|
global _called_from_inside_tl_decorator
|
code_loader/leaploader.py
CHANGED
|
@@ -16,7 +16,7 @@ from code_loader.contract.datasetclasses import DatasetSample, DatasetBaseHandle
|
|
|
16
16
|
PreprocessResponse, VisualizerHandler, LeapData, \
|
|
17
17
|
PredictionTypeHandler, MetadataHandler, CustomLayerHandler, MetricHandler, VisualizerHandlerData, MetricHandlerData, \
|
|
18
18
|
MetricCallableReturnType, CustomLossHandlerData, CustomLossHandler, RawInputsForHeatmap, SamplePreprocessResponse, \
|
|
19
|
-
ElementInstance
|
|
19
|
+
ElementInstance, custom_latent_space_attribute
|
|
20
20
|
from code_loader.contract.enums import DataStateEnum, TestingSectionEnum, DataStateType, DatasetMetadataType
|
|
21
21
|
from code_loader.contract.exceptions import DatasetScriptException
|
|
22
22
|
from code_loader.contract.responsedataclasses import DatasetIntegParseResult, DatasetTestResultPayload, \
|
|
@@ -34,7 +34,7 @@ class LeapLoader(LeapLoaderBase):
|
|
|
34
34
|
super().__init__(code_path, code_entry_name)
|
|
35
35
|
|
|
36
36
|
self._preprocess_result_cached = None
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
try:
|
|
39
39
|
from code_loader.mixpanel_tracker import track_code_loader_loaded
|
|
40
40
|
track_code_loader_loaded({
|
|
@@ -77,6 +77,8 @@ class LeapLoader(LeapLoaderBase):
|
|
|
77
77
|
file_path = Path(self.code_path, self.code_entry_name)
|
|
78
78
|
append_path_recursively(str(file_path))
|
|
79
79
|
|
|
80
|
+
importlib.invalidate_caches()
|
|
81
|
+
|
|
80
82
|
spec = importlib.util.spec_from_file_location(self.code_path, file_path)
|
|
81
83
|
if spec is None or spec.loader is None:
|
|
82
84
|
raise DatasetScriptException(f'Something is went wrong with spec file from: {file_path}')
|
|
@@ -162,12 +164,20 @@ class LeapLoader(LeapLoaderBase):
|
|
|
162
164
|
self._preprocess_result(update_unlabeled_preprocess=True)
|
|
163
165
|
|
|
164
166
|
metadata, metadata_is_none = self._get_metadata(state, sample_id)
|
|
167
|
+
|
|
168
|
+
custom_latent_space = None
|
|
169
|
+
if global_leap_binder.setup_container.custom_latent_space is not None:
|
|
170
|
+
custom_latent_space = global_leap_binder.setup_container.custom_latent_space.function(sample_id,
|
|
171
|
+
preprocess_result[
|
|
172
|
+
state])
|
|
173
|
+
|
|
165
174
|
sample = DatasetSample(inputs=self._get_inputs(state, sample_id),
|
|
166
175
|
gt=None if state == DataStateEnum.unlabeled else self._get_gt(state, sample_id),
|
|
167
176
|
metadata=metadata,
|
|
168
177
|
metadata_is_none=metadata_is_none,
|
|
169
178
|
index=sample_id,
|
|
170
|
-
state=state
|
|
179
|
+
state=state,
|
|
180
|
+
custom_latent_space=custom_latent_space)
|
|
171
181
|
return sample
|
|
172
182
|
|
|
173
183
|
def get_sample_with_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> DatasetSample:
|
|
@@ -210,8 +220,6 @@ class LeapLoader(LeapLoaderBase):
|
|
|
210
220
|
general_error = f"Something went wrong. {repr(e.__cause__)} in file {file_name}, line_number: {line_number}\nStacktrace:\n{stacktrace}"
|
|
211
221
|
is_valid = False
|
|
212
222
|
|
|
213
|
-
|
|
214
|
-
|
|
215
223
|
print_log = stdout_steam.getvalue()
|
|
216
224
|
is_valid_for_model = bool(global_leap_binder.setup_container.custom_layers)
|
|
217
225
|
model_setup = self.get_model_setup_response()
|
|
@@ -476,7 +484,8 @@ class LeapLoader(LeapLoaderBase):
|
|
|
476
484
|
def _get_inputs(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[str, npt.NDArray[np.float32]]:
|
|
477
485
|
return self._get_dataset_handlers(global_leap_binder.setup_container.inputs, state, sample_id)
|
|
478
486
|
|
|
479
|
-
def _get_instances_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[
|
|
487
|
+
def _get_instances_masks(self, state: DataStateEnum, sample_id: Union[int, str]) -> Dict[
|
|
488
|
+
str, List[ElementInstance]]:
|
|
480
489
|
preprocess_result = self._preprocess_result()
|
|
481
490
|
preprocess_state = preprocess_result[state]
|
|
482
491
|
result_agg = {}
|
|
@@ -526,7 +535,8 @@ class LeapLoader(LeapLoaderBase):
|
|
|
526
535
|
|
|
527
536
|
return converted_value, is_none
|
|
528
537
|
|
|
529
|
-
def _get_metadata(self, state: DataStateEnum, sample_id: Union[int, str]) -> Tuple[
|
|
538
|
+
def _get_metadata(self, state: DataStateEnum, sample_id: Union[int, str]) -> Tuple[
|
|
539
|
+
Dict[str, Union[str, int, bool, float]], Dict[str, bool]]:
|
|
530
540
|
result_agg = {}
|
|
531
541
|
is_none = {}
|
|
532
542
|
preprocess_result = self._preprocess_result()
|
|
@@ -555,6 +565,11 @@ class LeapLoader(LeapLoaderBase):
|
|
|
555
565
|
|
|
556
566
|
return id_type
|
|
557
567
|
|
|
568
|
+
@lru_cache()
|
|
569
|
+
def has_custom_latent_space_decorator(self) -> bool:
|
|
570
|
+
self.exec_script()
|
|
571
|
+
return global_leap_binder.setup_container.custom_latent_space is not None
|
|
572
|
+
|
|
558
573
|
def get_instances_data(self, state: DataStateEnum) -> Tuple[Dict[str, List[str]], Dict[str, str], Dict[str, str]]:
|
|
559
574
|
"""
|
|
560
575
|
This Method get the data state and returns two dictionaries that holds the mapping of the sample ids to their
|
code_loader/leaploaderbase.py
CHANGED
|
@@ -114,6 +114,10 @@ class LeapLoaderBase:
|
|
|
114
114
|
def get_sample_id_type(self) -> Type:
|
|
115
115
|
pass
|
|
116
116
|
|
|
117
|
+
@abstractmethod
|
|
118
|
+
def has_custom_latent_space_decorator(self) -> bool:
|
|
119
|
+
pass
|
|
120
|
+
|
|
117
121
|
@abstractmethod
|
|
118
122
|
def get_heatmap_visualizer_raw_vis_input_arg_name(self, visualizer_name: str) -> Optional[str]:
|
|
119
123
|
pass
|
code_loader/mixpanel_tracker.py
CHANGED
|
@@ -94,10 +94,6 @@ class MixpanelTracker:
|
|
|
94
94
|
Args:
|
|
95
95
|
event_properties: Optional additional properties to include in the event
|
|
96
96
|
"""
|
|
97
|
-
|
|
98
|
-
if os.environ.get('IS_TENSORLEAP_PLATFORM') == 'true':
|
|
99
|
-
return
|
|
100
|
-
|
|
101
97
|
try:
|
|
102
98
|
distinct_id = self._get_distinct_id()
|
|
103
99
|
|
|
@@ -110,7 +106,6 @@ class MixpanelTracker:
|
|
|
110
106
|
'$device_id': device_id, # Always use device_id for $device_id
|
|
111
107
|
'python_version': f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}",
|
|
112
108
|
'platform': os.name,
|
|
113
|
-
'code_loader_version': '1.0',
|
|
114
109
|
}
|
|
115
110
|
|
|
116
111
|
if tensorleap_user_id:
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2021 TensorLeap
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
2
|
Name: code-loader
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.120
|
|
4
4
|
Summary:
|
|
5
|
+
Home-page: https://github.com/tensorleap/code-loader
|
|
5
6
|
License: MIT
|
|
6
7
|
Author: dorhar
|
|
7
8
|
Author-email: doron.harnoy@tensorleap.ai
|
|
@@ -19,7 +20,6 @@ Requires-Dist: numpy (>=2.3.2,<3.0.0) ; python_version >= "3.11" and python_vers
|
|
|
19
20
|
Requires-Dist: psutil (>=5.9.5,<6.0.0)
|
|
20
21
|
Requires-Dist: pyyaml (>=6.0.2,<7.0.0)
|
|
21
22
|
Requires-Dist: requests (>=2.32.3,<3.0.0)
|
|
22
|
-
Project-URL: Homepage, https://github.com/tensorleap/code-loader
|
|
23
23
|
Project-URL: Repository, https://github.com/tensorleap/code-loader
|
|
24
24
|
Description-Content-Type: text/markdown
|
|
25
25
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
|
|
1
2
|
code_loader/__init__.py,sha256=outxRQ0M-zMfV0QGVJmAed5qWfRmyD0TV6-goEGAzBw,406
|
|
2
3
|
code_loader/contract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
code_loader/contract/datasetclasses.py,sha256=
|
|
4
|
+
code_loader/contract/datasetclasses.py,sha256=dzEzQY5F-uTNB28omGcdZp4cIXWn7NJhNyL0_Y04Yyo,9092
|
|
4
5
|
code_loader/contract/enums.py,sha256=GEFkvUMXnCNt-GOoz7NJ9ecQZ2PPDettJNOsxsiM0wk,1622
|
|
5
6
|
code_loader/contract/exceptions.py,sha256=jWqu5i7t-0IG0jGRsKF4DjJdrsdpJjIYpUkN1F4RiyQ,51
|
|
6
7
|
code_loader/contract/mapping.py,sha256=e11h_sprwOyE32PcqgRq9JvyahQrPzwqgkhmbQLKLQY,1165
|
|
@@ -19,18 +20,18 @@ code_loader/experiment_api/types.py,sha256=MY8xFARHwdVA7p4dxyhD60ShmttgTvb4qdp1o
|
|
|
19
20
|
code_loader/experiment_api/utils.py,sha256=XZHtxge12TS4H4-8PjV3sKuhp8Ud6ojAiIzTZJEqBqc,3304
|
|
20
21
|
code_loader/experiment_api/workingspace_config_utils.py,sha256=DLzXQCg4dgTV_YgaSbeTVzq-2ja_SQw4zi7LXwKL9cY,990
|
|
21
22
|
code_loader/inner_leap_binder/__init__.py,sha256=koOlJyMNYzGbEsoIbXathSmQ-L38N_pEXH_HvL7beXU,99
|
|
22
|
-
code_loader/inner_leap_binder/leapbinder.py,sha256=
|
|
23
|
-
code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=
|
|
24
|
-
code_loader/leaploader.py,sha256=
|
|
25
|
-
code_loader/leaploaderbase.py,sha256
|
|
26
|
-
code_loader/mixpanel_tracker.py,sha256=
|
|
23
|
+
code_loader/inner_leap_binder/leapbinder.py,sha256=Q3D9yVM-GNEJfYRFvMV__BoZbcWOgnWKhrZXAv6Tu7o,33232
|
|
24
|
+
code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=r9J_AzZnALJFcyd89Yx_bhsk10QeOfJW1oYp6WmJSIQ,43719
|
|
25
|
+
code_loader/leaploader.py,sha256=hM8-7t8rnR5hQjceZqRzLFwUJkg4zEc2jjMlTzqBkc0,30495
|
|
26
|
+
code_loader/leaploaderbase.py,sha256=-FAJUQlgDTI4QwJP8lwgwEFVOlnwCRi3-nSvPruCVGU,4587
|
|
27
|
+
code_loader/mixpanel_tracker.py,sha256=U20vQXH8G7XIVXxcpQcVEZSuIwwGnyH5RMHXWZZG8HI,4639
|
|
27
28
|
code_loader/plot_functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
29
|
code_loader/plot_functions/plot_functions.py,sha256=xg6Gi4myTN9crq6JtyrhYI38HLXjPVJcbnI7CIy8f7w,14625
|
|
29
30
|
code_loader/plot_functions/visualize.py,sha256=gsBAYYkwMh7jIpJeDMPS8G4CW-pxwx6LznoQIvi4vpo,657
|
|
30
31
|
code_loader/utils.py,sha256=_j8b60pimoNAvWMRj7hEkkT6C76qES6cZoBFHpXHMxA,2698
|
|
31
32
|
code_loader/visualizers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
33
|
code_loader/visualizers/default_visualizers.py,sha256=onRnLE_TXfgLN4o52hQIOOhUcFexGlqJ3xSpQDVLuZM,2604
|
|
33
|
-
code_loader-1.0.
|
|
34
|
-
code_loader-1.0.
|
|
35
|
-
code_loader-1.0.
|
|
36
|
-
code_loader-1.0.
|
|
34
|
+
code_loader-1.0.120.dist-info/LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
|
|
35
|
+
code_loader-1.0.120.dist-info/METADATA,sha256=9Q19VKHg1KpGlL4j5Woq6b3hTUISy_gu945ySjwTNy0,1090
|
|
36
|
+
code_loader-1.0.120.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
37
|
+
code_loader-1.0.120.dist-info/RECORD,,
|
|
File without changes
|