+
    i@  c                   s   ^ RI Ht ^ RIHtHtHtHtHtHtH	t	H
t
HtHt ]]]]R3,          t]R]	R,          ]3,          t]]]3,          t]RR]3,          t]]]3,          t]],          t]! R4      t]! R	4      t ! R
 R]4      tR R lt ! R R]4      t]P8                  tR R lt]3R R llt]3R R llt ]3R R llt!R R lt"R R lt#]3R R llt$]3R R llt%]3R  R! llt&]3R" R# llt'R$ R% lt(R& R' lt)R( R) lt*R* R+ lt+R# ),i    )Enum)
Callable	ContainerDictListMappingOptionalSequenceTypeTypeVarUnionN
JsonObject	JsonValueJsonDictJsonListDTTc                   sJ   a a ] tR t^t oV3R lV 3R lltV3R ltRtVtV ;t# )	JsonErrorc                s&   < V ^8  d   QhRS[ RS[/# )   valuemsg)objectstrformat__classdict__   "5/usr/lib/python3.14/site-packages/cockpit/jsonutil.py__annotate__JsonError.__annotate__   s      f 3     c                s2   < \         SV `  V4       Wn        R # N)Zsuper__init__r   )Zselfr   r   	__class__s   &&&r   r    ZJsonError.__init__   s    
r   c                s&   < V ^8  d   Qh/ S[ ;R&   # )r   r   )r   r   r   r   r   r      s     M r   r   )	__name__
__module____qualname____firstlineno__r    Z__annotate_func____static_attributes__Z__classdictcell__Z__classcell__)r!   r   s   @@r   r   r      s        r   r   c                sR    V ^8  d   QhR\         R\        \        ,          R\        /# )r   r   expected_typereturn)r   r   r   r      "r   r   r   !   s%      y a Q r   c                sZ    \        W4      '       g   \        V RVP                   24      hV # )z>Ensure a JSON value has the expected type, returning it if so.zmust have type )
isinstancer   r#   )r   r(   s   &&r   typecheckedr-   !   s-    e++1G1G0HIJJLr   c                   s    ] tR t^+t^ tRtR# )_Empty N)r#   r$   r%   r&   TOKENr'   r/   r   r   r.   r.   +   s    Er   r.   c                s    V ^8  d   QhR\         R\        \        .\        3,          R\        R\
        \        \        3,          R\
        \        \        3,          /# )r   objcastkeydefaultr)   )r   r   r   r   r   r
   r   r.   r*   r+   r   r   r   2   sS     	; 	;j 	;)a 8 	;s 	;USUW]S]M^ 	;chijlninco 	;r   c                 s    V! W,          4      #   \          d!    T\        Jd   Tu # \        T R T R24      Rh\         d=   pR T R2TP                  Y,          Jd   RMR,           p\        Y RT: 24      ThRp?ii ; i)zattribute 'z
' requiredNZ'z
 elements:Z:Z )ZKeyError_emptyr   r   )r1   r2   r3   r4   ZexcZtargets   &&&&  r   _getr6   2   s    ;CH~ F& N{3%z:;E ;se1%#(9RX[\xq01s:;s     B B B 7A;;B c          
          V ^8  d   QhR\         R\        R\        \        \        3,          R\        \        \
        3,          /# r   r1   r3   r4   r)   )r   r   r
   r   r.   boolr*   r+   r   r   r   >   sD     C C* C3 Cr6z1B CPUVXZ^V^P_ Cr   c                     \        V R  W4      # )c                 "    \        V \        4      # r   )r-   r9   v   &r   <lambda>Zget_bool.<locals>.<lambda>?       {1d3r   r6   r1   r3   r4      &&&r   get_boolrD   >       3SBBr   c          
      r7   r8   )r   r   r
   r   r.   intr*   r+   r   r   r   B   B     B B B# Bb&j0A BuUWY\U\~ Br   c                 r:   )c                 r;   r   )r-   rF   r<   r>   r   r?   Zget_int.<locals>.<lambda>C       {1c2r   rA   rB   rC   r   get_intrI   B       2CAAr   c          
      s    V ^8  d   QhR\         R\        R\        \        \        3,          R\        \        \        3,          /# r8   r   r   r
   r   r.   r*   r+   r   r   r   F   rG   r   c                 r:   )c                 r;   r   r-   r   r<   r>   r   r?   Zget_str.<locals>.<lambda>G   rH   r   rA   rB   rC   r   get_strrM   F   rJ   r   c          	      st    V ^8  d   QhR\         R\        R\        \        ,          R\        \        ,          /# r8   )r   r   r   r*   r+   r   r   r   J   s7     Y Y Y# Y Y(SV- Yr   c                 r:   )c                 s.    V f   R # \        V \        4      # r   rL   r<   r>   r   r?   Z!get_str_or_none.<locals>.<lambda>K   s    qytIk!S6IIr   rA   rB   rC   r   get_str_or_nonerN   J   s    I3XXr   c                s    V ^8  d   QhR\         R\        R\        \        \        \        3,          ,          R\        \        \        \        3,          ,          /# r8   )r   r   r   r
   rF   r*   r+   r   r   r   N   sH     2 2
 2 2xc3h7P 2U]^cdgildl^mUn 2r   c                 &    R  R lp\        WW4      # )c                sR    V ^8  d   QhR\         R\        \        \        3,          /# r   r   r)   )r   r
   r   rF   r*   r+   r   r   Z$get_str_or_int.<locals>.__annotate__O   s"      Y 5c? r   c                 sV    \        V \        \        34      '       g   \        V R 4      hV # )zmust be a string or integer)r,   r   rF   r   r"   r>   r   as_str_or_intZ%get_str_or_int.<locals>.as_str_or_intO   s&    %#s,,E#@AAr   rA   )r1   r3   r4   rQ      &&& r   get_str_or_intrS   N   s    
 C11r   c          
      s    V ^8  d   QhR\         R\        R\        \        \        3,          R\        \        \         3,          /# r8   rK   r*   r+   r   r   r   W   sD     C C* C3 Cr6z1B CPUVXZdVdPe Cr   c                 r:   )c                 r;   r   r-   dictr<   r>   r   r?   Zget_dict.<locals>.<lambda>X   r@   r   rA   rB   rC   r   get_dictrV   W   rE   r   c                s    V ^8  d   QhR\         R\        R\        \         .\        3,          R\        \
        \        3,          R\        \
        \        3,          /# )r   r1   r3   constructorr4   r)   )r   r   r   r   r
   r   r.   r*   r+   r   r   r   [   s]     P P	P	P :,/*P 2v:	P
 2q5\Pr   c                 s&   a \        V V3R  lW4      # )c                 s0   < S! \        V \        4      4      # r   rT   )r=   rW      &r   r?   Zget_object.<locals>.<lambda>a   s    {;q$+?@r   rA   )r1   r3   rW   r4   s   &&f&r   
get_objectrY   [   s     @#OOr   c                s    V ^8  d   QhR\         R\        R\        \        \        3,          R\        \        \
        \        ,          3,          /# r8   )r   r   r
   r   r.   r   r*   r+   r   r   r   d   sD     , ,* ,3 ,r6z1B ,PUVXZbcfZgVgPh ,r   c                 rO   )c                F    V ^8  d   QhR\         R\        \        ,          /# rP   )r   r   r   r*   r+   r   r   Zget_strv.<locals>.__annotate__e   s"     R Ry RXc] Rr   c                 s    \         ;QJ d"    . R  \        V \        4       4       F  NK  	  5# ! R  \        V \        4       4       4      # )c              3   sB   "   T F  p\        V\        4      x  K  	  R # 5ir   rL   ).0items   & r   	<genexpr>Z,get_strv.<locals>.as_strv.<locals>.<genexpr>f   s     Q8P[s++8Ps   tupler-   Zlistr"   r>   r   as_strvZget_strv.<locals>.as_strve   s2    uQE48PQuQuQE48PQQQr   rA   )r1   r3   r4   r`   rR   r   get_strvra   d   s    Rc++r   c                s    V ^8  d   QhR\         R\        R\        \        ,          R\        \        \
        3,          R\        \        \        3,          /# )r   r1   r3   choicesr4   r)   )r   r   r   r
   r   r.   r*   r+   r   r   r   j   sI     	. 	.		.	.(1#	.AFr6zAR	.
2s7^	.r   c                 s.   a R  V3R llp\        WW4      # )c                s0    V ^8  d   QhR\         R\        /# rP   )r   r   r*   r+   r   r   Zget_enum.<locals>.__annotate__m   s     L L Ls Lr   c                 sf   < \        V \        4      '       d
   V S9   d   V # \        V R V  RS 24      h)zinvalid value "z	" not in )r,   r   r   )r   rb   rX   r   	as_choiceZget_enum.<locals>.as_choicem   s8     eS!!ew&6Ly	JKKr   rA   )r1   r3   rb   r4   rc   s   &&f& r   get_enumrd   j   s    L L --r   c                s    V ^8  d   QhR\         R\        R\        \         .\        3,          R\        \
        \        \        ,          3,          /# )r   r1   r3   rW   r)   )r   r   r   r   r
   r   r   r*   r+   r   r   r   v   sF     ' '* '3 'XzlAo5N 'SXY[]efg]hYhSi 'r   c                 s0   a R  V3R llp\        WVR4      # )c                rZ   rP   )r   r   r   r*   r+   r   r   Zget_objv.<locals>.__annotate__w   s"     ` `y `Xa[ `r   c                 s   < \         ;QJ d%    . V3R  l\        V \        4       4       F  NK  	  5# ! V3R  l\        V \        4       4       4      # )c              3   sP   <"   T F  pS! \        V\        4      4      x  K  	  R # 5ir   rT   )r[   r\   rW   s   & r   r]   Z,get_objv.<locals>.as_objv.<locals>.<genexpr>x   s"     _F^d[T4!899F^s   #&r^   )r   rW   rX   r   as_objvZget_objv.<locals>.as_objvw   s7    u_kRWY]F^_u_u_kRWY]F^___r   r/   rA   )r1   r3   rW   re   s   &&f r   get_objvrf   v   s    ` `c2&&r   c                s4    V ^8  d   QhRRR\         R\         /# )r   messagezJsonObject | Nonekwargsr)   r   r*   r+   r   r   r   |   s"      . 
 z r   c                s    \        T ;'       g    / 4      pVP                  4        F  w  r4VP                  RR4      pWBV&   K  	  V# )a  Constructs a JSON object based on message and kwargs.

If only message is given, it is returned, unmodified.  If message is None,
it is equivalent to an empty dictionary.  A copy is always made.

If kwargs are present, then any underscore ('_') present in a key name is
rewritten to a dash ('-').  This is intended to bridge between the required
Python syntax when providing kwargs and idiomatic JSON (which uses '-' for
attributes).  These values override values in message.

The idea is that `message` should be used for passing data along, and
kwargs used for data originating at a given call site, possibly including
modifications to an original message.
Z_Z-)rU   itemsZreplace)rg   rh   resultr3   r   Zjson_key   &&    r   create_objectrm   |   sE     '--R Flln
;;sC( x %
 Mr   c                s<    V ^8  d   QhR\         R\         R\         /# )r   currentpatchr)   ri   r*   r+   r   r   r      s!      j  
 r   c                s$   \        V 4      pVP                  4        Fp  w  r4\        V\        4      '       d:   V P	                  VR4      p\        V\        4      '       g   / p\        WT4      W#&   KT  Ve   WBV&   K^  VP                  VR4       Kr  	  V# )u   Perform a JSON merge patch (RFC 7396) using 'current' and 'patch'.
Neither of the original dictionaries is modified — the result is returned.
N)rU   rj   r,   r   getjson_merge_patchZpop)rn   ro   rk   r3   patch_valuecurrent_valuerl   r   rq   rq      s}    
 ']F!KKMk7++#KKT2MmW55 "*=FFK$%3KJJsD! * Mr   c                s4    V ^8  d   QhR\         R\         RR/# )r   rn   ro   r)   N)r   r*   r+   r   r   r      s!       ( t r   c                sJ   \        VP                  4       4       F  w  r#V P                  VR4      p\        V\        4      '       dC   \        V\        4      '       g   / ;W&   p\        WC4       KV  \        WC4       V'       g   W Km  Ko  WC8X  d   W Ky  Ve   W0V&   K  W K  	  R# )z~Perform a JSON merge patch (RFC 7396) modifying 'current' with 'patch'.
Also modifies 'patch' to remove redundant operations.
N)r_   rj   rp   r,   rU   json_merge_and_filter_patch)rn   ro   r3   rr   rs   s   &&   r   rt   rt      s     "%++-0C.k4((mT22/11}+MG+MG"
 #)
$&CL! 1r   ),Zenumr    Ztypingr   r   r   r   r   r   r   r   r	   r
   r   Zfloatr9   ZJsonLiteralr   r   ZJsonDocumentr   r   r   r   Z	Exceptionr   r-   r.   r0   r5   r6   rD   rI   rM   rN   rS   rV   rY   ra   rd   rf   rm   rq   rt   r/   r   r   <module>ru      s/    e e eCd*+ , 5{BC	S)^$
 Z[89\!" T]CL	 T  
	; FL C EK B EK BY2 FL C "(	P FL , V\	.'2(r   