scilens 0.3.6__py3-none-any.whl → 0.3.7__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/components/compare_floats.py +6 -2
- scilens/config/models/compare_float_thresholds.py +8 -2
- {scilens-0.3.6.dist-info → scilens-0.3.7.dist-info}/METADATA +1 -1
- {scilens-0.3.6.dist-info → scilens-0.3.7.dist-info}/RECORD +6 -6
- {scilens-0.3.6.dist-info → scilens-0.3.7.dist-info}/WHEEL +0 -0
- {scilens-0.3.6.dist-info → scilens-0.3.7.dist-info}/entry_points.txt +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
_C='amplitude'
|
|
2
2
|
_B=False
|
|
3
3
|
_A=None
|
|
4
|
+
import logging
|
|
4
5
|
from scilens.components.compare_models import SEVERITY_ERROR,SEVERITY_WARNING,CompareGroup,CompareFloatsErr,Compare2ValuesResults
|
|
5
6
|
from scilens.components.compare_errors import CompareErrors
|
|
6
7
|
from scilens.config.models import CompareFloatThresholdsConfig
|
|
@@ -26,14 +27,17 @@ class CompareFloats:
|
|
|
26
27
|
if len(test_vector)!=len(reference_vector):raise Exception('Vectors have different lengths')
|
|
27
28
|
diffs_count=0;err_limit_reached=_B;ponderation_method=self.thresholds.vectors.ponderation_method if self.thresholds.vectors else _A
|
|
28
29
|
if ponderation_method=='RIAE':ponderation_method=A
|
|
30
|
+
if ponderation_method:logging.debug(f"Using ponderation method: {ponderation_method} with reduction_method {self.thresholds.vectors.reduction_method}")
|
|
29
31
|
amplitude_compare=_A
|
|
30
32
|
if self.thresholds.vectors and ponderation_method=='amplitude_moderation':amplitude=vector_get_amplitude(test_vector)[_C];amplitude_compare=amplitude*self.thresholds.vectors.amplitude_moderation_multiplier;reduction_method=self.thresholds.vectors.reduction_method
|
|
31
33
|
RIAE_force_severity=_A
|
|
32
34
|
if self.thresholds.vectors and ponderation_method in[A,'RIAE_midpoint']:
|
|
33
|
-
RIAE_force_severity=self.thresholds.vectors.reduction_method
|
|
34
35
|
if'CheckVectors'not in globals():raise Exception('scilens_compare not found. Please install scilens-compare package with `pip install scilens-compare`.')
|
|
35
36
|
riae_error=CheckVectors.relative_integral_absolute_error_trapezoid(reference_vector,test_vector,range(len(test_vector)))if ponderation_method==A else CheckVectors.relative_integral_absolute_error_midpoint(reference_vector,test_vector,range(len(test_vector)))
|
|
36
|
-
if riae_error
|
|
37
|
+
if riae_error is _A:logging.warning('RIAE calculation returned None. This may indicate an issue with the vectors.')
|
|
38
|
+
else:
|
|
39
|
+
RIAE_force_severity=self.thresholds.vectors.reduction_method
|
|
40
|
+
if riae_error>self.thresholds.vectors.riae_threshold:ee=CompareFloatsErr(is_relative=_B,value=riae_error);res_compare=Compare2ValuesResults(SEVERITY_ERROR,f"RIAE ({ponderation_method}) > {self.thresholds.vectors.riae_threshold}",ee);err_limit_reached=self.compare_errors.add(group,res_compare)
|
|
37
41
|
nb=len(test_vector)
|
|
38
42
|
for idx in range(nb):
|
|
39
43
|
diff=test_vector[idx]-reference_vector[idx]
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
_A=None
|
|
2
|
-
from pydantic import BaseModel,Field
|
|
3
|
-
class CompareFloatVectorsConfig(BaseModel):
|
|
2
|
+
from pydantic import BaseModel,Field,model_validator
|
|
3
|
+
class CompareFloatVectorsConfig(BaseModel):
|
|
4
|
+
reduction_method:str=Field(default='soften',description="Méthode de réduction de sévérité des erreurs. Peut être `soften` ou `ignore`. Si `soften`, réduit la sévérité de l'erreur. Si `ignore`, ne lève pas d'erreur.");ponderation_method:str=Field(description='Méthode de calcul de reduction de sévérité. Peut être`amplitude_moderation`, `RIAE`, `RIAE_trapezoid` ou `RIAE_midpoint`.');amplitude_moderation_multiplier:float|_A=Field(default=_A,description="Multipler utilisé dans l'amplitude pondérée `multiplier * |Max(Vector)-Min(Vector)|` qui sera comparée à l'erreur absolue `|Test-Reference|`.");riae_threshold:float|_A=Field(default=_A,description="Seuil de l'erreur relative intégrale absolue. Si l'erreur est supérieure à ce seuil, on appliquera la reduction_method globalement.")
|
|
5
|
+
@model_validator(mode='after')
|
|
6
|
+
def check_value_required(self):
|
|
7
|
+
A=self
|
|
8
|
+
if A.ponderation_method.startswith('RIAE')and not A.riae_threshold:raise ValueError('riae_threshold is required when ponderation_method is "RIAE"')
|
|
9
|
+
return A
|
|
4
10
|
class CompareFloatThresholdsConfig(BaseModel):relative_vs_absolute_min:float=Field(default=1e-12,description="Si la valeur de test est inférieure à ce seuil, calcul de l'erreur absolue.");relative_error_min:float=Field(default=.001,description="Si l'erreur relative est supérieure à ce seuil, génère une erreur de sévérité `warning`.");relative_error_max:float=Field(default=.01,description="Si l'erreur relative est supérieure à ce seuil, génère une erreur de sévérité `error`.");absolute_error_min:float=Field(default=1e-07,description="Si l'erreur absolue est supérieure à ce seuil, génère une erreur de sévérité `warning`.");absolute_error_max:float=Field(default=1e-06,description="Si l'erreur absolue est supérieure à ce seuil, génère une erreur de sévérité `error`.");vectors:CompareFloatVectorsConfig|_A=Field(default=_A,description='Paramètres pour la comparaison de vecteurs de flottants (csv, nc, ...).')
|
|
@@ -10,7 +10,7 @@ scilens/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
|
10
10
|
scilens/components/analyse_folder.py,sha256=yqc-dscKaHLZJCYeXGak2v0c3F2aeX0E11AFPfya6r0,208
|
|
11
11
|
scilens/components/compare_2_files.py,sha256=jbZNLbRj3x8TxUADM5QC2u_TGl4I7u5OdaEMh-gMBUk,1713
|
|
12
12
|
scilens/components/compare_errors.py,sha256=vGb4DWP89HMIeBm0dZU2nt-ksppAs_37xtCHaPd0w5Y,1640
|
|
13
|
-
scilens/components/compare_floats.py,sha256=
|
|
13
|
+
scilens/components/compare_floats.py,sha256=yYJZ_QpAZUhP1uwNtGshXQLIzKtki9ifCN3hd9AFj2U,5916
|
|
14
14
|
scilens/components/compare_folders.py,sha256=LZ1AuYxLVHMNbtXWXQrdms4vZgOQthvDy-8NFD_EFjc,2617
|
|
15
15
|
scilens/components/compare_models.py,sha256=SCPd747h_nd4ewZsqLB6CFr27v6q99NELJb-gpkdj0o,918
|
|
16
16
|
scilens/components/executor.py,sha256=j5xejkCaaPyl3V38Q4HxxXcAx4Tnj8CILAjSJ1G7OIE,3417
|
|
@@ -22,7 +22,7 @@ scilens/config/load.py,sha256=4U51o4cJfqhSuRIHKUDIsDQA0C4wv6SzTkVmInGDJdI,1647
|
|
|
22
22
|
scilens/config/models/__init__.py,sha256=eLCW1OLVINewGFy5GXSrOk8Rab_QsgKAuoErBjphHRs,673
|
|
23
23
|
scilens/config/models/app.py,sha256=JltWRjjqXYkH6rg3OHYhMfkBqHFhZEZdthqES3LxvzY,1453
|
|
24
24
|
scilens/config/models/compare.py,sha256=esRqW3PNVOqkA_mt4_qbS7dVCLulUrZTBUhANQOHoqE,1847
|
|
25
|
-
scilens/config/models/compare_float_thresholds.py,sha256=
|
|
25
|
+
scilens/config/models/compare_float_thresholds.py,sha256=mHu48-70i3o_qUw6x-1A7XeRwFUNAO6WP6qNPGwAew0,2097
|
|
26
26
|
scilens/config/models/execute.py,sha256=8issd_hg49SdVkDq2TLDB1vBJY4M1t279XERNUd3VVs,2142
|
|
27
27
|
scilens/config/models/execute_and_compare.py,sha256=TWL6yXGvQSaaV6nhHqWLvtr3v396APIoDNt0U1TbMro,582
|
|
28
28
|
scilens/config/models/file_reader.py,sha256=c18vKhVcBX4ufpbnCBJyVyAsQtlxpwx0lGVuf1i8EGA,1176
|
|
@@ -99,7 +99,7 @@ scilens/utils/template.py,sha256=9dlXX3nmfzDRUwzPJOkoxk15UXivZ2SW-McdCwokFa4,443
|
|
|
99
99
|
scilens/utils/time_tracker.py,sha256=DdVBoMpVLXrX0qZZXyLm4g38EwDVLlRcBqcpNex1mYY,545
|
|
100
100
|
scilens/utils/vectors.py,sha256=4N2BZSC5n3HgZqPujDGF5NdjVmSL1rOHb_qw4OoABQY,103
|
|
101
101
|
scilens/utils/web.py,sha256=MAFWpIFOKz7QhqDoFh-Qwstvc76KpcxstSgHFT8FOL4,901
|
|
102
|
-
scilens-0.3.
|
|
103
|
-
scilens-0.3.
|
|
104
|
-
scilens-0.3.
|
|
105
|
-
scilens-0.3.
|
|
102
|
+
scilens-0.3.7.dist-info/METADATA,sha256=eWEms5zjyE9_zLYUDfy7G_gwI518BdY2o9XZ21DrFP4,1367
|
|
103
|
+
scilens-0.3.7.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
104
|
+
scilens-0.3.7.dist-info/entry_points.txt,sha256=DaKGgxUEUv34GJAoXtta6ecL37ercejep9sCSSRQK2s,48
|
|
105
|
+
scilens-0.3.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|