@@ -503,7 +503,7 @@ def _from_value_to_raw_value(self, value: ParamDataType
503503 in zip (raw_value , self .scale ))
504504 else :
505505 # Use single scale for all values
506- raw_value *= self .scale
506+ raw_value = raw_value * self .scale
507507
508508 # apply offset next
509509 if self .offset is not None :
@@ -513,7 +513,7 @@ def _from_value_to_raw_value(self, value: ParamDataType
513513 in zip (raw_value , self .offset ))
514514 else :
515515 # Use single offset for all values
516- raw_value += self .offset
516+ raw_value = raw_value + self .offset
517517
518518 # parser last
519519 if self .set_parser is not None :
@@ -533,28 +533,34 @@ def _from_raw_value_to_value(self, raw_value: ParamRawDataType
533533 # apply offset first (native scale)
534534 if self .offset is not None :
535535 # offset values
536- if isinstance (self .offset , collections .abc .Iterable ):
537- # offset contains multiple elements, one for each value
538- value = tuple (val - offset for val , offset
539- in zip (value , self .offset ))
540- elif isinstance (value , collections .abc .Iterable ):
541- # Use single offset for all values
542- value = tuple (val - self .offset for val in value )
543- else :
544- value -= self .offset
536+ try :
537+ value = value - self .offset
538+ except TypeError :
539+ if isinstance (self .offset , collections .abc .Iterable ):
540+ # offset contains multiple elements, one for each value
541+ value = tuple (val - offset for val , offset
542+ in zip (value , self .offset ))
543+ elif isinstance (value , collections .abc .Iterable ):
544+ # Use single offset for all values
545+ value = tuple (val - self .offset for val in value )
546+ else :
547+ raise
545548
546549 # scale second
547550 if self .scale is not None :
548551 # Scale values
549- if isinstance (self .scale , collections .abc .Iterable ):
550- # Scale contains multiple elements, one for each value
551- value = tuple (val / scale for val , scale
552- in zip (value , self .scale ))
553- elif isinstance (value , collections .abc .Iterable ):
554- # Use single scale for all values
555- value = tuple (val / self .scale for val in value )
556- else :
557- value /= self .scale
552+ try :
553+ value = value / self .scale
554+ except TypeError :
555+ if isinstance (self .scale , collections .abc .Iterable ):
556+ # Scale contains multiple elements, one for each value
557+ value = tuple (val / scale for val , scale in zip (value ,
558+ self .scale ))
559+ elif isinstance (value , collections .abc .Iterable ):
560+ # Use single scale for all values
561+ value = tuple (val / self .scale for val in value )
562+ else :
563+ raise
558564
559565 if self .inverse_val_mapping is not None :
560566 if value in self .inverse_val_mapping :
0 commit comments