a
    ze                  
   @   st   d dl Z d dlZd dlZd dlmZ dd Zedkrpz
e  W n0 eyn Z ze	ej
 W Y dZ[n
dZ[0 0 dS )    N)Pathc                  C   s  d} d}t j| |d}|jddt jdddtjd	 |jd
dtdd d	 |jddddd |jddddd |jddddd | }|jddtdd |jddddd d! |jd"ddd d#d! |jd$dd%d& |	 }|j
|j|jd'}|jrd |d< d(|d)< |j}z|jr$d*d+ |D }nt|f}|jd u rDtj}n|jjd,dd}|:}	|D ]$}
tj|
|	fi | |	d- q^W d    n1 s0    Y  W n. ty } zt|W Y d }~n
d }~0 0 W d    n1 s0    Y  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defaultoutfilez%write the output of infile to outfilez--sort-keys
store_trueFz5sort the output of dictionaries alphabetically by key)actionr   r
   z--no-ensure-asciiensure_asciistore_falsez(disable escaping of non-ASCII characters)destr   r
   z--json-linesznparse input using the JSON Lines format. Use with --no-indent or --compact to produce valid JSON Lines output.z--indent   zJseparate items with newlines and use this number of spaces for indentation)r   r	   r
   z--tabstore_constindent	z9separate items with newlines and use tabs for indentation)r   r   constr
   z--no-indentz/separate items with spaces rather than newlinesz	--compactz1suppress all whitespace separation (most compact))r   r
   )	sort_keysr   r   ),:Z
separatorsc                 s   s   | ]}t |V  qd S )N)jsonloads).0line r   /usr/lib/python3.9/json/tool.py	<genexpr>A       zmain.<locals>.<genexpr>w
)argparseArgumentParseradd_argumentFileTypesysstdinr   add_mutually_exclusive_groupint
parse_argsr   r   r   Zcompactr   Z
json_linesr   loadr   stdoutopendumpwrite
ValueError
SystemExit)r   r   parsergroupoptionsZ	dump_argsr   Zobjsoutr   objer   r   r   main   st    






2r:   __main__)r$   r   r(   pathlibr   r:   __name__BrokenPipeErrorexcexiterrnor   r   r   r   <module>   s   >
