in metaflow/plugins/cards/card_modules/chevron/main.py [0:0]
def cli_main():
"""Render mustache templates using json files"""
import argparse
import os
def is_file_or_pipe(arg):
if not os.path.exists(arg) or os.path.isdir(arg):
parser.error("The file {0} does not exist!".format(arg))
else:
return arg
def is_dir(arg):
if not os.path.isdir(arg):
parser.error("The directory {0} does not exist!".format(arg))
else:
return arg
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("-v", "--version", action="version", version=version)
parser.add_argument("template", help="The mustache file", type=is_file_or_pipe)
parser.add_argument(
"-d",
"--data",
dest="data",
help="The json data file",
type=is_file_or_pipe,
default={},
)
parser.add_argument(
"-y", "--yaml-loader", dest="yaml_loader", help=argparse.SUPPRESS
)
parser.add_argument(
"-p",
"--path",
dest="partials_path",
help="The directory where your partials reside",
type=is_dir,
default=".",
)
parser.add_argument(
"-e",
"--ext",
dest="partials_ext",
help="The extension for your mustache\
partials, 'mustache' by default",
default="mustache",
)
parser.add_argument(
"-l",
"--left-delimiter",
dest="def_ldel",
help='The default left delimiter, "{{" by default.',
default="{{",
)
parser.add_argument(
"-r",
"--right-delimiter",
dest="def_rdel",
help='The default right delimiter, "}}" by default.',
default="}}",
)
parser.add_argument(
"-w",
"--warn",
dest="warn",
help="Print a warning to stderr for each undefined template key encountered",
action="store_true",
)
args = vars(parser.parse_args())
try:
sys.stdout.write(main(**args))
sys.stdout.flush()
except SyntaxError as e:
print("Chevron: syntax error")
sys.exit(" " + "\n ".join(e.args[0].split("\n")))