#!/usr/bin/env python3
"""Format UTF-8 JSON from a file or stdin. Python 3; no dependencies."""
import argparse,json,sys
p=argparse.ArgumentParser(description=__doc__)
p.add_argument('file',nargs='?',help='input file; omit for stdin')
p.add_argument('--compact',action='store_true')
a=p.parse_args()
try:
    if a.file:
        with open(a.file,encoding='utf-8') as f: data=json.load(f)
    else: data=json.load(sys.stdin)
    print(json.dumps(data,ensure_ascii=False,indent=None if a.compact else 2,separators=(',',':') if a.compact else None))
except (ValueError,OSError) as e:
    print('Error: '+str(e),file=sys.stderr);sys.exit(1)
