
    Rh                         d Z ddlZddlZddlZddlmZ d Zedk(  r		  e        yy# e$ r&Z	 ej                  e	j                         Y dZ	[	ydZ	[	ww xY w)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)

    N)Pathc                     d} d}t        j                  | |      }|j                  ddt        j                  d      dt        j
                  	       |j                  d
dt        dd 	       |j                  dddd       |j                  dddd       |j                  dddd       |j                         }|j                  ddt        d       |j                  ddddd !       |j                  d"ddd d#!       |j                  d$dd%&       |j                         }|j                  |j                  |j                  d'}|j                  r
d |d<   d(|d)<   |j                  5 }	 |j                  r
d* |D        }nt!        j"                  |      f}|j$                  t        j&                  }n|j$                  j)                  d+d      }|5 }	|D ]*  }
t!        j*                  |
|	fi | |	j-                  d,       , 	 d d d        d d d        y # 1 sw Y   xY w# t.        $ r}t1        |      d }~ww xY w# 1 sw Y   y xY w)-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   ),:
separatorsc              3   F   K   | ]  }t        j                  |        y w)N)jsonloads).0lines      /usr/lib/python3.12/json/tool.py	<genexpr>zmain.<locals>.<genexpr>A   s     <T

4(<s   !w
)argparseArgumentParseradd_argumentFileTypesysstdinr   add_mutually_exclusive_groupint
parse_argsr   r   r   compactr   
json_linesr   loadr   stdoutopendumpwrite
ValueError
SystemExit)r   r   parsergroupoptions	dump_argsr   objsoutr   objes               r"   mainr@      s    D@K$$$KHF
%..@L #		  + 	!D $  & lET  V
+.G  I
|U`  a //1E	z133  4 
w}8! ).  / 
}]!M  O 
{<O  Q!G &&..,,I
 "	("*	,	  6	 !!<V<		&)+&jjoo**3*A ( (CIIc78i8MM$'((   ( (  	 Q-	    sC   ,I .A(H$0HH$H!	H$$	H=-H88H==I  I	__main__)__doc__r&   r   r*   pathlibr   r@   __name__BrokenPipeErrorexcexiterrno     r"   <module>rK      s^      
 ; | z   s   ' AAA