#!/usr/bin/env python """ Escapes a file into a form suitable for use with tool tests using re_match or re_match_multiline (when -m/--multiline option is used) usage: re_escape_output.py [options] input_file [output_file] -m: Use Multiline Matching """ import optparse import re def __main__(): parser = optparse.OptionParser() parser.add_option( "-m", "--multiline", action="store_true", dest="multiline", default=False, help="Use Multiline Matching" ) options, args = parser.parse_args() input = open(args[0], "rb") if len(args) > 1: output = open(args[1], "wb") else: if options.multiline: suffix = "re_match_multiline" else: suffix = "re_match" output = open(f"{args[0]}.{suffix}", "wb") if options.multiline: lines = [re.escape(input.read())] else: lines = ["{}\n".format(re.escape(line.rstrip("\n\r"))) for line in input] output.writelines(lines) output.close() if __name__ == "__main__": __main__()