
    %hC#                       S SK Jr  S SKJr  S SKrS SKJr  S SK	J
r
  SSKJr  \R                  (       a  S SKr\R                   " S5      r\R                   " S5      r\R                   " S	5      r\R                   " S
\R(                  S\R*                  4   S9rSS jr " S S5      r " S S\R2                  \\4   5      r " S S\\\4   5      r " S S5      rSS jr " S S\\\4   5      rg)    )annotationsNupdate_wrapper)repeat   )_missingKVTF.)boundc                F    [        [        U 5      R                  < S35      e)Nz objects are immutable)	TypeErrortype__name__selfs    V/var/www/auris/envauris/lib/python3.13/site-packages/werkzeug/datastructures/mixins.py_immutable_errorr      s     
tDz**--CD
EE    c                      \ rS rSr% SrSrS\S'   SS jrSS jrSS jr	SS	 jr
SS
 jrSS jrSS jrSS jrSS jrSS jrSSS jjrSS jrSS S jjrSrg)!ImmutableListMixin   zCMakes a :class:`list` immutable.

.. versionadded:: 0.5

:private:
N
int | None_hash_cachec                l    U R                   b  U R                   $ [        [        U 5      5      =ol         U$ N)r   hashtupler   rvs     r   __hash__ImmutableListMixin.__hash__!   s3    '### $U4[ 11	r   c                0    [        U 5      [        U 5      44$ r   )r   listr   protocols     r   __reduce_ex__ ImmutableListMixin.__reduce_ex__'       DzDJ=((r   c                    [        U 5        g r   r   r   keys     r   __delitem__ImmutableListMixin.__delitem__*   
    r   c                    [        U 5        g r   r,   r   others     r   __iadd__ImmutableListMixin.__iadd__-   r1   r   c                    [        U 5        g r   r,   r3   s     r   __imul__ImmutableListMixin.__imul__0   r1   r   c                    [        U 5        g r   r,   r   r.   values      r   __setitem__ImmutableListMixin.__setitem__3   r1   r   c                    [        U 5        g r   r,   r   items     r   appendImmutableListMixin.append6   r1   r   c                    [        U 5        g r   r,   r@   s     r   removeImmutableListMixin.remove9   r1   r   c                    [        U 5        g r   r,   )r   iterables     r   extendImmutableListMixin.extend<   r1   r   c                    [        U 5        g r   r,   r   posr<   s      r   insertImmutableListMixin.insert?   r1   r   c                    [        U 5        g r   r,   )r   indexs     r   popImmutableListMixin.popB   r1   r   c                    [        U 5        g r   r,   r   s    r   reverseImmutableListMixin.reverseE   r1   r   c                    [        U 5        g r   r,   )r   r.   rU   s      r   sortImmutableListMixin.sortH   r1   r   r   returnintr'   zt.SupportsIndexr\   t.Anyr.   r_   r\   
t.NoReturnr4   r_   r\   ra   r.   r_   r<   r_   r\   ra   )rA   r_   r\   ra   )rH   r_   r\   ra   rM   r_   r<   r_   r\   ra   ))rQ   r_   r\   ra   r   r_   r\   ra   )NF)r.   r_   rU   r_   r\   ra   )r   
__module____qualname____firstlineno____doc__r   __annotations__r"   r(   r/   r5   r8   r=   rB   rE   rI   rN   rR   rU   rX   __static_attributes__ r   r   r   r      sY     #K") r   r   c                  @  ^  \ rS rSr% SrSrS\S'   \\R                        SS j5       5       r
\\R                  SS j5       5       r
\ S     SU 4S jjj5       r
SS	 jrSS
 jrSS jrSSS jjrSS jrSS jrSSS jjrSS jrS S jrS!S jrSS jrSrU =r$ )"ImmutableDictMixinL   zzMakes a :class:`dict` immutable.

.. versionchanged:: 3.1
    Disallow ``|=`` operator.

.. versionadded:: 0.5

:private:
Nr   r   c                    g r   rm   clskeysr<   s      r   fromkeysImmutableDictMixin.fromkeysY   s     /2r   c                    g r   rm   rr   s      r   ru   rv   ^   s    UXr   c                n   > [         TU ]  U 5      nUR                  [        U[	        U5      5      5        U$ r   )super__new____init__zipr   )rs   rt   r<   instance	__class__s       r   ru   rv   a   s1     7?3'#dF5M23r   c                0    [        U 5      [        U 5      44$ r   )r   dictr&   s     r   r(    ImmutableDictMixin.__reduce_ex__i   r*   r   c                "    U R                  5       $ r   itemsr   s    r   _iter_hashitems"ImmutableDictMixin._iter_hashitemsl   s    zz|r   c                    U R                   b  U R                   $ [        [        U R                  5       5      5      =ol         U$ r   )r   r   	frozensetr   r    s     r   r"   ImmutableDictMixin.__hash__o   s=    '### $Yt/C/C/E%F GG	r   c                    [        U 5        g r   r,   r   r.   defaults      r   
setdefaultImmutableDictMixin.setdefaultu   r1   r   c                   [        U 5        g r   r,   r   argkwargss      r   updateImmutableDictMixin.updatex   r1   r   c                    [        U 5        g r   r,   r3   s     r   __ior__ImmutableDictMixin.__ior__{   r1   r   c                    [        U 5        g r   r,   r   s      r   rR   ImmutableDictMixin.pop~   r1   r   c                    [        U 5        g r   r,   r   s    r   popitemImmutableDictMixin.popitem   r1   r   c                    [        U 5        g r   r,   r;   s      r   r=   ImmutableDictMixin.__setitem__   r1   r   c                    [        U 5        g r   r,   r-   s     r   r/   ImmutableDictMixin.__delitem__   r1   r   c                    [        U 5        g r   r,   r   s    r   clearImmutableDictMixin.clear   r1   r   rZ   )rt   cabc.Iterable[K]r<   Noner\   z#ImmutableDictMixin[K, t.Any | None])rt   r   r<   r
   r\   zImmutableDictMixin[K, V]r   )rt   r   r<   V | Noner\   z>ImmutableDictMixin[K, t.Any | None] | ImmutableDictMixin[K, V]r^   r\   zt.Iterable[t.Any]r[   r.   r_   r   r_   r\   ra   r   r_   r   r_   r\   ra   rb   r\   ra   rc   r`   )r   rg   rh   ri   rj   r   rk   classmethodtoverloadru   r(   r   r"   r   r   r   rR   r   r=   r/   r   rl   __classcell__r~   s   @r   ro   ro   L   s     #K"ZZ2#2,02	,2  2 ZZX  X7;#,4	G ) r   ro   c                  b    \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
SSS
 jjrSrg	)ImmutableMultiDictMixin   zHMakes a :class:`MultiDict` immutable.

.. versionadded:: 0.5

:private:
c                J    [        U 5      [        U R                  SS95      44$ NT)multi)r   r%   r   r&   s     r   r(   %ImmutableMultiDictMixin.__reduce_ex__   s$    DzD$!78:::r   c                     U R                  SS9$ r   r   r   s    r   r   'ImmutableMultiDictMixin._iter_hashitems   s    zzz%%r   c                    [        U 5        g r   r,   r;   s      r   addImmutableMultiDictMixin.add   r1   r   c                    [        U 5        g r   r,   r   s    r   popitemlist#ImmutableMultiDictMixin.popitemlist   r1   r   c                    [        U 5        g r   r,   r-   s     r   poplistImmutableMultiDictMixin.poplist   r1   r   c                    [        U 5        g r   r,   )r   r.   new_lists      r   setlistImmutableMultiDictMixin.setlist   r1   r   Nc                    [        U 5        g r   r,   )r   r.   default_lists      r   setlistdefault&ImmutableMultiDictMixin.setlistdefault   r1   r   rm   r^   r   rc   r   r`   )r.   r_   r   r_   r\   ra   r   )r.   r_   r   r_   r\   ra   )r   rg   rh   ri   rj   r(   r   r   r   r   r   r   rl   rm   r   r   r   r      s/    ;& r   r   c                      \ rS rSrSrSS jrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSS jrSS jrSS jrS\4SS jjrSS jrSS jrSS jrSrg)ImmutableHeadersMixin   a  Makes a :class:`Headers` immutable.  We do not mark them as
hashable though since the only usecase for this datastructure
in Werkzeug is a view on a mutable structure.

.. versionchanged:: 3.1
    Disallow ``|=`` operator.

.. versionadded:: 0.5

:private:
c                    [        U 5        g r   r,   )r   r.   r   s      r   r/   !ImmutableHeadersMixin.__delitem__   r1   r   c                    [        U 5        g r   r,   r;   s      r   r=   !ImmutableHeadersMixin.__setitem__   r1   r   c                   [        U 5        g r   r,   r   r.   r<   r   s       r   setImmutableHeadersMixin.set   r1   r   c                    [        U 5        g r   r,   )r   r.   valuess      r   r   ImmutableHeadersMixin.setlist   r1   r   c                   [        U 5        g r   r,   r   s       r   r   ImmutableHeadersMixin.add   r1   r   c                   [        U 5        g r   r,   r   s       r   
add_header ImmutableHeadersMixin.add_header   r1   r   c                    [        U 5        g r   r,   r-   s     r   rE   ImmutableHeadersMixin.remove   r1   r   c                   [        U 5        g r   r,   r   s      r   rI   ImmutableHeadersMixin.extend   r1   r   c                   [        U 5        g r   r,   r   s      r   r   ImmutableHeadersMixin.update   r1   r   c                    [        U 5        g r   r,   r3   s     r   r   ImmutableHeadersMixin.__ior__   r1   r   c                    [        U 5        g r   r,   rL   s      r   rN   ImmutableHeadersMixin.insert   r1   r   Nc                    [        U 5        g r   r,   r   s      r   rR   ImmutableHeadersMixin.pop   r1   r   c                    [        U 5        g r   r,   r   s    r   r   ImmutableHeadersMixin.popitem   r1   r   c                    [        U 5        g r   r,   r   s      r   r    ImmutableHeadersMixin.setdefault   r1   r   c                    [        U 5        g r   r,   r   s      r   r   $ImmutableHeadersMixin.setlistdefault   r1   r   rm   )r.   r_   r   r_   r\   ra   rc   )r.   r_   r<   r_   r   r_   r\   ra   )r.   r_   r   r_   r\   ra   r`   r   rb   rd   r   r   )r   rg   rh   ri   rj   r/   r=   r   r   r   r   rE   rI   r   r   rN   r   rR   r   r   r   rl   rm   r   r   r   r      sY    
  $h r   r   c                <   ^          SU 4S jjn[        UT 5      $ )Nc               \   > T" U /UQ70 UD6nU R                   b  U R                  U 5        U$ r   )	on_update)r   argsr   r!   fs       r   wrapper_always_update.<locals>.wrapper   s4     t%d%f%>>%NN4 	r   )r   zUpdateDictMixin[t.Any, t.Any]r   r_   r   r_   r\   r_   r   )r   r   s   ` r   _always_updater      s7    +7<HM	 '1%%r   c                    ^  \ rS rSr% SrSrS\S'   SSU 4S jjjr\R                  SS j5       r
\R                  SS j5       r
\R                  SS	 j5       r
\4       SU 4S
 jjjr
\SU 4S jj5       r\SU 4S jj5       r\SU 4S jj5       r\SU 4S jj5       r\ S     SU 4S jjj5       r\    SU 4S jj5       rSrU =r$ )UpdateDictMixin   zMakes dicts call `self.on_update` on modifications.

.. versionchanged:: 3.1
    Implement ``|=`` operator.

.. versionadded:: 0.5

:private:
Nz%cabc.Callable[[te.Self], None] | Noner   c                x   > X;  n[         TU ]  X5      nU(       a  U R                  b  U R                  U 5        U$ r   )ry   r   r   r   r.   r   modifiedr!   r~   s        r   r   UpdateDictMixin.setdefault  s6    ?W-2NN4 	r   c                    g r   rm   r-   s     r   rR   UpdateDictMixin.pop	  s    ),r   c                    g r   rm   r   s      r   rR   r         58r   c                    g r   rm   r   s      r   rR   r     r  r   c                   > X;   nU[         L a  [        TU ]	  U5      nO[        TU ]	  X5      nU(       a  U R                  b  U R                  U 5        U$ r   )r   ry   rR   r   r   s        r   rR   r     sM    
 ;hS!BS*B2NN4 	r   c                $   > [         TU ]  X5        g r   )ry   r=   )r   r.   r<   r~   s      r   r=   UpdateDictMixin.__setitem__  s    C'r   c                $   > [         TU ]  U5        g r   )ry   r/   )r   r.   r~   s     r   r/   UpdateDictMixin.__delitem__!  s    C r   c                "   > [         TU ]  5         g r   )ry   r   r   r~   s    r   r   UpdateDictMixin.clear%  s    r   c                    > [         TU ]  5       $ r   )ry   r   r	  s    r   r   UpdateDictMixin.popitem)  s    w  r   c               P   > Uc  [         TU ]  " S0 UD6  g [         TU ]  " U40 UD6  g )Nrm   )ry   r   )r   r   r   r~   s      r   r   UpdateDictMixin.update-  s*     ;GN$V$GN3)&)r   c                "   > [         TU ]  U5      $ r   )ry   r   )r   r4   r~   s     r   r   UpdateDictMixin.__ior__9  s     wu%%r   rm   r   )r   te.Selfr.   r	   r   r   r\   r
   )r   r  r.   r	   r\   r
   )r   r  r.   r	   r   r
   r\   r
   )r   r  r.   r	   r   r   r\   r   )r   r  r.   r	   r   V | Tr\   r  )r.   r	   r<   r
   r\   r   )r.   r	   r\   r   )r\   r   )r\   ztuple[K, V])r   z6cabc.Mapping[K, V] | cabc.Iterable[tuple[K, V]] | Noner   r
   r\   r   )r4   z/cabc.Mapping[K, V] | cabc.Iterable[tuple[K, V]]r\   r  )r   rg   rh   ri   rj   r   rk   r   r   r   rR   r   r   r=   r/   r   r   r   r   rl   r   r   s   @r   r   r      s5    8<I4;  ZZ, ,ZZ8 8ZZ8 8 "  
	  ( ( ! !   ! !  GK	*C	* 		*
 
	* 	* &D&	& &r   r   rf   )r   r   r\   r   ) 
__future__r   collections.abcabccabctypingr   	functoolsr   	itertoolsr   	_internalr   TYPE_CHECKINGtyping_extensionsteTypeVarr	   r
   r   CallableAnyr   r   r   Genericro   r   r   r   r   r   rm   r   r   <module>r"     s    "   $   ??"IIcNIIcNIIcNIIcsAEEz23F2 2j?1a4 ?D0A6 <8 8v&H&d1a4j H&r   