o
     JAf6                  
   @   s   	 d Z g dZdZddlmZmZ ddlmZ ddlZedd	d	d	dddd
Z	dd	d	d	dddddd	ddZ
dd	d	d	dddddd	ddZedddZdd ZdddddddddZdddddddddZdS )z2.0.9)dumpdumpsloadloadsJSONDecoderJSONDecodeErrorJSONEncoderzBob Ippolito <bob@redivi.com>   )r   r   )r       NFT)skipkeysensure_asciicheck_circular	allow_nanindent
separatorsdefault)	r
   r   r   r   clsr   r   r   	sort_keysc       	         K   s   	 |s#|r#|r#|r#|d u r#|d u r#|d u r#|	d u r#|
s#|s#t | }n|d u r)t}|d|||||||	|
d|| }|D ]}|| q>d S N)r
   r   r   r   r   r   r   r    )_default_encoder
iterencoder   write)objfpr
   r   r   r   r   r   r   r   r   kwiterablechunkr   r   $/usr/lib/python3.10/json/__init__.pyr   x   s.   *r   c       	         K   sv   	 |s"|r"|r"|r"|d u r"|d u r"|d u r"|d u r"|	s"|
s"t | S |d u r(t}|d||||||||	d|
| S r   )r   encoder   )r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r      s(   )
r   )object_hookobject_pairs_hookc                 C   s   | j }|tjtjfrdS |tjtjfrdS |tjrdS t| dkrB| d s0| d r.dS dS | d s@| d	 s<| d
 r>dS dS dS t| d	krT| d sNdS | d sTdS dS )Nzutf-32zutf-16z	utf-8-sig   r	   r   z	utf-16-bez	utf-32-be      z	utf-16-lez	utf-32-lezutf-8)
startswithcodecsBOM_UTF32_BEBOM_UTF32_LEBOM_UTF16_BEBOM_UTF16_LEBOM_UTF8len)bZbstartswithr   r   r   detect_encoding   s&   
	r-   r   r   parse_float	parse_intparse_constantr    c             	   K   s$   	 t |  f||||||d|S )Nr.   )r   read)r   r   r   r/   r0   r1   r    r   r   r   r   r     s   
r   c                K   s  	 t | tr| drtd| dnt | ttfs"td| jj | 	t
| d} |d u rI|d u rI|d u rI|d u rI|d u rI|d u rI|sIt	| S |d u rOt}|d urW||d< |d ur_||d< |d urg||d< |d uro||d	< |d urw||d
< |di |	| S )Nu   ﻿z-Unexpected UTF-8 BOM (decode using utf-8-sig)r	   z5the JSON object must be str, bytes or bytearray, not surrogatepassr   r    r/   r0   r1   r   )
isinstancestrr$   r   bytes	bytearray	TypeError	__class____name__decoder-   _default_decoderr   )sr   r   r/   r0   r1   r    r   r   r   r   r   +  s:   
 

r   )__version____all__
__author__decoderr   r   encoderr   r%   r   r   r   r<   r-   r   r   r   r   r   r   <module>   s@    a
?: