scilens 0.3.9__py3-none-any.whl → 0.3.10__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.
- scilens/config/load.py +2 -2
- scilens/config/models/base.py +11 -0
- scilens/config/models/report_html.py +8 -7
- scilens/report/templates/index.html +3 -0
- scilens/report/templates/uti_frameseries.js +61 -0
- scilens/report/templates/uti_matrix.js +4 -7
- scilens/run/run_task.py +16 -9
- scilens/run/standalone_task_runner.py +1 -1
- scilens/utils/dict.py +6 -1
- {scilens-0.3.9.dist-info → scilens-0.3.10.dist-info}/METADATA +1 -1
- {scilens-0.3.9.dist-info → scilens-0.3.10.dist-info}/RECORD +13 -11
- {scilens-0.3.9.dist-info → scilens-0.3.10.dist-info}/WHEEL +0 -0
- {scilens-0.3.9.dist-info → scilens-0.3.10.dist-info}/entry_points.txt +0 -0
scilens/config/load.py
CHANGED
|
@@ -2,7 +2,7 @@ import logging,os,json,yaml
|
|
|
2
2
|
from pydantic import BaseModel
|
|
3
3
|
from scilens.config.models import AppConfig
|
|
4
4
|
from scilens.config.env_var import get_vars
|
|
5
|
-
from scilens.utils.dict import dict_path_set,dict_path_get
|
|
5
|
+
from scilens.utils.dict import dict_path_set,dict_path_get,dict_update_rec
|
|
6
6
|
PATH_ENV_VARS_VALUES={}
|
|
7
7
|
def env_vars_load():
|
|
8
8
|
B=get_vars()
|
|
@@ -25,7 +25,7 @@ def config_load(config,options_path_value=None,config_override=None):
|
|
|
25
25
|
try:I=yaml.safe_load(G)
|
|
26
26
|
except yaml.YAMLError as D:raise Exception(f"Error in configuration file {B}: {D}")
|
|
27
27
|
elif isinstance(A,dict):I=B
|
|
28
|
-
C
|
|
28
|
+
dict_update_rec(C,I)
|
|
29
29
|
for(E,H)in PATH_ENV_VARS_VALUES.items():
|
|
30
30
|
if not dict_path_get(C,E):dict_path_set(C,E,H)
|
|
31
31
|
if F:
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import types,pydantic
|
|
2
|
+
class StrOrPath(str):
|
|
3
|
+
@classmethod
|
|
4
|
+
def __get_pydantic_core_schema__(A,source_type,handler):return handler(str)
|
|
5
|
+
def __repr__(A):return f"{A.__class__.__name__}({super().__repr__()})"
|
|
6
|
+
def is_StrOrPath_and_path(value,field_info):
|
|
7
|
+
D=False;B=field_info;A=value;C='file://'
|
|
8
|
+
if not isinstance(A,str):return D,''
|
|
9
|
+
if B.annotation==StrOrPath or isinstance(B.annotation,types.UnionType)and StrOrPath in B.annotation.__args__:
|
|
10
|
+
if A.startswith(C):return True,A[len(C):]
|
|
11
|
+
return D,''
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
_C=False
|
|
1
|
+
_C="Paramètre modifiable par l'utilisateur"
|
|
3
2
|
_B=True
|
|
4
3
|
_A=None
|
|
5
4
|
from pydantic import BaseModel,Field
|
|
6
|
-
|
|
7
|
-
class
|
|
8
|
-
class
|
|
5
|
+
from scilens.config.models.base import StrOrPath
|
|
6
|
+
class ReportParameterPageModeConfig(BaseModel):is_user_preference:bool=Field(default=_B,description=_C);default_value:str=Field(default='onepage',description='`tabs` ou `onepage`')
|
|
7
|
+
class ReportParameterOpenFileInConfig(BaseModel):is_user_preference:bool=Field(default=_B,description=_C);default_value:str=Field(default='browser',description='`browser` ou `vscode`')
|
|
8
|
+
class ReportHtmlCurvesConfig(BaseModel):display_on_load:bool=Field(default=False,description="Si `true`, affiche tous les graphiques courbes à l'ouverture du rapport.");init_width:int=Field(default=600,description='Largeur initiale des graphiques courbes.');init_height:int=Field(default=400,description='Hauteur initiale des graphiques courbes.');compare_vs_values:bool=Field(default=_B,description='Dans le chart de comparaison, affiche les valeurs de référence et de test.');compare_vs_difference:bool=Field(default=False,description='Dans le chart de comparaison, affiche la différence entre les valeurs de référence et de test.')
|
|
9
9
|
class ReportHtmlSpectrogramsConfig(BaseModel):test_ref:bool=Field(default=_B,description='Indique si les spectrogrammes de test doivent être affichés.');differences:bool=Field(default=_B,description='Indique si les spectrogrammes de différence doivent être affichés.');init_width:int=Field(default=300,description='Largeur initiale des spectrogrammes.');init_height:int=Field(default=300,description='Hauteur initiale des spectrogrammes.')
|
|
10
|
-
class
|
|
11
|
-
class
|
|
10
|
+
class ReportHtmlFrameseriesConfig(BaseModel):width:int=Field(default=300,description='Largeur initiale des graphiques frameseries.');height:int=Field(default=300,description='Hauteur initiale des graphiques frameseries.')
|
|
11
|
+
class ReportHtmlMatrixConfig(BaseModel):spectrograms:ReportHtmlSpectrogramsConfig|_A=_A;frameseries:ReportHtmlFrameseriesConfig|_A=_A
|
|
12
|
+
class ReportHtmlConfig(BaseModel):custom_style:StrOrPath|_A=Field(default=_A,description='CSS personnalisé.');custom_script_head:StrOrPath|_A=Field(default=_A,description="Script personnalisé dans le `<head>`. Chaine de caractères ou chemin d'un fichier sous la forme `file://`.");custom_script_body:StrOrPath|_A=Field(default=_A,description="Script personnalisé en fin de `<body>`. Chaine de caractères ou chemin d'un fichier sous la forme `file://`.");extra_html_start:StrOrPath|_A=Field(default=_A,description="HTML personnalisé en début de rapport. Chaine de caractères ou chemin d'un fichier sous la forme `file://`.");extra_html_summary:StrOrPath|_A=Field(default=_A,description="HTML personnalisé dans la section `Summary`. Chaine de caractères ou chemin d'un fichier sous la forme `file://`.");extra_html_end:StrOrPath|_A=Field(default=_A,description="HTML personnalisé en fin de rapport. Chaine de caractères ou chemin d'un fichier sous la forme `file://`.");logo_height:int=Field(default=40,description='Hauteur du logo dans le titre.');compare_color_test:str=Field(default='1982c4',description='Couleur pour les données de test.');compare_color_reference:str=Field(default='6a4c93',description='Couleur pour les données de référence.');collapse_if_successful:bool=Field(default=_B,description="N'affiche par défaut les sections de comparaison sans erreur.");parameter_page_mode:ReportParameterPageModeConfig=ReportParameterPageModeConfig();parameter_open_file_in:ReportParameterOpenFileInConfig=ReportParameterOpenFileInConfig();curves:ReportHtmlCurvesConfig=ReportHtmlCurvesConfig();matrix:ReportHtmlMatrixConfig=ReportHtmlMatrixConfig()
|
|
@@ -47,6 +47,9 @@ Spectrograms.config({
|
|
|
47
47
|
"HEIGHT": {{ meta.config.matrix.spectrograms.init_height }},
|
|
48
48
|
});
|
|
49
49
|
{% endif %}
|
|
50
|
+
{% if meta.config.matrix.frameseries %}
|
|
51
|
+
{% include 'uti_frameseries.js' %}
|
|
52
|
+
{% endif %}
|
|
50
53
|
{% if ns.has_matrices %}{% include 'uti_matrix.js' %}{% endif %}
|
|
51
54
|
|
|
52
55
|
</script>
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
((w_1, undef) => {
|
|
2
|
+
|
|
3
|
+
//
|
|
4
|
+
//
|
|
5
|
+
//
|
|
6
|
+
const PREFIX = "frameseries_"; // section prefix
|
|
7
|
+
const CFG = {
|
|
8
|
+
"WIDTH": 300, // default width
|
|
9
|
+
"HEIGHT": 300, // default height
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
//
|
|
13
|
+
class Frameseries {
|
|
14
|
+
constructor(index, arr_mat, frames_vector) {
|
|
15
|
+
// DEBUG
|
|
16
|
+
// console.log("index", index);
|
|
17
|
+
// console.log("arr_mat", arr_mat);
|
|
18
|
+
// console.log("frames_vector", frames_vector);
|
|
19
|
+
// data
|
|
20
|
+
this.size = [CFG.WIDTH, CFG.HEIGHT]; // default size
|
|
21
|
+
this.arr_mat = arr_mat;
|
|
22
|
+
this.elt = dom.get(PREFIX+(1+index));
|
|
23
|
+
// frames
|
|
24
|
+
if (frames_vector) {
|
|
25
|
+
this.frame_len = frames_vector.length;
|
|
26
|
+
this.frame_min = frames_vector[0];
|
|
27
|
+
this.frame_max = frames_vector[this.frame_len-1];
|
|
28
|
+
} else {
|
|
29
|
+
this.frame_len = arr_mat[0].data.length;
|
|
30
|
+
this.frame_min = 0;
|
|
31
|
+
this.frame_max = this.frame_len-1;
|
|
32
|
+
}
|
|
33
|
+
// init
|
|
34
|
+
this.init();
|
|
35
|
+
}
|
|
36
|
+
init() {
|
|
37
|
+
// resize
|
|
38
|
+
const that = this;
|
|
39
|
+
//
|
|
40
|
+
// const tmpls = []
|
|
41
|
+
// this.arr_mat.forEach((mat, i) => { tmpls.push({tag:"button", html: mat.name, click: function() { that.var_toogle(i); } }) });
|
|
42
|
+
const tmpls = data.arr_mat.map((x,i) => { return {out:"variable_"+i, tag:"div", style:"width:"+this.size+"px;height:"+this.size+"px;"} ; } );
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
var_get_id(idx) {
|
|
47
|
+
return PREFIX+"block_"+idx;
|
|
48
|
+
}
|
|
49
|
+
var_toogle(idx) {
|
|
50
|
+
if (dom.get(this.var_get_id(idx))) { this.var_rmv(idx); }
|
|
51
|
+
else { this.var_add(idx); }
|
|
52
|
+
}
|
|
53
|
+
var_add(idx) {
|
|
54
|
+
}
|
|
55
|
+
var_rmv(idx) {
|
|
56
|
+
dom.get(this.var_get_id(idx)).remove();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
Frameseries.config = function(cfg) {for (k in cfg) {CFG[k] = cfg[k];}};
|
|
60
|
+
w_1.Frameseries = Frameseries;
|
|
61
|
+
})(window);
|
|
@@ -70,7 +70,7 @@ const MatrixMgmt = {
|
|
|
70
70
|
const group_data = [];
|
|
71
71
|
const ref = g.reference[i];
|
|
72
72
|
data.datasets.forEach((dataset, j) => {
|
|
73
|
-
console.log(dataset);
|
|
73
|
+
// console.log(dataset);
|
|
74
74
|
const mat = new Matrix(
|
|
75
75
|
dataset.data,
|
|
76
76
|
dataset.x_values,
|
|
@@ -88,13 +88,10 @@ const MatrixMgmt = {
|
|
|
88
88
|
// IMPORTANT
|
|
89
89
|
// Release Global
|
|
90
90
|
delete GLOBAL_VARS.matrices;
|
|
91
|
-
// Init
|
|
91
|
+
// Init Frameseries / Spectrograms
|
|
92
92
|
this.groups.forEach((group, i) => {
|
|
93
|
-
|
|
94
|
-
if (
|
|
95
|
-
const spec = new Spectrograms(i, group.arr);
|
|
96
|
-
}
|
|
97
|
-
// Init Frameseries
|
|
93
|
+
if (has_spectrograms) { new Spectrograms(i, group.arr); }
|
|
94
|
+
if (has_frameseries) { new Frameseries(i, group.arr); }
|
|
98
95
|
}
|
|
99
96
|
);
|
|
100
97
|
},
|
scilens/run/run_task.py
CHANGED
|
@@ -11,24 +11,31 @@ from scilens.report.report import Report
|
|
|
11
11
|
from scilens.utils.system import info as system_info
|
|
12
12
|
from scilens.utils.time_tracker import TimeTracker
|
|
13
13
|
from scilens.utils.template import template_render_string
|
|
14
|
+
from scilens.config.models.base import is_StrOrPath_and_path
|
|
14
15
|
def var_render(value,runtime):return template_render_string(value,runtime.model_dump())
|
|
15
16
|
def runtime_process_vars(config):
|
|
16
17
|
A=TaskRuntime(sys=system_info(),env=os.environ.copy(),vars={})
|
|
17
18
|
for(B,C)in config.variables.items():A.vars[B]=var_render(C,A)
|
|
18
19
|
return A
|
|
19
|
-
def runtime_apply_to_config(runtime,config_model):
|
|
20
|
-
|
|
21
|
-
for(
|
|
22
|
-
A=getattr(B,
|
|
23
|
-
if
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
def runtime_apply_to_config(runtime,config_model,working_dir):
|
|
21
|
+
G=working_dir;D=runtime;B=config_model
|
|
22
|
+
for(C,H)in B.__class__.__pydantic_fields__.items():
|
|
23
|
+
A=getattr(B,C);I,E=is_StrOrPath_and_path(A,H)
|
|
24
|
+
if I:
|
|
25
|
+
F=os.path.join(G,E)if not os.path.isabs(E)else E
|
|
26
|
+
if not os.path.exists(F):raise Exception(f"Config {C}: {A} Path '{F}' does not exist.")
|
|
27
|
+
else:
|
|
28
|
+
with open(F,'r')as J:A=J.read();setattr(B,C,A)
|
|
29
|
+
K=issubclass(A.__class__,BaseModel);L=isinstance(A.__class__,type)and issubclass(A.__class__,Enum);M=isinstance(A,str);N=isinstance(A,list)and all(isinstance(A,str)for A in A);O=isinstance(A,dict)and all(isinstance(A,str)and isinstance(B,str)for(A,B)in A.items())
|
|
30
|
+
if K:runtime_apply_to_config(D,A,G)
|
|
31
|
+
elif M and not L:setattr(B,C,var_render(A,D))
|
|
32
|
+
elif N:setattr(B,C,[var_render(A,D)for A in A])
|
|
33
|
+
elif O:setattr(B,C,{A:var_render(B,D)for(A,B)in A.items()})
|
|
27
34
|
class RunTask:
|
|
28
35
|
def __init__(A,context):A.context=context
|
|
29
36
|
def _get_processors(A):return{A.__name__:A for A in[Analyse,Compare,ExecuteAndCompare]}
|
|
30
37
|
def process(A):
|
|
31
|
-
logging.info(f"Running task");logging.info(f"Prepare runtime variables");H=runtime_process_vars(A.context.config);logging.info(f"Apply runtime variables to config");runtime_apply_to_config(H,A.context.config);logging.debug(f"on working_dir '{A.context.working_dir}'");logging.debug(f"with origin_working_dir '{A.context.origin_working_dir}'");logging.debug(f"with config {A.context.config.model_dump_json(indent=4)}");C=A.context.config.processor
|
|
38
|
+
logging.info(f"Running task");logging.info(f"Prepare runtime variables");H=runtime_process_vars(A.context.config);logging.info(f"Apply runtime variables to config");runtime_apply_to_config(H,A.context.config,A.context.working_dir);logging.debug(f"on working_dir '{A.context.working_dir}'");logging.debug(f"with origin_working_dir '{A.context.origin_working_dir}'");logging.debug(f"with config {A.context.config.model_dump_json(indent=4)}");C=A.context.config.processor
|
|
32
39
|
if not C:raise Exception('Processor not defined in config.')
|
|
33
40
|
D=A._get_processors().get(C)
|
|
34
41
|
if not D:raise Exception('Processor not found.')
|
|
@@ -5,5 +5,5 @@ from scilens.run.run_task import RunTask
|
|
|
5
5
|
from scilens.config.models import AppConfig
|
|
6
6
|
class StandaloneTaskRunner:
|
|
7
7
|
config:AppConfig;config_path=None
|
|
8
|
-
def __init__(A,config):A.config=config_load(config)
|
|
8
|
+
def __init__(A,config,config_override=None):A.config=config_load(config,config_override=config_override)
|
|
9
9
|
def process(A,working_dir,origin_working_dir=None):B=TaskContext(config=A.config,config_file=A.config_path,working_dir=working_dir,origin_working_dir=origin_working_dir);C=RunTask(B);D=C.process();return D
|
scilens/utils/dict.py
CHANGED
|
@@ -3,4 +3,9 @@ def dict_path_set(obj,path,value):
|
|
|
3
3
|
A=obj;B=path.split('.')
|
|
4
4
|
for C in B[:-1]:A=A.setdefault(C,{})
|
|
5
5
|
A[B[-1]]=value
|
|
6
|
-
def dict_path_get(obj,path):return reduce(dict.get,path.split('.'),obj)
|
|
6
|
+
def dict_path_get(obj,path):return reduce(dict.get,path.split('.'),obj)
|
|
7
|
+
def dict_update_rec(base,updates):
|
|
8
|
+
A=base
|
|
9
|
+
for(B,C)in updates.items():
|
|
10
|
+
if B in A and isinstance(A[B],dict)and isinstance(C,dict):dict_update_rec(A[B],C)
|
|
11
|
+
else:A[B]=C
|
|
@@ -18,9 +18,10 @@ scilens/components/file_reader.py,sha256=7SbKCqb4Co_pqAKX3wweYhqAcVkU7BDlT903sLd
|
|
|
18
18
|
scilens/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
19
|
scilens/config/cli_run_options.py,sha256=Ls7yK5QDUPFbk73nbjGuPvuRbBRYw4Miag5ISpu3prg,281
|
|
20
20
|
scilens/config/env_var.py,sha256=NqNBoIfngJEXaGEm7jGqre5pmkJ9eUjiWzbDrTVfi2c,292
|
|
21
|
-
scilens/config/load.py,sha256=
|
|
21
|
+
scilens/config/load.py,sha256=ltcv90GlsMJR2FE2ZL_jDscL7k5aGoHoMatWw61lrTw,1672
|
|
22
22
|
scilens/config/models/__init__.py,sha256=eLCW1OLVINewGFy5GXSrOk8Rab_QsgKAuoErBjphHRs,673
|
|
23
23
|
scilens/config/models/app.py,sha256=JltWRjjqXYkH6rg3OHYhMfkBqHFhZEZdthqES3LxvzY,1453
|
|
24
|
+
scilens/config/models/base.py,sha256=k92CR8TA5L8dZJtg28c8albk16AK9-3umdosA7aYsxw,499
|
|
24
25
|
scilens/config/models/compare.py,sha256=esRqW3PNVOqkA_mt4_qbS7dVCLulUrZTBUhANQOHoqE,1847
|
|
25
26
|
scilens/config/models/compare_float_thresholds.py,sha256=mHu48-70i3o_qUw6x-1A7XeRwFUNAO6WP6qNPGwAew0,2097
|
|
26
27
|
scilens/config/models/execute.py,sha256=Hx3DoDJ0fq7bZruqwtPtSKL6PVOF_LpsaDCLrn5klLk,2325
|
|
@@ -33,7 +34,7 @@ scilens/config/models/reader_format_txt.py,sha256=eHg90gwEI_VpqwqEjMRhwlS8dHcl5G
|
|
|
33
34
|
scilens/config/models/reader_format_txt_fixed_cols.py,sha256=SQ84OW9BLc5mr_TC6gQuYzzHJvrU-sVz223WOtAQMc0,1133
|
|
34
35
|
scilens/config/models/readers.py,sha256=oWdE4AkckvwN6boln55orq3hUeAt6S9IdQAZkGROR6E,1657
|
|
35
36
|
scilens/config/models/report.py,sha256=6mzqZMJnS_z5Rs01ISo8L8HRcWvmiQrK0dYqu8a58vM,993
|
|
36
|
-
scilens/config/models/report_html.py,sha256=
|
|
37
|
+
scilens/config/models/report_html.py,sha256=3epqs-tyjicueMqh3b52JP0HURG0reLwYfkXt5VUWA8,3621
|
|
37
38
|
scilens/config/models/report_output.py,sha256=XoqUe-t-y8GRbUR3_bDwwaWf6hif-rZ-5pKDGdCMugw,875
|
|
38
39
|
scilens/helpers/assets.py,sha256=XphDA3-yE1PPKw4XFZhDrlLQjMZfGMlpOBXa8uy_xX0,1552
|
|
39
40
|
scilens/helpers/search_and_index.py,sha256=kXZ7124ra_SGAdKUZ7msy55UOWQ9dCSuPuNoU-NdUyM,1522
|
|
@@ -71,7 +72,7 @@ scilens/report/templates/compare_12_sections.html,sha256=EYYMqF2HeRXnWRke2vn9O2J
|
|
|
71
72
|
scilens/report/templates/compare_13_section_numbers copy.html,sha256=0PWK_I2kNX3LjPLkkY4eSYIeB7YFkA28nk-PPLDhnaY,1753
|
|
72
73
|
scilens/report/templates/compare_13_section_numbers.html,sha256=9etEMSqwrDyJIn_nMbKEVaDgnFL_hBxSjPR-hU2wgDI,851
|
|
73
74
|
scilens/report/templates/compare_13_section_numbers_table.html,sha256=sJy6ZYtjl80vM1b3oqZSXawZWp7KNIwLI_wCnvBwYPE,3270
|
|
74
|
-
scilens/report/templates/index.html,sha256=
|
|
75
|
+
scilens/report/templates/index.html,sha256=9XHzIJ6MPYq059oL1yoz01zv2LTVRcaTHmdspd3dS-c,5844
|
|
75
76
|
scilens/report/templates/js_chartlibs_echarts.js,sha256=6YicVhTNIBmmBpV31XCVN5oBeiD0t29JIosJZRUv01M,907
|
|
76
77
|
scilens/report/templates/js_chartlibs_plotly.js,sha256=3uiQfbd95NMN-3N2NX3c4CC7zFb0JRtH-ZzezDVGeO8,2111
|
|
77
78
|
scilens/report/templates/js_com_page.js,sha256=Q-_Smn77IYIAdlrS1zJtsVIYBOL1t-J1AYYJKji4eL0,6864
|
|
@@ -79,7 +80,8 @@ scilens/report/templates/js_curvemgr.js,sha256=gnRLO6HbZOMLIBQKjVhV2PciqXtuNKxpG
|
|
|
79
80
|
scilens/report/templates/js_dom.js,sha256=XnxgdB0x-Xtt0eQFrwjcFO1cb_KPsTImpJBB6m_y8FI,1229
|
|
80
81
|
scilens/report/templates/js_palette.js,sha256=HeewAmkR67QiqXSanJS3cCgp6IPKomlULUTKt55F6es,218
|
|
81
82
|
scilens/report/templates/style.css,sha256=SOKxdCqoj0yBt2zt3g1RkYx4ZV0_9PhGtO-TDWjmSHE,4217
|
|
82
|
-
scilens/report/templates/
|
|
83
|
+
scilens/report/templates/uti_frameseries.js,sha256=bYWmGByfWVHPfh-_3O7u10fhYd8SjWorXz4XzPpbp0A,1600
|
|
84
|
+
scilens/report/templates/uti_matrix.js,sha256=7QSslQ6RsHJGLuf4gnxpWYL8QVTcsjiV3ruGXo67PaM,2949
|
|
83
85
|
scilens/report/templates/uti_spectrograms.js,sha256=WYnNt5d8aGIeUCXy8q3MWRtpJzr4htMiH-mlxXpBeug,3586
|
|
84
86
|
scilens/report/templates/utils_compare_report_anim.js,sha256=6Yg1nQDrmAQSJzHtsmA0CO2Ng1ddiLIhrbKXSZAB-Ms,2971
|
|
85
87
|
scilens/report/templates/utils_compare_report_framesseries.js,sha256=kg5NDVJYL0dF2cwdunD4WpnckvfGOsxXuO1ttmEV8hw,5766
|
|
@@ -88,11 +90,11 @@ scilens/report/vendors/tailwindcss_min_4.0.0-beta.4.js,sha256=fy2LOvMX7m4b1V9Wdt
|
|
|
88
90
|
scilens/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
91
|
scilens/run/models/task_results.py,sha256=hdr_QEwMnjdfdawpfuBRMGqCHWQvsF61G39CVEMXKl8,284
|
|
90
92
|
scilens/run/models/task_runtime.py,sha256=VNbMPS1ocl6WUDG5ipUxp3RSAST2OZ5DqGcfJWFEed8,114
|
|
91
|
-
scilens/run/run_task.py,sha256=
|
|
92
|
-
scilens/run/standalone_task_runner.py,sha256=
|
|
93
|
+
scilens/run/run_task.py,sha256=EDi9Lk69DC5ik9ArWF47hZ5j9Z_TTAES7liTXzuUZEg,3183
|
|
94
|
+
scilens/run/standalone_task_runner.py,sha256=QYUZ22YPV8hlUFANRcfxy_RXAmwKSfb7glPqPdcgdMA,568
|
|
93
95
|
scilens/run/task_context.py,sha256=NnujvpwnxY-YEzivYPYWaX-YChcZlEXt9y0_DXLqZkk,659
|
|
94
96
|
scilens/run/tasks_collector.py,sha256=m_FQaJdQRi4fCLW17ryJxU0TvGNJN54JTw2Mg6XPojY,3174
|
|
95
|
-
scilens/utils/dict.py,sha256=
|
|
97
|
+
scilens/utils/dict.py,sha256=ORdZ_521Em4YjV5S8EqzESi9eM2Dh5CR4JpLbd8JASk,384
|
|
96
98
|
scilens/utils/file.py,sha256=ljtTHCvT7vfDSbHA-5aKDl9885SVce3TBXWRIA-aRx0,1664
|
|
97
99
|
scilens/utils/load_model_from_file.py,sha256=k5I-B6s5nVZu90MgzKSM0_IRj9oNL-4oJJRTwEvOyw8,619
|
|
98
100
|
scilens/utils/php.py,sha256=VBJxpzwwRPNcr3379f6ViwhpTzjGc4BKlSXHv4lnor8,444
|
|
@@ -101,7 +103,7 @@ scilens/utils/template.py,sha256=9dlXX3nmfzDRUwzPJOkoxk15UXivZ2SW-McdCwokFa4,443
|
|
|
101
103
|
scilens/utils/time_tracker.py,sha256=DdVBoMpVLXrX0qZZXyLm4g38EwDVLlRcBqcpNex1mYY,545
|
|
102
104
|
scilens/utils/vectors.py,sha256=4N2BZSC5n3HgZqPujDGF5NdjVmSL1rOHb_qw4OoABQY,103
|
|
103
105
|
scilens/utils/web.py,sha256=MAFWpIFOKz7QhqDoFh-Qwstvc76KpcxstSgHFT8FOL4,901
|
|
104
|
-
scilens-0.3.
|
|
105
|
-
scilens-0.3.
|
|
106
|
-
scilens-0.3.
|
|
107
|
-
scilens-0.3.
|
|
106
|
+
scilens-0.3.10.dist-info/METADATA,sha256=aPB0OOpdRzsrIsxsGSYKGtJOVQ0lk_0-Zfgi8G3x0mc,1368
|
|
107
|
+
scilens-0.3.10.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
108
|
+
scilens-0.3.10.dist-info/entry_points.txt,sha256=DaKGgxUEUv34GJAoXtta6ecL37ercejep9sCSSRQK2s,48
|
|
109
|
+
scilens-0.3.10.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|