code-loader 1.0.180.dev4__py3-none-any.whl → 1.0.181__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.
- code_loader/contract/datasetclasses.py +10 -8
- code_loader/contract/sim_config.py +13 -0
- code_loader/inner_leap_binder/leapbinder.py +38 -2
- code_loader/inner_leap_binder/leapbinder_decorators.py +13 -6
- code_loader/leaploader.py +73 -2
- code_loader/leaploaderbase.py +6 -1
- {code_loader-1.0.180.dev4.dist-info → code_loader-1.0.181.dist-info}/METADATA +1 -1
- {code_loader-1.0.180.dev4.dist-info → code_loader-1.0.181.dist-info}/RECORD +10 -10
- {code_loader-1.0.180.dev4.dist-info → code_loader-1.0.181.dist-info}/LICENSE +0 -0
- {code_loader-1.0.180.dev4.dist-info → code_loader-1.0.181.dist-info}/WHEEL +0 -0
|
@@ -13,6 +13,8 @@ from code_loader.contract.sim_config import SimConfig
|
|
|
13
13
|
|
|
14
14
|
custom_latent_space_attribute = "custom_latent_space"
|
|
15
15
|
|
|
16
|
+
_simulation_context: Dict[str, bool] = {"active": False}
|
|
17
|
+
|
|
16
18
|
|
|
17
19
|
@dataclass
|
|
18
20
|
class PreprocessResponse:
|
|
@@ -62,14 +64,14 @@ class PreprocessResponse:
|
|
|
62
64
|
raise Exception("length is deprecated, please use sample_ids instead.")
|
|
63
65
|
|
|
64
66
|
if self.state is None:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
if not _simulation_context["active"]:
|
|
68
|
+
from code_loader.inner_leap_binder.leapbinder_decorators import store_warning_by_param
|
|
69
|
+
store_warning_by_param(
|
|
70
|
+
param_name="PreprocessResponse.state",
|
|
71
|
+
user_func_name="tensorleap_preprocess",
|
|
72
|
+
default_value=str("specific order"),
|
|
73
|
+
link_to_docs="https://docs.tensorleap.ai/tensorleap-integration/writing-integration-code/preprocess-function",
|
|
74
|
+
)
|
|
73
75
|
else:
|
|
74
76
|
assert isinstance(self.state, DataStateType), f"PreprocessResponse.state must be of type {DataStateType.__name__} but got {type(self.state)}"
|
|
75
77
|
|
|
@@ -66,6 +66,19 @@ def _parse_bounds(name: str, metadata_type: DatasetMetadataType, bounds_raw: Dic
|
|
|
66
66
|
raise ValueError(f"Parameter '{name}' has unsupported metadata type: {metadata_type}.")
|
|
67
67
|
|
|
68
68
|
|
|
69
|
+
def sample_sim_params(sim_config: SimConfig) -> Dict[str, Any]:
|
|
70
|
+
params: Dict[str, Any] = {}
|
|
71
|
+
for name, param_config in sim_config.items():
|
|
72
|
+
bounds = param_config.bounds
|
|
73
|
+
if isinstance(bounds, FloatBounds):
|
|
74
|
+
params[name] = (bounds.min + bounds.max) / 2.0
|
|
75
|
+
elif isinstance(bounds, IntBounds):
|
|
76
|
+
params[name] = int((bounds.min + bounds.max) / 2)
|
|
77
|
+
else: # CategoricalBounds
|
|
78
|
+
params[name] = bounds.values[0]
|
|
79
|
+
return params
|
|
80
|
+
|
|
81
|
+
|
|
69
82
|
def parse_sim_config(raw: Dict[str, Any]) -> SimConfig:
|
|
70
83
|
if not raw:
|
|
71
84
|
raise ValueError("sim_config must have at least one parameter.")
|
|
@@ -13,7 +13,7 @@ from code_loader.contract.datasetclasses import SectionCallableInterface, InputH
|
|
|
13
13
|
CustomMultipleReturnCallableInterfaceMultiArgs, DatasetBaseHandler, custom_latent_space_attribute, \
|
|
14
14
|
RawInputsForHeatmap, VisualizerHandlerData, MetricHandlerData, CustomLossHandlerData, SamplePreprocessResponse, \
|
|
15
15
|
ElementInstanceMasksHandler, InstanceCallableInterface, CustomLatentSpaceHandler, InstanceMetricHandler, \
|
|
16
|
-
SimulationHandler
|
|
16
|
+
SimulationHandler, _simulation_context
|
|
17
17
|
from code_loader.contract.enums import LeapDataType, DataStateEnum, DataStateType, MetricDirection, DatasetMetadataType
|
|
18
18
|
from code_loader.contract.mapping import NodeConnection, NodeMapping, NodeMappingType
|
|
19
19
|
from code_loader.contract.responsedataclasses import DatasetTestResultPayload, LeapAnalysisConfiguration
|
|
@@ -21,7 +21,7 @@ from code_loader.contract.visualizer_classes import map_leap_data_type_to_visual
|
|
|
21
21
|
from code_loader.default_losses import loss_name_to_function
|
|
22
22
|
from code_loader.default_metrics import metrics_names_to_functions_and_direction
|
|
23
23
|
from code_loader.utils import to_numpy_return_wrapper, get_shape, to_numpy_return_masks_wrapper
|
|
24
|
-
from code_loader.contract.sim_config import parse_sim_config
|
|
24
|
+
from code_loader.contract.sim_config import parse_sim_config, sample_sim_params
|
|
25
25
|
from code_loader.visualizers.default_visualizers import DefaultVisualizer, \
|
|
26
26
|
default_graph_visualizer, \
|
|
27
27
|
default_image_visualizer, default_horizontal_bar_visualizer, default_word_visualizer, \
|
|
@@ -666,10 +666,46 @@ class LeapBinder:
|
|
|
666
666
|
continue
|
|
667
667
|
test_result = self.check_handler(preprocess_response, test_result, dataset_base_handler, state)
|
|
668
668
|
|
|
669
|
+
def check_simulations(self) -> None:
|
|
670
|
+
from code_loader.inner_leap_binder.leapbinder_decorators import _call_from_tl_platform
|
|
671
|
+
if not _call_from_tl_platform:
|
|
672
|
+
from code_loader.inner_leap_binder.leapbinder_decorators import set_current
|
|
673
|
+
set_current("tensorleap simulation")
|
|
674
|
+
for sim in self.setup_container.simulations:
|
|
675
|
+
kwargs = sample_sim_params(sim.sim_config)
|
|
676
|
+
kwargs["N"] = 1
|
|
677
|
+
kwargs["seed"] = 0
|
|
678
|
+
_simulation_context["active"] = True
|
|
679
|
+
try:
|
|
680
|
+
preprocess_response = sim.function(**kwargs)
|
|
681
|
+
finally:
|
|
682
|
+
_simulation_context["active"] = False
|
|
683
|
+
if not isinstance(preprocess_response, PreprocessResponse):
|
|
684
|
+
raise Exception(
|
|
685
|
+
"Simulation '{}' returned {} instead of PreprocessResponse".format(
|
|
686
|
+
sim.name, type(preprocess_response).__name__
|
|
687
|
+
)
|
|
688
|
+
)
|
|
689
|
+
preprocess_response.state = DataStateType.additional
|
|
690
|
+
preprocess_response.tl_generated = True
|
|
691
|
+
if not preprocess_response.length or preprocess_response.length < 1:
|
|
692
|
+
raise Exception("Simulation '{}' returned PreprocessResponse with length < 1".format(sim.name))
|
|
693
|
+
preprocess_response.sample_ids = [0]
|
|
694
|
+
for handler in self.setup_container.inputs:
|
|
695
|
+
out1 = handler.function(preprocess_response.sample_ids[0], preprocess_response)
|
|
696
|
+
out2 = handler.function(preprocess_response.sample_ids[0], preprocess_response)
|
|
697
|
+
if not np.array_equal(out1, out2):
|
|
698
|
+
raise Exception(
|
|
699
|
+
"Simulation '{}': encoder '{}' is non-deterministic — consecutive calls with seed=0 returned different outputs".format(
|
|
700
|
+
sim.name, handler.name
|
|
701
|
+
)
|
|
702
|
+
)
|
|
703
|
+
|
|
669
704
|
def check(self) -> None:
|
|
670
705
|
preprocess_result = self.get_preprocess_result()
|
|
671
706
|
self.check_preprocess(preprocess_result)
|
|
672
707
|
self.check_handlers(preprocess_result)
|
|
708
|
+
self.check_simulations()
|
|
673
709
|
self.validate_ignore_latent_spaces()
|
|
674
710
|
print("Successful!")
|
|
675
711
|
|
|
@@ -1403,22 +1403,22 @@ def tensorleap_simulation(name: str, sim_params: dict):
|
|
|
1403
1403
|
def decorating_function(user_function: Callable[..., PreprocessResponse]):
|
|
1404
1404
|
sig = inspect.signature(user_function)
|
|
1405
1405
|
func_params = set(sig.parameters.keys())
|
|
1406
|
-
expected_params = set(sim_params.keys()) | {"N"}
|
|
1406
|
+
expected_params = set(sim_params.keys()) | {"N", "seed"}
|
|
1407
1407
|
|
|
1408
1408
|
missing = expected_params - func_params
|
|
1409
1409
|
if missing:
|
|
1410
1410
|
raise Exception(
|
|
1411
1411
|
f"{user_function.__name__}() registration failed: "
|
|
1412
1412
|
f"Missing required parameters: {missing}. "
|
|
1413
|
-
f"Function must accept all sim_params params plus 'N'."
|
|
1413
|
+
f"Function must accept all sim_params params plus 'N' and 'seed'."
|
|
1414
1414
|
)
|
|
1415
1415
|
|
|
1416
|
-
extra = func_params - expected_params
|
|
1416
|
+
extra = func_params - expected_params
|
|
1417
1417
|
if extra:
|
|
1418
1418
|
raise Exception(
|
|
1419
1419
|
f"{user_function.__name__}() registration failed: "
|
|
1420
1420
|
f"Unexpected parameters: {extra}. "
|
|
1421
|
-
f"Function must only accept sim_params params plus 'N' and
|
|
1421
|
+
f"Function must only accept sim_params params plus 'N' and 'seed'."
|
|
1422
1422
|
)
|
|
1423
1423
|
|
|
1424
1424
|
leap_binder.set_simulation(user_function, name, sim_params)
|
|
@@ -1447,10 +1447,15 @@ def tensorleap_simulation(name: str, sim_params: dict):
|
|
|
1447
1447
|
if not _call_from_tl_platform:
|
|
1448
1448
|
set_current('tensorleap simulation')
|
|
1449
1449
|
try:
|
|
1450
|
+
from code_loader.contract.datasetclasses import _simulation_context
|
|
1450
1451
|
_validate_input_args(*args, **kwargs)
|
|
1451
|
-
|
|
1452
|
+
_simulation_context["active"] = True
|
|
1453
|
+
try:
|
|
1454
|
+
result = user_function(*args, **kwargs)
|
|
1455
|
+
finally:
|
|
1456
|
+
_simulation_context["active"] = False
|
|
1452
1457
|
_validate_result(result)
|
|
1453
|
-
if result.state != DataStateType.additional:
|
|
1458
|
+
if result.state is not None and result.state != DataStateType.additional:
|
|
1454
1459
|
logger.warning(
|
|
1455
1460
|
f"{user_function.__name__}() returned state={result.state!r}; "
|
|
1456
1461
|
f"overriding to DataStateType.additional."
|
|
@@ -2170,6 +2175,8 @@ def tensorleap_status_table():
|
|
|
2170
2175
|
row = _find_row("tensorleap simulation")
|
|
2171
2176
|
if not row:
|
|
2172
2177
|
return
|
|
2178
|
+
if _crashed["value"]:
|
|
2179
|
+
return
|
|
2173
2180
|
failed = [n for n, s in _sim_tracking.items() if s == "failed"]
|
|
2174
2181
|
not_called = [n for n, s in _sim_tracking.items() if s == "registered"]
|
|
2175
2182
|
if failed:
|
code_loader/leaploader.py
CHANGED
|
@@ -16,14 +16,14 @@ 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, custom_latent_space_attribute, DatasetIntegrationSetup, InstanceMetricHandler
|
|
19
|
+
ElementInstance, custom_latent_space_attribute, DatasetIntegrationSetup, InstanceMetricHandler, _simulation_context
|
|
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, \
|
|
23
23
|
DatasetPreprocess, DatasetSetup, DatasetInputInstance, DatasetOutputInstance, DatasetMetadataInstance, \
|
|
24
24
|
VisualizerInstance, PredictionTypeInstance, ModelSetup, CustomLayerInstance, MetricInstance, CustomLossInstance, \
|
|
25
25
|
EngineFileContract, SimulationInstance
|
|
26
|
-
from code_loader.contract.sim_config import FloatBounds, IntBounds, CategoricalBounds
|
|
26
|
+
from code_loader.contract.sim_config import FloatBounds, IntBounds, CategoricalBounds, sample_sim_params
|
|
27
27
|
from code_loader.inner_leap_binder import global_leap_binder
|
|
28
28
|
from code_loader.inner_leap_binder.leapbinder import mapping_runtime_mode_env_var_mame
|
|
29
29
|
from code_loader.leaploaderbase import LeapLoaderBase
|
|
@@ -38,6 +38,7 @@ def _serialize_sim_bounds(bounds) -> dict:
|
|
|
38
38
|
raise ValueError(f"Unknown bounds type: {type(bounds)}")
|
|
39
39
|
|
|
40
40
|
|
|
41
|
+
|
|
41
42
|
class LeapLoader(LeapLoaderBase):
|
|
42
43
|
def __init__(self, code_path: str, code_entry_name: str):
|
|
43
44
|
super().__init__(code_path, code_entry_name)
|
|
@@ -223,6 +224,8 @@ class LeapLoader(LeapLoaderBase):
|
|
|
223
224
|
test_payloads.append(preprocess_test_payload)
|
|
224
225
|
handlers_test_payloads = self._check_handlers()
|
|
225
226
|
test_payloads.extend(handlers_test_payloads)
|
|
227
|
+
simulation_test_payloads = self._check_simulations()
|
|
228
|
+
test_payloads.extend(simulation_test_payloads)
|
|
226
229
|
is_valid = all([payload.is_passed for payload in test_payloads])
|
|
227
230
|
setup_response = self.get_dataset_setup_response(handlers_test_payloads)
|
|
228
231
|
|
|
@@ -299,6 +302,74 @@ class LeapLoader(LeapLoaderBase):
|
|
|
299
302
|
result_payloads.extend(test_result)
|
|
300
303
|
return result_payloads
|
|
301
304
|
|
|
305
|
+
def _check_simulations(self):
|
|
306
|
+
# type: () -> List[DatasetTestResultPayload]
|
|
307
|
+
result_payloads = []
|
|
308
|
+
for sim in global_leap_binder.setup_container.simulations:
|
|
309
|
+
test_result = DatasetTestResultPayload(sim.name)
|
|
310
|
+
try:
|
|
311
|
+
kwargs = sample_sim_params(sim.sim_config)
|
|
312
|
+
kwargs["N"] = 1
|
|
313
|
+
kwargs["seed"] = 0
|
|
314
|
+
_simulation_context["active"] = True
|
|
315
|
+
try:
|
|
316
|
+
preprocess_response = sim.function(**kwargs)
|
|
317
|
+
finally:
|
|
318
|
+
_simulation_context["active"] = False
|
|
319
|
+
if not isinstance(preprocess_response, PreprocessResponse):
|
|
320
|
+
raise TypeError(
|
|
321
|
+
"Expected PreprocessResponse, got {}".format(type(preprocess_response).__name__)
|
|
322
|
+
)
|
|
323
|
+
preprocess_response.state = DataStateType.additional
|
|
324
|
+
preprocess_response.tl_generated = True
|
|
325
|
+
if preprocess_response.length < 1:
|
|
326
|
+
raise ValueError("Simulation returned PreprocessResponse with length < 1")
|
|
327
|
+
preprocess_response.sample_ids = [0]
|
|
328
|
+
for handler in global_leap_binder.setup_container.inputs:
|
|
329
|
+
out1 = handler.function(preprocess_response.sample_ids[0], preprocess_response)
|
|
330
|
+
out2 = handler.function(preprocess_response.sample_ids[0], preprocess_response)
|
|
331
|
+
if not np.array_equal(out1, out2):
|
|
332
|
+
raise ValueError(
|
|
333
|
+
"Encoder '{}' is non-deterministic: consecutive calls with seed=0 returned different outputs".format(
|
|
334
|
+
handler.name
|
|
335
|
+
)
|
|
336
|
+
)
|
|
337
|
+
except Exception as e:
|
|
338
|
+
line_number, file_name, stacktrace = get_root_exception_file_and_line_number()
|
|
339
|
+
test_result.display[TestingSectionEnum.Errors.name] = (
|
|
340
|
+
"{} in file {}, line_number: {}\nStacktrace:\n{}".format(
|
|
341
|
+
repr(e), file_name, line_number, stacktrace
|
|
342
|
+
)
|
|
343
|
+
)
|
|
344
|
+
test_result.is_passed = False
|
|
345
|
+
result_payloads.append(test_result)
|
|
346
|
+
return result_payloads
|
|
347
|
+
|
|
348
|
+
def run_simulation_check(self, sim_name):
|
|
349
|
+
# type: (str) -> Dict[str, npt.NDArray[np.float32]]
|
|
350
|
+
self.exec_script()
|
|
351
|
+
sim = next(
|
|
352
|
+
(s for s in global_leap_binder.setup_container.simulations if s.name == sim_name),
|
|
353
|
+
None,
|
|
354
|
+
)
|
|
355
|
+
if sim is None:
|
|
356
|
+
raise ValueError("No simulation registered with name '{}'".format(sim_name))
|
|
357
|
+
kwargs = sample_sim_params(sim.sim_config)
|
|
358
|
+
kwargs["N"] = 1
|
|
359
|
+
kwargs["seed"] = 0
|
|
360
|
+
_simulation_context["active"] = True
|
|
361
|
+
try:
|
|
362
|
+
sim_preprocess = sim.function(**kwargs)
|
|
363
|
+
finally:
|
|
364
|
+
_simulation_context["active"] = False
|
|
365
|
+
sim_preprocess.state = DataStateType.additional
|
|
366
|
+
sim_preprocess.tl_generated = True
|
|
367
|
+
sim_preprocess.sample_ids = [0]
|
|
368
|
+
result = {}
|
|
369
|
+
for handler in global_leap_binder.setup_container.inputs:
|
|
370
|
+
result[handler.name] = handler.function(sim_preprocess.sample_ids[0], sim_preprocess)
|
|
371
|
+
return result
|
|
372
|
+
|
|
302
373
|
@staticmethod
|
|
303
374
|
def _get_all_dataset_base_handlers() -> List[Union[DatasetBaseHandler, MetadataHandler]]:
|
|
304
375
|
all_dataset_base_handlers: List[Union[DatasetBaseHandler, MetadataHandler]] = []
|
code_loader/leaploaderbase.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from abc import abstractmethod
|
|
4
4
|
|
|
5
|
-
from typing import Dict, List, Union, Type, Optional, Tuple
|
|
5
|
+
from typing import Any, Dict, List, Union, Type, Optional, Tuple
|
|
6
6
|
|
|
7
7
|
import numpy as np
|
|
8
8
|
import numpy.typing as npt
|
|
@@ -153,6 +153,11 @@ class LeapLoaderBase:
|
|
|
153
153
|
def get_heatmap_visualizer_raw_vis_input_arg_name(self, visualizer_name: str) -> Optional[str]:
|
|
154
154
|
pass
|
|
155
155
|
|
|
156
|
+
@abstractmethod
|
|
157
|
+
def run_simulation_check(self, sim_name):
|
|
158
|
+
# type: (str) -> Dict[str, Any]
|
|
159
|
+
pass
|
|
160
|
+
|
|
156
161
|
def is_custom_latent_space(self) -> bool:
|
|
157
162
|
if not self.code_entry_name or not self.code_path:
|
|
158
163
|
return False
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
|
|
2
2
|
code_loader/__init__.py,sha256=outxRQ0M-zMfV0QGVJmAed5qWfRmyD0TV6-goEGAzBw,406
|
|
3
3
|
code_loader/contract/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
code_loader/contract/datasetclasses.py,sha256=
|
|
4
|
+
code_loader/contract/datasetclasses.py,sha256=RYZcnX7vLMYhyQtCbX2PscVFNAYULxgAA9U4DRRfLqA,10456
|
|
5
5
|
code_loader/contract/enums.py,sha256=2q-IV_5g9lLE306DIbWA1c0tn5IhDtxsKxyV1x_Lreg,1671
|
|
6
6
|
code_loader/contract/exceptions.py,sha256=jWqu5i7t-0IG0jGRsKF4DjJdrsdpJjIYpUkN1F4RiyQ,51
|
|
7
7
|
code_loader/contract/mapping.py,sha256=sWJhpng-IkOzQnWQdMT5w2ZZ3X1Z_OOzSwCLXIS7oxE,1446
|
|
8
8
|
code_loader/contract/responsedataclasses.py,sha256=5VFgGjRubMW8ItMPils3rkBNejunCGLaa192AIi-xko,4925
|
|
9
|
-
code_loader/contract/sim_config.py,sha256=
|
|
9
|
+
code_loader/contract/sim_config.py,sha256=le8KMALZiP0WU4UcuKnTOSWBW2rNjpnWYfII502NqDM,3493
|
|
10
10
|
code_loader/contract/visualizer_classes.py,sha256=Wz9eItmoRaKEHa3p0aW0Ypxx4_xUmaZyLBznnTuxwi0,15425
|
|
11
11
|
code_loader/default_losses.py,sha256=NoOQym1106bDN5dcIk56Elr7ZG5quUHArqfP5-Nyxyo,1139
|
|
12
12
|
code_loader/default_metrics.py,sha256=2XSlyNw_XLDGSJDoz5W_Evi5wbL0dhwq24pPr15vSPc,5025
|
|
@@ -21,10 +21,10 @@ code_loader/experiment_api/types.py,sha256=MY8xFARHwdVA7p4dxyhD60ShmttgTvb4qdp1o
|
|
|
21
21
|
code_loader/experiment_api/utils.py,sha256=XZHtxge12TS4H4-8PjV3sKuhp8Ud6ojAiIzTZJEqBqc,3304
|
|
22
22
|
code_loader/experiment_api/workingspace_config_utils.py,sha256=DLzXQCg4dgTV_YgaSbeTVzq-2ja_SQw4zi7LXwKL9cY,990
|
|
23
23
|
code_loader/inner_leap_binder/__init__.py,sha256=koOlJyMNYzGbEsoIbXathSmQ-L38N_pEXH_HvL7beXU,99
|
|
24
|
-
code_loader/inner_leap_binder/leapbinder.py,sha256=
|
|
25
|
-
code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=
|
|
26
|
-
code_loader/leaploader.py,sha256=
|
|
27
|
-
code_loader/leaploaderbase.py,sha256=
|
|
24
|
+
code_loader/inner_leap_binder/leapbinder.py,sha256=cbw1zSAYeaRFTvcPPs5cNszs3LK8I-AiP9oJsK5A-pc,40494
|
|
25
|
+
code_loader/inner_leap_binder/leapbinder_decorators.py,sha256=YlK51b5Ryo396f7tOA7Ole3vYCLs3f5ZLm2qDQ9K1NE,105781
|
|
26
|
+
code_loader/leaploader.py,sha256=V1GXbUwY1a8Cxo6AY1h2BLutzFPTLE7iLxX4wyMsVJQ,36498
|
|
27
|
+
code_loader/leaploaderbase.py,sha256=0JMwslRs6w7psIkj4pTjYHd_pSio3vt5H-X0Lar2nBI,6428
|
|
28
28
|
code_loader/mixpanel_tracker.py,sha256=rNwRmFifNbdUoqLQvvhhgpKczWpWiEmd8MfyJe27sxw,9131
|
|
29
29
|
code_loader/plot_functions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
30
|
code_loader/plot_functions/plot_functions.py,sha256=6Q7VWGxetL2W0EK2QeCdObVATvBuHs3YBA09H4uoIk0,14996
|
|
@@ -32,7 +32,7 @@ code_loader/plot_functions/visualize.py,sha256=gsBAYYkwMh7jIpJeDMPS8G4CW-pxwx6Lz
|
|
|
32
32
|
code_loader/utils.py,sha256=YecipkdTA-VcE9F0RQcY9cFnY8P3AksPnHM2Db7xUSk,3972
|
|
33
33
|
code_loader/visualizers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
34
|
code_loader/visualizers/default_visualizers.py,sha256=onRnLE_TXfgLN4o52hQIOOhUcFexGlqJ3xSpQDVLuZM,2604
|
|
35
|
-
code_loader-1.0.
|
|
36
|
-
code_loader-1.0.
|
|
37
|
-
code_loader-1.0.
|
|
38
|
-
code_loader-1.0.
|
|
35
|
+
code_loader-1.0.181.dist-info/LICENSE,sha256=qIwWjdspQeSMTtnFZBC8MuT-95L02FPvzRUdWFxrwJY,1067
|
|
36
|
+
code_loader-1.0.181.dist-info/METADATA,sha256=QOCmvNOXjYgtVk2-N5Q-G47Z6IchT1_rxlprzM68_kM,1090
|
|
37
|
+
code_loader-1.0.181.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
38
|
+
code_loader-1.0.181.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|