jamtur01's picture
Upload folder using huggingface_hub
9c6594c verified
r"""Command-line tool to validate and pretty-print JSON
Usage::
$ echo '{"json":"obj"}' | hjson
{
"json": "obj"
}
"""
from __future__ import with_statement
import sys
import hjson
HELP="""Hjson, a user interface for JSON
Usage:
hjson [options]
hjson [options] <input>
hjson (-h | --help)
hjson (-V | --version)
Options:
-h --help Show this screen.
-j Output as formatted JSON.
-c Output as JSON.
-V --version Show version.
""";
def showerr(msg):
sys.stderr.write(msg)
sys.stderr.write("\n")
def main():
format = 'hjson'
args = []
for arg in sys.argv[1:]:
if arg == '-h' or arg == '--help':
showerr(HELP)
return
elif arg == '-j': format = 'json'
elif arg == '-c': format = 'compact'
elif arg == '-V' or arg == '--version':
showerr('Hjson ' + hjson.__version__)
return
elif arg[0] == '-':
showerr(HELP)
raise SystemExit('unknown option ' + arg)
else:
args.append(arg)
outfile = sys.stdout
if len(args) == 0:
infile = sys.stdin
elif len(args) == 1:
infile = open(args[0], 'r')
else:
showerr(HELP)
raise SystemExit('unknown options')
with infile:
try:
obj = hjson.load(infile, use_decimal=True)
except ValueError:
raise SystemExit(sys.exc_info()[1])
with outfile:
if format == 'json':
hjson.dumpJSON(obj, outfile, ensure_ascii=False, use_decimal=True, indent=' ')
elif format == 'compact':
hjson.dumpJSON(obj, outfile, ensure_ascii=False, use_decimal=True, separators=(',', ':'))
else:
hjson.dump(obj, outfile, ensure_ascii=False, use_decimal=True)
outfile.write('\n')
if __name__ == '__main__':
main()