
    si
                       S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	  SSK
J
r
  SSKJr  \(       a  SSKJr  SS	KJr  S
SKJr   " S S\R$                  5      r\	SS j5       r\	SS j5       r\	SS j5       rSSS.       S S jjrSS jrSS jr\	S!S j5       r\	S"S j5       r\	S#S j5       rSSSS.       S$S jjrS"S jrS%S jr\R4                  rg)&z'JSON serialization utilities for conda.    )annotations)Enum)Path)TYPE_CHECKINGoverload)
frozendict)json)IO)Any   )PathTypec                  ,   ^  \ rS rSrSU 4S jjrSrU =r$ )CondaJSONEncoder   c                .  > [        U[        5      (       a  [        U5      $ [        U[        5      (       a  UR                  $ [        U[
        5      (       a  [        U5      $ S H  n[        XS 5      =n(       d  M  U" 5       s  $    [        TU ]%  U5      $ )N)dump__json__to_jsonas_json)

isinstancer   dictr   valuer   strgetattrsuperdefault)selfobjattrmethod	__class__s       ;lib/python3.13/site-packages/conda/common/serialize/json.pyr   CondaJSONEncoder.default   s     c:&&9 c4  99T""s8O ?D D11v1x ?
 ws##     )r   r   returnr   )__name__
__module____qualname____firstlineno__r   __static_attributes____classcell__)r!   s   @r"   r   r      s    $ $r$   r   c                   g Nr%   r   fpkwargss      r"   writer2   -   s    7:r$   c                   g r.   r%   )r   pathr1   s      r"   r2   r2   1   s    :=r$   c                    g r.   r%   r   r1   s     r"   r2   r2   5   s    &)r$   N)r0   r4   c               (   U(       a  U(       a  [        S5      eUR                  S[        5        UR                  SS5        Ub  [        R                  " X40 UD6  g [        R
                  " U 40 UD6nUb  [        U5      R                  U5        g U$ )Nz*At most one of fp or path must be providedclsindentr   )
ValueError
setdefaultr   r	   r   dumpsr   
write_text)r   r0   r4   r1   texts        r"   r2   r2   9   s     
dEFF
e-.
h"	~		#$V$zz#((J!!$'Kr$   c                     [        U 4SU0UD6  g )Nr0   r2   r/   s      r"   r   r   N   s    	#"r$   c                    [        U 40 UD6$ r.   r@   r6   s     r"   r<   r<   R   s    r$   c                    g r.   r%   )r>   r1   s     r"   readrC   V   s    ),r$   c                    g r.   r%   r0   r1   s     r"   rC   rC   Z   s    +.r$   c                    g r.   r%   )r4   r1   s     r"   rC   rC   ^   s    .1r$   )r>   r0   r4   c                
   XU4R                  S 5      S:w  a  [        S5      eUb  [        R                  " U40 UD6$ Ub.  [        R                  " [        U5      R                  5       40 UD6$ [        R                  " U 40 UD6$ )Nr   z0Exactly one of text, fp or path must be provided)countr:   r	   loadloadsr   	read_text)r>   r0   r4   r1   s       r"   rC   rC   b   s|     	$d#q(KLL	~yy&v&&		zz$t*..0;F;;zz$)&))r$   c                    [        SSU 0UD6$ )Nr0   r%   rC   rE   s     r"   rI   rI   t   s     2   r$   c                    [        SSU 0UD6$ )Nr>   r%   rM   )sr1   s     r"   rJ   rJ   x   s    !Q!&!!r$   )r   r   r0   IO[str]r&   None)r   r   r4   r   r&   rQ   )r   r   r&   r   )r   r   r0   IO[str] | Noner4   PathType | Noner&   z
None | str)r>   r   r&   r   )r0   rP   r&   r   )r4   r   r&   r   )r>   z
str | Noner0   rR   r4   rS   r&   r   )rO   r   r&   r   )__doc__
__future__r   enumr   pathlibr   typingr   r   r   requests.compatr	   ior
   r   r4   r   JSONEncoderr   r2   r   r<   rC   rI   rJ   JSONDecodeErrorr%   r$   r"   <module>r]      s   . "   * ! !$t'' $, 
 : 
 : 
 = 
 = 
 ) 
 ) '+D	#2A*   
 , 
 , 
 . 
 . 
 1 
 1
  	*
* 	* 	* 	*$!" &&r$   