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 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.update(I)
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
- _D="Paramètre modifiable par l'utilisateur"
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
- class ReportParameterPageModeConfig(BaseModel):is_user_preference:bool=Field(default=_B,description=_D);default_value:str=Field(default='onepage',description='`tabs` ou `onepage`')
7
- class ReportParameterOpenFileInConfig(BaseModel):is_user_preference:bool=Field(default=_B,description=_D);default_value:str=Field(default='browser',description='`browser` ou `vscode`')
8
- class ReportHtmlCurvesConfig(BaseModel):display_on_load:bool=Field(default=_C,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=_C,description='Dans le chart de comparaison, affiche la différence entre les valeurs de référence et de test.')
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 ReportHtmlMatrixConfig(BaseModel):spectrograms:ReportHtmlSpectrogramsConfig|_A=_A;frameseries:bool=Field(default=_C,description='Indique si les matrices doivent être affichées en mode frameseries.')
11
- class ReportHtmlConfig(BaseModel):custom_style:str|_A=Field(default=_A,description='CSS personnalisé.');custom_script_head:str|_A=Field(default=_A,description='Script personnalisé dans le `<head>`.');custom_script_body:str|_A=Field(default=_A,description='Script personnalisé en fin de `<body>`.');extra_html_start:str|_A=Field(default=_A,description='HTML personnalisé en début de rapport.');extra_html_summary:str|_A=Field(default=_A,description='HTML personnalisé dans la section `Summary`.');extra_html_end:str|_A=Field(default=_A,description='HTML personnalisé en fin de rapport.');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()
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
- // Init Spectrograms
94
- if (has_spectrograms) {
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
- C=runtime;B=config_model
21
- for(D,J)in B.__class__.__pydantic_fields__.items():
22
- A=getattr(B,D);E=issubclass(A.__class__,BaseModel);F=isinstance(A.__class__,type)and issubclass(A.__class__,Enum);G=isinstance(A,str);H=isinstance(A,list)and all(isinstance(A,str)for A in A);I=isinstance(A,dict)and all(isinstance(A,str)and isinstance(B,str)for(A,B)in A.items())
23
- if E:runtime_apply_to_config(C,A)
24
- elif G and not F:setattr(B,D,var_render(A,C))
25
- elif H:setattr(B,D,[var_render(A,C)for A in A])
26
- elif I:setattr(B,D,{A:var_render(B,C)for(A,B)in A.items()})
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scilens
3
- Version: 0.3.9
3
+ Version: 0.3.10
4
4
  Summary: A CesGensLaB framework for data collecting and deep analysis
5
5
  Home-page: https://scilens.dev
6
6
  License: Proprietary
@@ -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=4U51o4cJfqhSuRIHKUDIsDQA0C4wv6SzTkVmInGDJdI,1647
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=EqP42x6dupXzHzP4Ar7sP7mmZp1TqpUzgOYV-8FSoOk,3040
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=fcC1jrG2nhmCSzXUV6fe14pRlNQ6CAgGRHMHhlx6nNg,5757
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/uti_matrix.js,sha256=N2fNH_E3Km6H60IOW-BjL0LIKTuJ2eGIHnJV_O354es,2936
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=suCnACK2RmcwGdmOUAxnb0UD3LC_VT8RH9S525rsr14,2828
92
- scilens/run/standalone_task_runner.py,sha256=D3SUgVzoYtFvfDRacX286gXswuyN4z37et_qxfly4Rs,515
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=1MVQc8vZCs8_gQJMBkBSXO828wMe2eIWFiraLVmcjqk,214
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.9.dist-info/METADATA,sha256=ylBI_UDX3OeXxMTpfxODknkBUEFLGyE-_YU88jb6mn8,1367
105
- scilens-0.3.9.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
106
- scilens-0.3.9.dist-info/entry_points.txt,sha256=DaKGgxUEUv34GJAoXtta6ecL37ercejep9sCSSRQK2s,48
107
- scilens-0.3.9.dist-info/RECORD,,
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,,