@@ -188,6 +188,7 @@ def custom_error(self, msg):
188188 "a0+a1*x+a2*x^2+...a_n*x^n."
189189 "n is dependent on the number of values in the "
190190 "user-inputted comma-separated list. "
191+ "Repeated and trailing commas are removed before parsing."
191192 "When this option is enabled, --hshift is disabled. "
192193 "When n>1, --stretch is disabled. "
193194 "See online documentation for more information."
@@ -522,6 +523,7 @@ def single_morph(
522523
523524 # Squeeze
524525 squeeze_poly_deg = - 1
526+ squeeze_dict_in = {}
525527 if opts .squeeze is not None :
526528 # Handles both list and csv input
527529 if (
@@ -537,12 +539,19 @@ def single_morph(
537539 ):
538540 opts .squeeze = opts .squeeze [1 :- 1 ]
539541 squeeze_coeffs = opts .squeeze .strip ().split ("," )
540- squeeze_dict_in = {}
541- for idx , coeff in enumerate (squeeze_coeffs ):
542- squeeze_dict_in .update ({f"a{ idx } " : float (coeff )})
543- squeeze_poly_deg = len (squeeze_coeffs ) - 1
542+ idx = 0
543+ for _ , coeff in enumerate (squeeze_coeffs ):
544+ if coeff .strip () != "" :
545+ try :
546+ squeeze_dict_in .update ({f"a{ idx } " : float (coeff )})
547+ idx += 1
548+ except ValueError :
549+ parser .error (f"{ coeff } could not be converted to float." )
550+ squeeze_poly_deg = len (squeeze_dict_in .keys ())
544551 chain .append (morphs .MorphSqueeze ())
545552 config ["squeeze" ] = squeeze_dict_in
553+ # config["extrap_index_low"] = None
554+ # config["extrap_index_high"] = None
546555 refpars .append ("squeeze" )
547556 # Scale
548557 if opts .scale is not None :
@@ -679,10 +688,7 @@ def single_morph(
679688 morph_inputs .update ({"hshift" : hshift_in , "vshift" : vshift_in })
680689 # More complex input morph parameters are only displayed conditionally
681690 if opts .squeeze is not None :
682- squeeze_coeffs = opts .squeeze .strip ().split ("," )
683- squeeze_dict = {}
684- for idx , coeff in enumerate (squeeze_coeffs ):
685- squeeze_dict .update ({f"a{ idx } " : float (coeff )})
691+ squeeze_dict = squeeze_dict_in .copy ()
686692 for idx , _ in enumerate (squeeze_dict ):
687693 morph_inputs .update ({f"squeeze a{ idx } " : squeeze_dict [f"a{ idx } " ]})
688694 if pymorphs is not None :
0 commit comments