B
    ^ c%              
   @   sj   d Z ddlZddlZddlZdd Zedkrfy
e  W n. ek
rd Z zeej	 W ddZ[X Y nX dS )a  Command-line tool to validate and pretty-print JSON

Usage::

    $ echo '{"json":"obj"}' | python -m json.tool
    {
        "json": "obj"
    }
    $ echo '{ 1.2:3.4}' | python -m json.tool
    Expecting property name enclosed in double quotes: line 1 column 3 (char 2)

    Nc        	      C   s   d} d}t j| |d}|jddt jdddd	 |jd
dt jddddd	 |jddddd | }|jpptj}|jp|tj	}|j
}|@ yt|}W n* tk
r } zt|W d d }~X Y nX W d Q R X |" tj|||dd |d W d Q R X d S )Nzpython -m json.toolzZA simple command line interface for json module to validate and pretty-print JSON objects.)progdescriptioninfile?zutf-8)encodingz-a JSON file to be validated or pretty-printed)nargstypehelpoutfilewz%write the output of infile to outfilez--sort-keys
store_trueFz5sort the output of dictionaries alphabetically by key)actiondefaultr	      )	sort_keysindent
)argparseArgumentParseradd_argumentZFileType
parse_argsr   sysstdinr
   stdoutr   jsonload
ValueError
SystemExitdumpwrite)	r   r   parserZoptionsr   r
   r   obje r#   lib/python3.7/json/tool.pymain   s*    
$r%   __main__)
__doc__r   r   r   r%   __name__BrokenPipeErrorexcexiterrnor#   r#   r#   r$   <module>   s   
