def main()

in diagnostics/remove_protobuf_class_attribute.py [0:0]


def main():
    """
    Remove the `_class` attribute from a pbtxt node.
    """
    args = get_args()
    if args.directory:
        files = get_files(args.directory)
        if args.output == None:
            # in place modification
            args.output = args.directory
        else:
            # non-destructive output directory
            try:
                os.makedirs(args.output)
            except OSError as exc:
                if exc.errno == errno.EEXIST and os.path.isdir(args.output):
                    pass
    else:
        if args.output == None:
            # in place modification
            args.output = args.file
        files = [args.file]
    for f in files:
        output_file = args.output
        if args.directory:
            output_file += "/" + f
        sys.stdout.write(progress("Processing: " + output_file))
        lines = []
        if args.directory:
            f = args.directory + "/" + f
        for line in open(f):
            lines.append(line)
        pruned = []
        save = True
        blacklist = 0
        for i, line in enumerate(lines):
            if "_class" in line:
                del pruned[-1]
                blacklist = i + 6
                save = False
            if i > blacklist:
                save = True
            if save:
                pruned.append(line)
        with open(output_file, "w") as output:
            for line in pruned:
                output.write(line)