[docs]defgetTFactorMag(value:Number,metric_md:MetricMetaData)->Tuple[float,Magnitude]:"""Get transformation factor and magnitude to improve string formating. Parameters ---------- value : Number Reference value metric_md : MetricMetaData Value description Returns ------- Tuple[float, Magnitude] Scaling factor and Magnitude Enum """if(metric_md.unit==Unit.WATTormetric_md.unit==Unit.JOULEormetric_md.unit==Unit.BYTE):transformFactor=1formaginreversed(Magnitude):ifvalue>mag.value:transformFactor=mag.valuebreaknewMag=Magnitude(metric_md.mag.value*transformFactor)returntransformFactor,newMagelifmetric_md.unit==Unit.PERCENT:return1.0,metric_md.magelifmetric_md.unit==Unit.SECOND:return1.0,Magnitude.ONEelse:return1.0,metric_md.mag
[docs]defvalue2ValueUnitStr(value:Number,metric_md:MetricMetaData)->str:"""Return a printable representation as [Value:.3f][mag][unit] (e.g. 3.05mV) of the value based on its metric metadata. Parameters ---------- value : Number Value to apply formating to. metric_md : MetricMetaData Value metadata. Returns ------- str String represenation """tfactor,new_mag=getTFactorMag(value,metric_md)returnf"{value/tfactor:.3f}{new_mag.symbol}{metric_md.unit.value}"
[docs]defvalue2MeanStdStr(stats:Stats)->str:"""Return a printable representation as [Value:.3f]±[std:.3f][mag][unit] (e.g. 3.05±0.1mV) of the value based on its metric metadata. Parameters ---------- stats : Stats obj Stats to apply formating to. metric_md : MetricMetaData Value metadata. Returns ------- str String represenation """tfactor,new_mag=getTFactorMag(stats.mean,stats.metric_md)returnf"{stats.mean/tfactor:.2f} ± {stats.std/tfactor:.2f}{new_mag.symbol}{stats.metric_md.unit.value}"