code: def make_parser(add_help=True, exclude_args=None):
      if exclude_args is None:
          exclude_args = []
      parser = argparse.ArgumentParser(add_help=add_help)
      parser.description = ("Filter, transform and export a list of JSON "
                            "objects on stdin to JSON or CSV on stdout")
      if "--columns" not in exclude_args:
          parser.add_argument(
              "--columns", dest="columns_file",
              help="the JSON file specifying the columns to be output",
          )
      if ("-i" not in exclude_args) and ("--input" not in exclude_args):
          parser.add_argument(
              "-i", "--input",
              help="read input from the given file instead of from stdin",
              dest='input_data',
          )
      if ("-c" not in exclude_args) and ("--column" not in exclude_args):
          parser.add_argument("-c", "--column", action=ColumnsAction)
      if "--pattern" not in exclude_args:
          parser.add_argument("--pattern", action=ColumnsAction, nargs='+')
      if "--max-length" not in exclude_args:
          parser.add_argument("--max-length", action=ColumnsAction)
      if "--strip" not in exclude_args:
          parser.add_argument("--strip", nargs="?", action=ColumnsAction)
      if "--deduplicate" not in exclude_args:
          parser.add_argument("--deduplicate", nargs='?', action=ColumnsAction)
      if "--case-sensitive" not in exclude_args:
          parser.add_argument(
              "--case-sensitive", nargs='?', action=ColumnsAction)
      if "--unique" not in exclude_args:
          parser.add_argument("--unique", nargs="?", action=ColumnsAction)
      if ("-p" not in exclude_args) and ("--pretty" not in exclude_args):
          parser.add_argument("-p", "--pretty", action="store_true")
      return parser