code-loader 1.0.105.dev0__tar.gz → 1.0.107__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.
Potentially problematic release.
This version of code-loader might be problematic. Click here for more details.
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/PKG-INFO +1 -1
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/contract/datasetclasses.py +5 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/inner_leap_binder/leapbinder_decorators.py +71 -42
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/pyproject.toml +1 -1
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/LICENSE +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/README.md +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/__init__.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/contract/__init__.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/contract/enums.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/contract/exceptions.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/contract/mapping.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/contract/responsedataclasses.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/contract/visualizer_classes.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/default_losses.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/default_metrics.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/__init__.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/api.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/cli_config_utils.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/client.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/epoch.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/experiment.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/experiment_context.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/types.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/utils.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/workingspace_config_utils.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/inner_leap_binder/__init__.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/inner_leap_binder/leapbinder.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/leaploader.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/leaploaderbase.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/plot_functions/__init__.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/plot_functions/plot_functions.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/plot_functions/visualize.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/utils.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/visualizers/__init__.py +0 -0
- {code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/visualizers/default_visualizers.py +0 -0
|
@@ -43,6 +43,9 @@ class PreprocessResponse:
|
|
|
43
43
|
instance_ids_to_names: Optional[Dict[str, str]] = None # in use only for element instance
|
|
44
44
|
|
|
45
45
|
def __post_init__(self) -> None:
|
|
46
|
+
def is_valid_string(s: str) -> bool:
|
|
47
|
+
return bool(re.match(r'^[A-Za-z0-9_]+$', s))
|
|
48
|
+
|
|
46
49
|
assert self.sample_ids_to_instance_mappings is None, f"Keep sample_ids_to_instance_mappings None when initializing PreprocessResponse"
|
|
47
50
|
assert self.instance_to_sample_ids_mappings is None, f"Keep instance_to_sample_ids_mappings None when initializing PreprocessResponse"
|
|
48
51
|
assert self.instance_ids_to_names is None, f"Keep instance_ids_to_names None when initializing PreprocessResponse"
|
|
@@ -57,6 +60,8 @@ class PreprocessResponse:
|
|
|
57
60
|
if self.sample_id_type == str:
|
|
58
61
|
for sample_id in self.sample_ids:
|
|
59
62
|
assert isinstance(sample_id, str), f"Sample id should be of type str. Got: {type(sample_id)}"
|
|
63
|
+
if not is_valid_string(sample_id):
|
|
64
|
+
raise Exception(f"Sample id should contain only letters (A-Z, a-z), numbers or '_'. Got: {sample_id}")
|
|
60
65
|
else:
|
|
61
66
|
raise Exception("length is deprecated.")
|
|
62
67
|
|
|
@@ -152,12 +152,6 @@ def tensorleap_custom_metric(name: str,
|
|
|
152
152
|
raise Exception(f'Metric with name {name} already exists. '
|
|
153
153
|
f'Please choose another')
|
|
154
154
|
|
|
155
|
-
leap_binder.add_custom_metric(user_function, name, direction, compute_insights)
|
|
156
|
-
|
|
157
|
-
if connects_to is not None:
|
|
158
|
-
arg_names = leap_binder.setup_container.metrics[-1].metric_handler_data.arg_names
|
|
159
|
-
_add_mapping_connections(connects_to, arg_names, NodeMappingType.Metric, name)
|
|
160
|
-
|
|
161
155
|
def _validate_input_args(*args, **kwargs) -> None:
|
|
162
156
|
for i, arg in enumerate(args):
|
|
163
157
|
assert isinstance(arg, (np.ndarray, SamplePreprocessResponse)), (
|
|
@@ -233,9 +227,7 @@ def tensorleap_custom_metric(name: str,
|
|
|
233
227
|
(f'tensorleap_custom_metric validation failed: '
|
|
234
228
|
f'compute_insights should be boolean. Got {type(compute_insights)}.')
|
|
235
229
|
|
|
236
|
-
def
|
|
237
|
-
_validate_input_args(*args, **kwargs)
|
|
238
|
-
|
|
230
|
+
def inner_without_validate(*args, **kwargs):
|
|
239
231
|
global _called_from_inside_tl_decorator
|
|
240
232
|
_called_from_inside_tl_decorator += 1
|
|
241
233
|
|
|
@@ -244,6 +236,19 @@ def tensorleap_custom_metric(name: str,
|
|
|
244
236
|
finally:
|
|
245
237
|
_called_from_inside_tl_decorator -= 1
|
|
246
238
|
|
|
239
|
+
return result
|
|
240
|
+
|
|
241
|
+
leap_binder.add_custom_metric(inner_without_validate, name, direction, compute_insights)
|
|
242
|
+
|
|
243
|
+
if connects_to is not None:
|
|
244
|
+
arg_names = leap_binder.setup_container.metrics[-1].metric_handler_data.arg_names
|
|
245
|
+
_add_mapping_connections(connects_to, arg_names, NodeMappingType.Metric, name)
|
|
246
|
+
|
|
247
|
+
def inner(*args, **kwargs):
|
|
248
|
+
_validate_input_args(*args, **kwargs)
|
|
249
|
+
|
|
250
|
+
result = inner_without_validate(*args, **kwargs)
|
|
251
|
+
|
|
247
252
|
_validate_result(result)
|
|
248
253
|
return result
|
|
249
254
|
|
|
@@ -284,12 +289,6 @@ def tensorleap_custom_visualizer(name: str, visualizer_type: LeapDataType,
|
|
|
284
289
|
raise Exception(f'Visualizer with name {name} already exists. '
|
|
285
290
|
f'Please choose another')
|
|
286
291
|
|
|
287
|
-
leap_binder.set_visualizer(user_function, name, visualizer_type, heatmap_function)
|
|
288
|
-
|
|
289
|
-
if connects_to is not None:
|
|
290
|
-
arg_names = leap_binder.setup_container.visualizers[-1].visualizer_handler_data.arg_names
|
|
291
|
-
_add_mapping_connections(connects_to, arg_names, NodeMappingType.Visualizer, name)
|
|
292
|
-
|
|
293
292
|
def _validate_input_args(*args, **kwargs):
|
|
294
293
|
for i, arg in enumerate(args):
|
|
295
294
|
assert isinstance(arg, (np.ndarray, SamplePreprocessResponse)), (
|
|
@@ -324,9 +323,8 @@ def tensorleap_custom_visualizer(name: str, visualizer_type: LeapDataType,
|
|
|
324
323
|
(f'tensorleap_custom_visualizer validation failed: '
|
|
325
324
|
f'The return type should be {result_type_map[visualizer_type]}. Got {type(result)}.')
|
|
326
325
|
|
|
327
|
-
def inner(*args, **kwargs):
|
|
328
|
-
_validate_input_args(*args, **kwargs)
|
|
329
326
|
|
|
327
|
+
def inner_without_validate(*args, **kwargs):
|
|
330
328
|
global _called_from_inside_tl_decorator
|
|
331
329
|
_called_from_inside_tl_decorator += 1
|
|
332
330
|
|
|
@@ -335,9 +333,23 @@ def tensorleap_custom_visualizer(name: str, visualizer_type: LeapDataType,
|
|
|
335
333
|
finally:
|
|
336
334
|
_called_from_inside_tl_decorator -= 1
|
|
337
335
|
|
|
336
|
+
return result
|
|
337
|
+
|
|
338
|
+
leap_binder.set_visualizer(inner_without_validate, name, visualizer_type, heatmap_function)
|
|
339
|
+
|
|
340
|
+
if connects_to is not None:
|
|
341
|
+
arg_names = leap_binder.setup_container.visualizers[-1].visualizer_handler_data.arg_names
|
|
342
|
+
_add_mapping_connections(connects_to, arg_names, NodeMappingType.Visualizer, name)
|
|
343
|
+
|
|
344
|
+
def inner(*args, **kwargs):
|
|
345
|
+
_validate_input_args(*args, **kwargs)
|
|
346
|
+
|
|
347
|
+
result = inner_without_validate()
|
|
348
|
+
|
|
338
349
|
_validate_result(result)
|
|
339
350
|
return result
|
|
340
351
|
|
|
352
|
+
|
|
341
353
|
def mapping_inner(*args, **kwargs):
|
|
342
354
|
user_unique_name = mapping_inner.name
|
|
343
355
|
if 'user_unique_name' in kwargs:
|
|
@@ -372,8 +384,6 @@ def tensorleap_metadata(
|
|
|
372
384
|
raise Exception(f'Metadata with name {name} already exists. '
|
|
373
385
|
f'Please choose another')
|
|
374
386
|
|
|
375
|
-
leap_binder.set_metadata(user_function, name, metadata_type)
|
|
376
|
-
|
|
377
387
|
def _validate_input_args(sample_id: Union[int, str], preprocess_response: PreprocessResponse):
|
|
378
388
|
assert isinstance(sample_id, (int, str)), \
|
|
379
389
|
(f'tensorleap_metadata validation failed: '
|
|
@@ -401,11 +411,7 @@ def tensorleap_metadata(
|
|
|
401
411
|
(f'tensorleap_metadata validation failed: '
|
|
402
412
|
f'Values in the return dict should be of type {str(supported_result_types)}. Got {type(value)}.')
|
|
403
413
|
|
|
404
|
-
def
|
|
405
|
-
if os.environ.get(mapping_runtime_mode_env_var_mame):
|
|
406
|
-
return None
|
|
407
|
-
|
|
408
|
-
_validate_input_args(sample_id, preprocess_response)
|
|
414
|
+
def inner_without_validate(sample_id, preprocess_response):
|
|
409
415
|
|
|
410
416
|
global _called_from_inside_tl_decorator
|
|
411
417
|
_called_from_inside_tl_decorator += 1
|
|
@@ -415,6 +421,19 @@ def tensorleap_metadata(
|
|
|
415
421
|
finally:
|
|
416
422
|
_called_from_inside_tl_decorator -= 1
|
|
417
423
|
|
|
424
|
+
return result
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
leap_binder.set_metadata(inner_without_validate, name, metadata_type)
|
|
428
|
+
|
|
429
|
+
def inner(sample_id, preprocess_response):
|
|
430
|
+
if os.environ.get(mapping_runtime_mode_env_var_mame):
|
|
431
|
+
return None
|
|
432
|
+
|
|
433
|
+
_validate_input_args(sample_id, preprocess_response)
|
|
434
|
+
|
|
435
|
+
result = inner_without_validate(sample_id, preprocess_response)
|
|
436
|
+
|
|
418
437
|
_validate_result(result)
|
|
419
438
|
return result
|
|
420
439
|
|
|
@@ -549,8 +568,6 @@ def tensorleap_unlabeled_preprocess():
|
|
|
549
568
|
|
|
550
569
|
def tensorleap_instances_masks_encoder(name: str):
|
|
551
570
|
def decorating_function(user_function: InstanceCallableInterface):
|
|
552
|
-
leap_binder.set_instance_masks(user_function, name)
|
|
553
|
-
|
|
554
571
|
def _validate_input_args(sample_id: str, preprocess_response: PreprocessResponse):
|
|
555
572
|
assert isinstance(sample_id, str), \
|
|
556
573
|
(f'tensorleap_instances_masks_encoder validation failed: '
|
|
@@ -568,13 +585,7 @@ def tensorleap_instances_masks_encoder(name: str):
|
|
|
568
585
|
(f'tensorleap_instances_masks_encoder validation failed: '
|
|
569
586
|
f'Unsupported return type. Should be a numpy array. Got {type(result)}.')
|
|
570
587
|
|
|
571
|
-
|
|
572
|
-
def inner(sample_id, preprocess_response):
|
|
573
|
-
if os.environ.get(mapping_runtime_mode_env_var_mame):
|
|
574
|
-
return None
|
|
575
|
-
|
|
576
|
-
_validate_input_args(sample_id, preprocess_response)
|
|
577
|
-
|
|
588
|
+
def inner_without_validate(sample_id, preprocess_response):
|
|
578
589
|
global _called_from_inside_tl_decorator
|
|
579
590
|
_called_from_inside_tl_decorator += 1
|
|
580
591
|
|
|
@@ -583,6 +594,19 @@ def tensorleap_instances_masks_encoder(name: str):
|
|
|
583
594
|
finally:
|
|
584
595
|
_called_from_inside_tl_decorator -= 1
|
|
585
596
|
|
|
597
|
+
return result
|
|
598
|
+
|
|
599
|
+
leap_binder.set_instance_masks(inner_without_validate, name)
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
def inner(sample_id, preprocess_response):
|
|
603
|
+
if os.environ.get(mapping_runtime_mode_env_var_mame):
|
|
604
|
+
return None
|
|
605
|
+
|
|
606
|
+
_validate_input_args(sample_id, preprocess_response)
|
|
607
|
+
|
|
608
|
+
result = inner_without_validate(sample_id, preprocess_response)
|
|
609
|
+
|
|
586
610
|
_validate_result(result)
|
|
587
611
|
return result
|
|
588
612
|
|
|
@@ -733,12 +757,6 @@ def tensorleap_custom_loss(name: str, connects_to=None):
|
|
|
733
757
|
raise Exception(f'Custom loss with name {name} already exists. '
|
|
734
758
|
f'Please choose another')
|
|
735
759
|
|
|
736
|
-
leap_binder.add_custom_loss(user_function, name)
|
|
737
|
-
|
|
738
|
-
if connects_to is not None:
|
|
739
|
-
arg_names = leap_binder.setup_container.custom_loss_handlers[-1].custom_loss_handler_data.arg_names
|
|
740
|
-
_add_mapping_connections(connects_to, arg_names, NodeMappingType.CustomLoss, name)
|
|
741
|
-
|
|
742
760
|
|
|
743
761
|
valid_types = (np.ndarray, SamplePreprocessResponse)
|
|
744
762
|
try:
|
|
@@ -771,9 +789,7 @@ def tensorleap_custom_loss(name: str, connects_to=None):
|
|
|
771
789
|
(f'tensorleap_custom_loss validation failed: '
|
|
772
790
|
f'The return type should be a numpy array. Got {type(result)}.')
|
|
773
791
|
|
|
774
|
-
def
|
|
775
|
-
_validate_input_args(*args, **kwargs)
|
|
776
|
-
|
|
792
|
+
def inner_without_validate(*args, **kwargs):
|
|
777
793
|
global _called_from_inside_tl_decorator
|
|
778
794
|
_called_from_inside_tl_decorator += 1
|
|
779
795
|
|
|
@@ -782,6 +798,19 @@ def tensorleap_custom_loss(name: str, connects_to=None):
|
|
|
782
798
|
finally:
|
|
783
799
|
_called_from_inside_tl_decorator -= 1
|
|
784
800
|
|
|
801
|
+
return result
|
|
802
|
+
|
|
803
|
+
leap_binder.add_custom_loss(inner_without_validate, name)
|
|
804
|
+
|
|
805
|
+
if connects_to is not None:
|
|
806
|
+
arg_names = leap_binder.setup_container.custom_loss_handlers[-1].custom_loss_handler_data.arg_names
|
|
807
|
+
_add_mapping_connections(connects_to, arg_names, NodeMappingType.CustomLoss, name)
|
|
808
|
+
|
|
809
|
+
def inner(*args, **kwargs):
|
|
810
|
+
_validate_input_args(*args, **kwargs)
|
|
811
|
+
|
|
812
|
+
result = inner_without_validate(*args, **kwargs)
|
|
813
|
+
|
|
785
814
|
_validate_result(result)
|
|
786
815
|
return result
|
|
787
816
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/contract/responsedataclasses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/cli_config_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/experiment_api/experiment_context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/inner_leap_binder/leapbinder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/plot_functions/plot_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{code_loader-1.0.105.dev0 → code_loader-1.0.107}/code_loader/visualizers/default_visualizers.py
RENAMED
|
File without changes
|