@@ -354,6 +354,9 @@ def __init__(self, rule, lineno=None, snakefile=None):
354354class AmbiguousRuleException (RuleException ):
355355 def __init__ (self , filename , job_a , job_b , lineno = None , snakefile = None ):
356356 from snakemake import utils
357+ from snakemake .io import pretty_print_iofile
358+
359+ filename = pretty_print_iofile (filename )
357360
358361 wildcards_a = utils .format ("{}" , job_a ._format_wildcards )
359362 wildcards_b = utils .format ("{}" , job_b ._format_wildcards )
@@ -390,10 +393,11 @@ def __init__(self, repeatedrule, file, rule=None):
390393
391394class MissingRuleException (RuleException ):
392395 def __init__ (self , file , lineno = None , snakefile = None ):
396+ from snakemake .io import pretty_print_iofile
397+
393398 super ().__init__ (
394- "No rule to produce {} (if you use input functions make sure that they don't raise unexpected exceptions)." .format (
395- file
396- ),
399+ f"No rule to produce { pretty_print_iofile (file )} (if you use input "
400+ "functions make sure that they don't raise unexpected exceptions)." ,
397401 lineno = lineno ,
398402 snakefile = snakefile ,
399403 )
@@ -416,13 +420,17 @@ def __init__(self, lineno=None, snakefile=None):
416420
417421class IncompleteFilesException (RuleException ):
418422 def __init__ (self , files ):
423+ from snakemake .io import pretty_print_iofile
424+
419425 super ().__init__ (
420426 "The files below seem to be incomplete. "
421427 "If you are sure that certain files are not incomplete, "
422428 "mark them as complete with\n \n "
423429 " snakemake --cleanup-metadata <filenames>\n \n "
424430 "To re-generate the files rerun your command with the "
425- "--rerun-incomplete flag.\n Incomplete files:\n {}" .format ("\n " .join (files ))
431+ "--rerun-incomplete flag.\n Incomplete files:\n {}" .format (
432+ "\n " .join (map (pretty_print_iofile , files ))
433+ )
426434 )
427435
428436
0 commit comments