File: //opt/alt/python35/lib64/python3.5/json/__pycache__/tool.cpython-35.opt-1.pyc
��Yfm  �               @   sY   d  Z  d d l Z d d l Z d d l Z d d l Z d d �  Z e d k rU e �  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   sz  d }  d } t  j d |  d | � } | j d d d d t  j �  d	 d
 �| j d d d d t  j d � d	 d
 �| j d d d d d d	 d �| j �  } | j p� t j } | j p� t j	 } | j
 } | �m y4 | r� t j | � } n t j | d t
 j �} Wn1 t k
 r7} z t | � � WYd  d  } ~ Xn XWd  QRX| �. t j | | d | d d �| j d � Wd  QRXd  S)Nzpython -m json.toolzZA simple command line interface for json module to validate and pretty-print JSON objects.�prog�description�infile�nargs�?�type�helpz-a JSON file to be validated or pretty-printed�outfile�wz%write the output of infile to outfilez--sort-keys�action�
store_true�defaultFz5sort the output of dictionaries alphabetically by keyZobject_pairs_hook�	sort_keys�indent�   �
)�argparse�ArgumentParser�add_argumentZFileType�
parse_argsr   �sys�stdinr	   �stdoutr   �json�load�collections�OrderedDict�
ValueError�
SystemExit�dump�write)	r   r   �parserZoptionsr   r	   r   �obj�e� r$   �./opt/alt/python35/lib64/python3.5/json/tool.py�main   s0    !	&r&