def get_print_functions(settings):
verbose = settings["<STR_LIT>"]<EOL>def sprint(message, level=None, color=False):<EOL><INDENT>if level=="<STR_LIT>" and not verbose:<EOL><INDENT>return<EOL><DEDENT>prepend = "<STR_LIT>"<EOL>postfix = "<STR_LIT>"<EOL>if settings["<STR_LIT>"] and color:<EOL><INDENT>prepend = "<STR_LIT>"<EOL>postfix = "<STR_LIT>"<EOL><DEDENT>print("<STR_LIT>".format(prepend, message, postfix))<EOL>sys.stdout.flush()<EOL><DEDENT>def warn(message, level=None, color=True):<EOL><INDENT>if level=="<STR_LIT>" and not verbose:<EOL><INDENT>return<EOL><DEDENT>prepend = "<STR_LIT>"<EOL>postfix = "<STR_LIT>"<EOL>if settings["<STR_LIT>"] and color:<EOL><INDENT>prepend = "<STR_LIT>"<EOL>postfix = "<STR_LIT>"<EOL><DEDENT>print("<STR_LIT>".format(prepend, message, postfix))<EOL>sys.stdout.flush()<EOL><DEDENT>def error(message, level=None, color=True):<EOL><INDENT>if level=="<STR_LIT>" and not verbose:<EOL><INDENT>return<EOL><DEDENT>prepend = "<STR_LIT>"<EOL>postfix = "<STR_LIT>"<EOL>if settings["<STR_LIT>"] and color:<EOL><INDENT>prepend = "<STR_LIT>"<EOL>postfix = "<STR_LIT>"<EOL><DEDENT>print("<STR_LIT>".format(prepend, message, postfix), file=sys.stderr)<EOL>sys.stderr.flush()<EOL><DEDENT>return sprint, warn, error<EOL>
This returns the appropriate print functions
in a tuple
The print function are:
    - sprint - for standard printing
    - warn - for warnings
    - error - for errors
This will all be the same if color is False.

The returned print functions will contain an optional parameter
that specifies the output level (verbose or not). If not verbose,
the print function will ignore the message.