3939 MaybeDictToFilePath ,
4040 SanitizedOrTmpFilePath ,
4141 cmdstan_path ,
42+ cmdstan_version ,
4243 cmdstan_version_before ,
4344 do_command ,
4445 get_logger ,
@@ -333,14 +334,24 @@ def format(
333334 )
334335
335336 if canonicalize :
336- if cmdstan_version_before (2 , 29 ) or isinstance (
337- canonicalize , bool
338- ):
339- cmd .append ('--print-canonical' )
340- elif isinstance (canonicalize , str ):
341- cmd .append ('--canonicalize=' + canonicalize )
342- elif isinstance (canonicalize , Iterable ):
343- cmd .append ('--canonicalize=' + ',' .join (canonicalize ))
337+ if cmdstan_version_before (2 , 29 ):
338+ if isinstance (canonicalize , bool ):
339+ cmd .append ('--print-canonical' )
340+ else :
341+ raise ValueError (
342+ "Invalid arguments passed for current CmdStan"
343+ + " version({})\n " .format (
344+ cmdstan_version () or "Unknown"
345+ )
346+ + "--canonicalize requires 2.29 or higher"
347+ )
348+ else :
349+ if isinstance (canonicalize , str ):
350+ cmd .append ('--canonicalize=' + canonicalize )
351+ elif isinstance (canonicalize , Iterable ):
352+ cmd .append ('--canonicalize=' + ',' .join (canonicalize ))
353+ else :
354+ cmd .append ('--print-canonical' )
344355
345356 # before 2.29, having both --print-canonical
346357 # and --auto-format printed twice
@@ -349,6 +360,12 @@ def format(
349360
350361 if not cmdstan_version_before (2 , 29 ):
351362 cmd .append (f'--max-line-length={ max_line_length } ' )
363+ elif max_line_length != 78 :
364+ raise ValueError (
365+ "Invalid arguments passed for current CmdStan version"
366+ + " ({})\n " .format (cmdstan_version () or "Unknown" )
367+ + "--max-line-length requires 2.29 or higher"
368+ )
352369
353370 out = subprocess .run (
354371 cmd , capture_output = True , text = True , check = True
0 commit comments