@@ -27,21 +27,32 @@ def distribution_inputs(column, dist_type_name, levels=3, default_values=None):
2727 base , scaling_factor , step , ratio , manual_values = None , None , None , None , None
2828
2929 if dist_type != "Manual" :
30+ # Set min_value for Fibonacci to ensure positive start values
31+ min_start = 0.01 if dist_type == "Fibonacci" else None
3032 start = column .number_input (f"{ dist_type_name } Start Value" , value = 1.0 ,
33+ min_value = min_start ,
3134 key = f"{ column } _{ dist_type_name .lower ()} _start" )
3235 if dist_type == "Logarithmic" :
3336 base = column .number_input (f"{ dist_type_name } Log Base" , value = exp (1 ),
37+ min_value = 0.01 ,
38+ help = "Base must be greater than 0 and not equal to 1" ,
3439 key = f"{ column } _{ dist_type_name .lower ()} _base" )
3540 scaling_factor = column .number_input (f"{ dist_type_name } Scaling Factor" , value = 2.0 ,
41+ min_value = 0.01 ,
42+ help = "Scaling factor must be greater than 0" ,
3643 key = f"{ column } _{ dist_type_name .lower ()} _scaling" )
3744 elif dist_type == "Arithmetic" :
3845 step = column .number_input (f"{ dist_type_name } Step" , value = 0.3 ,
3946 key = f"{ column } _{ dist_type_name .lower ()} _step" )
4047 elif dist_type == "Geometric" :
4148 ratio = column .number_input (f"{ dist_type_name } Ratio" , value = 2.0 ,
49+ min_value = 1.0 ,
50+ help = "Ratio must be greater than or equal to 1" ,
4251 key = f"{ column } _{ dist_type_name .lower ()} _ratio" )
4352 elif dist_type == "GeoCustom" :
4453 ratio = column .number_input (f"{ dist_type_name } Ratio" , value = 2.0 ,
54+ min_value = 1.0 ,
55+ help = "Ratio must be greater than or equal to 1" ,
4556 key = f"{ column } _{ dist_type_name .lower ()} _ratio" )
4657 elif dist_type == "Linear" :
4758 step = column .number_input (f"{ dist_type_name } End" , value = 1.0 ,
0 commit comments