
    p hqj                        d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZmZ d dlmZmZmZmZmZmZmZmZmZ ddlmZmZmZmZ ej        dk    rd d	lmZ nd d	lmZ  G d
 de           Z! ed          Z" ed          Z# e j$        dd          Z%e%j&        Z& edd g          Z' G d dee"                   Z( G d dee#                   Z) G d dee"                   Z* G d de*e"         ee e"f                   Z+ G d de*e"         ee"                   Z, G d de*e"         ee                    Z- G d d          Z. G d d           Z/ G d! d"ee"                   Z0 G d# d$e.e0e"         ee"                   Z1 G d% d&e/e1e"                   Z2 G d' d(e.e0e"                   Z3 G d) d*e/e3e"                   Z4d+ee1e5         e3e5         f         d,e6fd-Z7dS ).    N)abstractmethod)array)Callable	ItemsViewIterableIteratorKeysViewMapping
ValuesView)	TYPE_CHECKINGAnyGenericNoReturnOptionalTypeVarUnioncastoverload   )MDArgMultiMappingMutableMultiMappingSupportsKeys)      )Selfc                   2    e Zd ZU dZdZdZee         ed<   dS )istrzCase insensitive str.TN__istr_title__)	__name__
__module____qualname____doc____is_istr__r   r   str__annotations__     S/var/www/html/Sam_Eipo/venv/lib/python3.11/site-packages/multidict/_multidict_py.pyr   r   #   s1         K$(NHSM(((((r(   r   _V_T	_SENTINELsentinelQc                   R    e Zd ZdZddZddZej        j        dk    rde	fdZ
dS dS )	_Impl)_items_versionreturnNc                 <    g | _         |                                  d S N)r1   incr_versionselfs    r)   __init__z_Impl.__init__6   s!    13r(   c                 N    t           }|dxx         dz  cc<   |d         | _         d S Nr   r   )r2   )r8   vs     r)   r6   z_Impl.incr_version:   s+    	!	!r(   pypyc                 j    t                               |           t          j        | j                  z   S r5   )object
__sizeof__sys	getsizeofr1   r7   s    r)   r@   z_Impl.__sizeof__A   s'    $$T**S]4;-G-GGGr(   r3   N)r    r!   r"   	__slots__r9   r6   rA   implementationnameintr@   r'   r(   r)   r0   r0   3   s~        &I      
 &((	H 	H 	H 	H 	H 	H 	H )(r(   r0   c                   R    e Zd ZdZdedee         fdZdefdZ	defdZ
defdZd	S )
_Iter_size_itersizeiteratorc                 "    || _         || _        d S r5   rJ   )r8   rM   rN   s      r)   r9   z_Iter.__init__H   s    



r(   r3   c                     | S r5   r'   r7   s    r)   __iter__z_Iter.__iter__L   s    r(   c                 *    t          | j                  S r5   )nextrL   r7   s    r)   __next__z_Iter.__next__O   s    DJr(   c                     | j         S r5   )rK   r7   s    r)   __length_hint__z_Iter.__length_hint__R   s
    zr(   N)r    r!   r"   rD   rG   r   r+   r9   r   rQ   rT   rV   r'   r(   r)   rI   rI   E   s        "IS HRL    $     "              r(   rI   c                   ^    e Zd Zdee         deegef         deegef         fdZdefdZ	dS )	_ViewBaseimpl	identfunckeyfuncc                 0    || _         || _        || _        d S r5   )_impl
_identfunc_keyfunc)r8   rY   rZ   r[   s       r)   r9   z_ViewBase.__init__W   s     
#r(   r3   c                 4    t          | j        j                  S r5   lenr]   r1   r7   s    r)   __len__z_ViewBase.__len__a       4:$%%%r(   N)
r    r!   r"   r0   r*   r   r%   r9   rG   rc   r'   r(   r)   rX   rX   V   sy         Bi  SE3J'  3%*%	       & & & & & & &r(   rX   c                      e Zd ZdedefdZdeeee	f                  fdZ
dedeeee	f                  fdZ ej                    defd            Zdeeee	f         ef         deeeee	f                  fd	Zd
ee         deeee	f                  fdZdee         deeee	f                  fdZdee         dee         fdZdee         deeeee	f         ef                  fdZdee         deeeee	f         ef                  fdZdee         deeeee	f         ef                  fdZdee         dee         fdZdee         deeeee	f         ef                  fdZeZ deeee	f                  defdZ!dS )
_ItemsViewitemr3   c                    t          |t          t          f          rt          |          dk    rdS |\  }}	 |                     |          }n# t
          $ r Y dS w xY w| j        j        D ]\  }}}||k    r	||k    r dS dS )N   FT)
isinstancetuplelistrb   r^   	TypeErrorr]   r1   )r8   rg   keyvalueidentikr<   s           r)   __contains__z_ItemsView.__contains__f   s    $.. 	#d))q..5
U	OOC((EE 	 	 	55	z( 	 	GAq!zzeqjjttus   A 
AAc                 v    t          t          |           |                     | j        j                            S r5   rI   rb   rL   r]   r2   r7   s    r)   rQ   z_ItemsView.__iter__s   )    SYY

4:+> ? ?@@@r(   versionc              #      K   | j         j        D ]>\  }}}|| j         j        k    rt          d          |                     |          |fV  ?d S Nz#Dictionary changed during iterationr]   r1   r2   RuntimeErrorr_   r8   rw   rq   rr   r<   s        r)   rL   z_ItemsView._iterv   si      z( 	& 	&GAq!$*---"#HIII--""A%%%%%	& 	&r(   c                     g }| j         j        D ]!\  }}}|                    d| d|           "d                    |          }d| j        j         d| dS )N'': , <()>r]   r1   appendjoin	__class__r    r8   lstrq   rr   r<   bodys         r)   __repr__z_ItemsView.__repr__|   so    z( 	( 	(GAq!JJ1''''yy~~54>*55T5555r(   argc                     t          |t                    sd S t          |          dk    rd S 	 |                     |d                   |d         |d         fS # t          $ r Y d S w xY w)Nri   r   r   )rj   rk   rb   r^   rm   r8   r   s     r)   _parse_itemz_ItemsView._parse_item   s{     #u%% 	4s88q==4	OOCF++SVSV<< 	 	 	44	s   )A 
A&%A&itc                     t                      }|D ]=}|                     |          }||                    |d         |d         f           >|S )Nr   ri   )setr   add)r8   r   tmpr   rg   s        r)   _tmp_setz_ItemsView._tmp_set   s\    ee 	, 	,C##C((D|a$q'*++++
r(   otherc                 $   t                      }	 t          |          }n# t          $ r
 t          cY S w xY w|D ]V}|                     |          }||\  }}}| j        j        D ])\  }	}
}|	|k    r||k    r|                    |
|f           *W|S r5   r   iterrm   NotImplementedr   r]   r1   r   r8   r   retr   r   rg   identityrn   ro   rq   rr   r<   s               r)   __and__z_ItemsView.__and__   s    ee	"eBB 	" 	" 	"!!!!	" 	$ 	$C##C((D|#' Hc5:, $ $1a==Q%ZZGGQFOOO$ 
     44c                 $   t                      }	 t          |          }n# t          $ r
 t          cY S w xY w|D ]V}|                     |          }||\  }}}| j        j        D ])\  }	}
}|	|k    r||k    r|                    |            n*W|S r5   r   r   s               r)   __rand__z_ItemsView.__rand__   s    ee	"eBB 	" 	" 	"!!!!	" 	 	C##C((D|#' Hc5:,  1a==Q%ZZGGCLLLE
r   c                 P   t          |           }	 t          |          }n# t          $ r
 t          cY S w xY w|D ]k}|                     |          }||                    |           /|\  }}}| j        j        D ]\  }	}
}|	|k    r||k    r n|                    |           l|S r5   r   r   rm   r   r   r   r]   r1   r   s               r)   __or__z_ItemsView.__or__   s    .1$ii	"eBB 	" 	" 	"!!!!	" 
	 
	C262B2B32G2GD|#' Hc5:,  1a==Q%ZZE
   ! 55c                     	 t          |          }n# t          $ r
 t          cY S w xY w|                     |          }| j        j        D ]#\  }}}||f|vr|                    ||f           $|S r5   )r   rm   r   r   r]   r1   r   )r8   r   r   r   rq   rr   r<   s          r)   __ror__z_ItemsView.__ror__   s    	"25e**CC 	" 	" 	"!!!!	"mmC  z( 	  	 GAq!1vS  A
    &&c                     t                      }	 t          |          }n# t          $ r
 t          cY S w xY w|                     |          }| j        j        D ]#\  }}}||f|vr|                    ||f           $|S r5   )r   r   rm   r   r   r]   r1   r   )r8   r   r   r   r   rq   rr   r<   s           r)   __sub__z_ItemsView.__sub__   s    .1ee	"eBB 	" 	" 	"!!!!	"mmBz( 	  	 GAq!1vS  A
r   c                 N   t                      }	 t          |          }n# t          $ r
 t          cY S w xY w|D ]k}|                     |          }||                    |           /|\  }}}| j        j        D ]\  }	}
}|	|k    r||k    r n|                    |           l|S r5   r   r   s               r)   __rsub__z_ItemsView.__rsub__   s    uu	"eBB 	" 	" 	"!!!!	" 	 	C##C((D|#' Hc5:,  1a==Q%ZZE
r   c                 p    	 t          |          }n# t          $ r
 t          cY S w xY w| |z
  }||| z
  z  }|S r5   r   rm   r   r8   r   rgtr   s       r)   __xor__z_ItemsView.__xor__   sW    	"e**CC 	" 	" 	"!!!!	".2SjsTz
r   c                     |D ]C}|                      |          }||\  }}}| j        j        D ]\  }}}	||k    r
|	|k    r  dS DdS NFT)r   r]   r1   )
r8   r   r   rg   r   rn   ro   rq   rr   r<   s
             r)   
isdisjointz_ItemsView.isdisjoint  sy     	! 	!C##C((D|#' Hc5:, ! !1a==Q%ZZ 555! tr(   N)"r    r!   r"   r?   boolrs   rI   rk   r%   r*   rQ   rG   r   rL   reprlibrecursive_reprr   r   r+   r   r   r   r   r   r   r   r   r   r   r   r   r   __rxor__r   r'   r(   r)   rf   rf   e   s        D    A%c2g/ A A A A&S &XeCGn%= & & & & W6# 6 6 6 6
sBw+,
	%S"%	&
 
 
 
8B< Cc2g,?    Xc] s5b>/B     hrl s2w    "HRL SuS"W~r7I1J-K    &
Xb\ 
c%c2g8J2K.L 
 
 
 
Xb\ c%c2g8J2K.L    hrl s2w    (Xb\ c%c2g8J2K.L     H
sBw 8 
T 
 
 
 
 
 
r(   rf   c                       e Zd ZdedefdZdee         fdZde	de
e         fdZ ej                    defd            ZdS )	_ValuesViewro   r3   c                 >    | j         j        D ]\  }}}||k    r dS dS )NTF)r]   r1   )r8   ro   rq   rr   r<   s        r)   rs   z_ValuesView.__contains__  s6    z( 	 	GAq!Ezztt ur(   c                 v    t          t          |           |                     | j        j                            S r5   ru   r7   s    r)   rQ   z_ValuesView.__iter__  rv   r(   rw   c              #   v   K   | j         j        D ])\  }}}|| j         j        k    rt          d          |V  *d S ry   )r]   r1   r2   r{   r|   s        r)   rL   z_ValuesView._iter  sT      z( 	 	GAq!$*---"#HIIIGGGG	 	r(   c                     g }| j         j        D ](\  }}}|                    t          |                     )d                    |          }d| j        j         d| dS )Nr   r   r   r   )r]   r1   r   reprr   r   r    r   s         r)   r   z_ValuesView.__repr__$  si    z( 	  	 GAq!JJtAwwyy~~54>*55T5555r(   N)r    r!   r"   r?   r   rs   rI   r*   rQ   rG   r   rL   r   r   r%   r   r'   r(   r)   r   r     s        & T    A%) A A A AS Xb\     W6# 6 6 6 6 6 6r(   r   c                      e Zd ZdedefdZdee         fdZde	de
e         fdZdefdZdee         dee         fd	Zdee         dee         fd
Zdee         deeeef                  fdZdee         deeeef                  fdZdee         dee         fdZdee         dee         fdZdee         deeeef                  fdZeZdee         defdZdS )	_KeysViewrn   r3   c                     t          |t                    sdS |                     |          }| j        j        D ]\  }}}||k    r dS dS r   rj   r%   r^   r]   r1   r8   rn   r   rq   rr   r<   s         r)   rs   z_KeysView.__contains__.  s^    #s## 	5??3''z( 	 	GAq!H}}tt ur(   c                 v    t          t          |           |                     | j        j                            S r5   ru   r7   s    r)   rQ   z_KeysView.__iter__7  rv   r(   rw   c              #      K   | j         j        D ]<\  }}}|| j         j        k    rt          d          |                     |          V  =d S ry   rz   r|   s        r)   rL   z_KeysView._iter:  sd      z( 	# 	#GAq!$*---"#HIII--""""""	# 	#r(   c                     g }| j         j        D ]\  }}}|                    d| d            d                    |          }d| j        j         d| dS )Nr~   r   r   r   r   r   r   s         r)   r   z_KeysView.__repr__@  sk    z( 	! 	!GAq!JJx1xxx    yy~~54>*55T5555r(   r   c                 .   t                      }	 t          |          }n# t          $ r
 t          cY S w xY w|D ][}t	          |t
                    s|                     |          }| j        j        D ]!\  }}}||k    r|	                    |           "\|S r5   )
r   r   rm   r   rj   r%   r^   r]   r1   r   	r8   r   r   r   rn   r   rq   rr   r<   s	            r)   r   z_KeysView.__and__G  s    ee	"eBB 	" 	" 	"!!!!	" 	 	Cc3'' s++H:,  1a==GGAJJJ 
r   c                 j   t                      }	 t          |          }n# t          $ r
 t          cY S w xY w|D ][}t	          |t
                    s|                     |          }| j        j        D ]!\  }}}||k    r|	                    |           "\t          t           t                   |          S r5   )r   r   rm   r   rj   r%   r^   r]   r1   r   r   r+   r   s	            r)   r   z_KeysView.__rand__V  s    ee	"eBB 	" 	" 	"!!!!	" 	! 	!Cc3'' s++H:, ! !1a==GGCLLL! CGS!!!r   c                 ^   t          |           }	 t          |          }n# t          $ r
 t          cY S w xY w|D ]r}t	          |t
                    s|                    |           -|                     |          }| j        j	        D ]\  }}}||k    r n|                    |           s|S r5   )
r   r   rm   r   rj   r%   r   r^   r]   r1   r   s	            r)   r   z_KeysView.__or__e  s    #&t99	"eBB 	" 	" 	"!!!!	" 		 		Cc3'' s++H:,  1a==E ! 
r   c                 T   	 t          |          }n# t          $ r
 t          cY S w xY wt                      }|D ]B}t          |t                    s|                     |          }|                    |           C| j        j        D ]\  }}}||vr|                    |            |S r5   )	r   rm   r   rj   r%   r^   r   r]   r1   )	r8   r   r   r   rn   r   rq   rr   r<   s	            r)   r   z_KeysView.__ror__w  s    	"'*5zzCC 	" 	" 	"!!!!	" ee 	 	Cc3'' s++HGGHz( 	 	GAq!||



r   c                 4   t          |           }	 t          |          }n# t          $ r
 t          cY S w xY w|D ]]}t	          |t
                    s|                     |          }| j        j        D ]#\  }}}||k    r|	                    |            n$^|S r5   )
r   r   rm   r   rj   r%   r^   r]   r1   discardr   s	            r)   r   z_KeysView.__sub__  s    $ii	"eBB 	" 	" 	"!!!!	" 	 	Cc3'' s++H:,  1a==KKNNNE ! 
r   c                    	 t          |          }n# t          $ r
 t          cY S w xY w|D ]]}t          |t                    s|                     |          }| j        j        D ]#\  }}}||k    r|                    |            n$^|S r5   )	r   rm   r   rj   r%   r^   r]   r1   r   )r8   r   r   rn   r   rq   rr   r<   s           r)   r   z_KeysView.__rsub__  s    	"u::CC 	" 	" 	"!!!!	" 	 	Cc3'' s++H:,  1a==KK$$$E ! 
r   c                 p    	 t          |          }n# t          $ r
 t          cY S w xY w| |z
  }||| z
  z  }|S r5   r   r   s       r)   r   z_KeysView.__xor__  sW    	"e**CC 	" 	" 	"!!!!	"#'#:sTz
r   c                     |D ]J}t          |t                    s|                     |          }| j        j        D ]\  }}}||k    r  dS KdS r   r   )r8   r   rn   r   rq   rr   r<   s          r)   r   z_KeysView.isdisjoint  st     	! 	!Cc3'' s++H:, ! !1a== 555 !! tr(   N)r    r!   r"   r?   r   rs   rI   r%   rQ   rG   r   rL   r   r   r   r   r+   r   r   r   r   r   r   r   r   r   r'   r(   r)   r   r   -  s        4    A%* A A A A#S #Xc] # # # #6# 6 6 6 6Xf- #c(    "hrl "s2w " " " "HRL SsBw-@    $Xb\ c%R..A    $Xf- #c(     hrl s2w    Xb\ c%R..A     H 0 T      r(   r   c                   .    e Zd ZdedefdZdedefdZdS )_CSMixinrn   r3   c                     |S r5   r'   r8   rn   s     r)   _keyz_CSMixin._key  s    
r(   c                 N    t          |t                    r|S t          d          Nz8MultiDict keys should be either str or subclasses of str)rj   r%   rm   r   s     r)   _titlez_CSMixin._title  s)    c3 	XJVWWWr(   N)r    r!   r"   r%   r   r   r'   r(   r)   r   r     s`             X# X# X X X X X Xr(   r   c                   >    e Zd ZU dZeed<   dedefdZdedefdZdS )_CIMixinT_cirn   r3   c                 P    t          |          t          u r|S t          |          S r5   )typer   r   s     r)   r   z_CIMixin._key  s$    99J99r(   c                     t          |t                    r&|j        }||                                }||_        |S t          |t                    r|                                S t          d          r   )rj   r   r   titler%   rm   )r8   rn   r   s      r)   r   z_CIMixin._title  sk    c4   	$C{iikk%("Jc3 	X99;;VWWWr(   N)	r    r!   r"   r   r   r&   r%   r   r   r'   r(   r)   r   r     sr         C     
X# 
X# 
X 
X 
X 
X 
X 
Xr(   r   c            
       "   e Zd ZU ee         ed<   dZeed<   ede	de	fd            Z
ede	de	fd            Zede	dee         fd            Zede	d	edeee         ef         fd
            Zefde	d	eeef         deee         ef         fdZede	defd            Zede	d	edeeef         fd            Zefde	d	eeef         deeef         fdZde	defdZede	deedf         fd            Zed	ede	deeef         fd            Zdde	d	eedf         deeedf         fdZdee	         fdZdefdZdee	         fdZdee	ef         fdZdee         fdZde defdZ!de defdZ" e#j$                    de	fd            Z%dS )_Baser]   Fr   rn   r3   c                     d S r5   r'   r   s     r)   r   z
_Base._key  s    %(Sr(   c                     d S r5   r'   r   s     r)   r   z_Base._title  s    '*sr(   c                     d S r5   r'   r   s     r)   getallz_Base.getall      ,/Cr(   defaultc                     d S r5   r'   r8   rn   r   s      r)   r   z_Base.getall      DGCr(   c                     |                      |          fd| j        j        D             }|r|S |s|t          ur|S t	          d|z            )z-Return a list of all values matching the key.c                 (    g | ]\  }}}|k    |S r'   r'   ).0rq   rr   r<   r   s       r)   
<listcomp>z _Base.getall.<locals>.<listcomp>  s$    CCCWQ1Q(]]q]]]r(   Key not found: %rr   r]   r1   r-   KeyError)r8   rn   r   resr   s       @r)   r   z_Base.getall  sl     ;;s##CCCC
 1CCC 	J 	wh..N*S0111r(   c                     d S r5   r'   r   s     r)   getonez_Base.getone      &)cr(   c                     d S r5   r'   r   s      r)   r   z_Base.getone      >Acr(   c                     |                      |          }| j        j        D ]\  }}}||k    r|c S |t          ur|S t	          d|z            )zwGet first value matching the key.

        Raises KeyError if the key is not found and no default is provided.
        r   r   r8   rn   r   r   rq   rr   r<   s          r)   r   z_Base.getone  sj     ;;s##z( 	 	GAq!H}} (""N*S0111r(   c                 ,    |                      |          S r5   r   r   s     r)   __getitem__z_Base.__getitem__  s    {{3r(   Nc                    d S r5   r'   r   s     r)   getz	_Base.get  s    363r(   c                    d S r5   r'   r   s      r)   r   z	_Base.get  r   r(   c                 .    |                      ||          S )zGet first value matching the key.

        If the key is not found, returns the default (or None if no default is provided)
        r   r   s      r)   r   z	_Base.get  s    
 {{3(((r(   c                 D    t          |                                           S r5   )r   keysr7   s    r)   rQ   z_Base.__iter__  s    DIIKK   r(   c                 4    t          | j        j                  S r5   ra   r7   s    r)   rc   z_Base.__len__  rd   r(   c                 B    t          | j        | j        | j                  S )z+Return a new view of the dictionary's keys.)r   r]   r   r   r7   s    r)   r  z
_Base.keys"  s    T[$)<<<r(   c                 B    t          | j        | j        | j                  S )zAReturn a new view of the dictionary's items *(key, value) pairs).)rf   r]   r   r   r7   s    r)   itemsz_Base.items&  s    $*dk49===r(   c                 B    t          | j        | j        | j                  S )z-Return a new view of the dictionary's values.)r   r]   r   r   r7   s    r)   valuesz_Base.values*  s    4:t{DI>>>r(   r   c                    t          |t                    st          S t          |t                    ri| j        j        }|j        j        }t          |          t          |          k    rdS t          ||          D ]\  \  }}}\  }}}||k    s||k    r dS dS t          | j        j                  t          |          k    rdS |                                 D ])\  }	}
|	                    |	t                    }|
|k    r dS *dS r   )rj   r
   r   r   r]   r1   rb   zipr  r   r-   )r8   r   lftrhti1k2v1i2v2rr   r<   nvs               r)   __eq__z_Base.__eq__.  s   %)) 	"!!eU## 	*#C+$C3xx3s88##u.1#smm ! !*Rlr2r88rRxx 55  (4tz !!SZZ//5JJLL 	 	DAq1h''BBwwuu tr(   c                     t          |t                    sdS |                     |          }| j        j        D ]\  }}}||k    r dS dS r   )rj   r%   r   r]   r1   r   s         r)   rs   z_Base.__contains__B  s^    #s## 	5;;s##z( 	 	GAq!H}}tt ur(   c                 z    d                     d | j        j        D                       }d| j        j         d| dS )Nr   c              3   .   K   | ]\  }}}d | d|V  dS )r~   r   Nr'   )r   rq   rr   r<   s       r)   	<genexpr>z!_Base.__repr__.<locals>.<genexpr>M  s4      JJWQ1Q1JJJJJJr(   r   r   r   )r   r]   r1   r   r    )r8   r   s     r)   r   z_Base.__repr__K  sE    yyJJ
8IJJJJJ54>*55T5555r(   r5   )&r    r!   r"   r0   r*   r&   r   r   r   r%   r   r   r   rl   r   r+   r   r-   r,   r   r   r   r   rQ   rG   rc   r	   r  r   r  r   r	  r?   r  rs   r   r   r   r'   r(   r)   r   r     sw        9C((((( ^(*#*#*** ^*/#/$r(/// X/G#GGuT"Xr\/BGGG XG8@
2 
2
2!&r9}!5
2	tBx|	
2 
2 
2 
2 )#)"))) X)A#AAuRV}AAA XA8@2 22!&r9}!52	r2v2 2 2 2" s  r         6s6%D/666 X6AAsAuRV}AAA XA) )s )U2t8_ )b"dl@S ) ) ) )!(3- ! ! ! !& & & & &=hsm = = = =>yb) > > > >?B ? ? ? ?F t    ( 4     W6# 6 6 6 6 6 6r(   r   c                      e Zd ZdZd'dee         defdZej        j	        dk    rde
fdZdeee         eeeeef                           f         fd	Zd
ededdfdZdefdZeZd'dee         deddfdZdee         deeef         dedeeeeeef                  gdf         ddf
dZdeeeeef                  ddfdZd(dZd
ededdfdZd
eddfdZe	 d'ddd
edddee df         fd            Z!ed
ededefd            Z!d'd
edeedf         deedf         fdZ!ed
edefd            Z"ed
ede deee f         fd            Z"e#fd
edee e$f         deee f         fdZ"e%se"Z&ed
edee         fd             Z'ed
ede deee         e f         fd!            Z'e#fd
edee e$f         deee         e f         fd"Z'deeef         fd#Z(d'dee         deddfd$Z)deeeeef                  ddfd%Z*d
ededdfd&Z+dS ))	MultiDictz/Dictionary with the support for duplicate keys.Nr   kwargsc                z    t                      | _        |                     ||| j        j        | j                   d S r5   )r0   r]   _extendr   r    _extend_itemsr8   r   r  s      r)   r9   zMultiDict.__init__T  s3    WW
S&$."94;MNNNNNr(   r=   r3   c                 j    t                               |           t          j        | j                  z   S r5   )r?   r@   rA   rB   r]   r7   s    r)   r@   zMultiDict.__sizeof__[  s'    $$T**S]4:-F-FFFr(   c                 T    | j         t          |                                           ffS r5   )r   rl   r  r7   s    r)   
__reduce__zMultiDict.__reduce__^  s"    djjll!3!3 566r(   rn   ro   c                     |                      |          }| j        j                            |||f           | j                                         d S r5   )r   r]   r1   r   r6   )r8   rn   ro   r   s       r)   r   zMultiDict.adda  sM    ;;s##
  (C!7888
!!!!!r(   c                 J    | j         } ||                                           S zReturn a copy of itself.)r   r  )r8   clss     r)   copyzMultiDict.copyf  s!    ns4::<<   r(   c                @    |                      ||d| j                   dS )zhExtend current MultiDict with more values.

        This method must be used instead of update.
        extendN)r  r  r  s      r)   r)  zMultiDict.extendm  s%    
 	S&(D,>?????r(   rF   methodc           	          rt          t          t          f          r j        j        ur fdj        j        D             }n"j        j        }|r|                                }|rE|                                D ]0\  }}|                     	                    |          ||f           1nt          d          r@t          t          t                             fd                                D             |rCt                                        t          |                                                     g }t#                    D ]x\  }}	t%          |	          dk    s#t'          d| dt%          |	           d          |                     	                    |	d                   |	d         |	d	         f           y ||           d S  | fd
|                                D                        d S )Nc                 H    g | ]\  }}}                     |          ||fS r'   r   )r   _rr   r<   r8   s       r)   r   z%MultiDict._extend.<locals>.<listcomp>~  s0    TTT1adkk!nna3TTTr(   r  c                 $    g | ]}||         fS r'   r'   )r   rr   r   s     r)   r   z%MultiDict._extend.<locals>.<listcomp>  s!    ;;;1As1v;;;;r(   ri   z#multidict update sequence element #zhas length z; 2 is requiredr   r   c                 F    g | ]\  }}                     |          ||fS r'   r-  )r   rn   ro   r8   s      r)   r   z%MultiDict._extend.<locals>.<listcomp>  s0    TTTzsET[[%%sE2TTTr(   )rj   r  MultiDictProxyr   r]   r1   r'  r  r   r   hasattrr   r   r*   r  rl   r)  	enumeraterb   
ValueError)
r8   r   r  rF   r*  r  rn   ro   posrg   s
   ``        r)   r  zMultiDict._extendt  s*     	V#	>:;; K837**TTTT39CSTTTEEI,E - %

 E&,llnn E E
Udkk#&6&6U%CDDDD3'' <|B/55C;;;;

;;;C 5s))CJJtFLLNN33444!*3 K KICt99>>(E# E E*-d))E E E   LL$++d1g"6"6Qa!IJJJJF5MMMMMFTTTTV\\^^TTTUUUUUr(   r  c                     |D ](\  }}}| j         j                            |||f           )| j                                          d S r5   )r]   r1   r   r6   )r8   r  r   rn   ro   s        r)   r  zMultiDict._extend_items  sU    $) 	= 	= Hc5J$$hU%;<<<<
!!!!!r(   c                 t    | j         j                                         | j                                          dS )z Remove all items from MultiDict.N)r]   r1   clearr6   r7   s    r)   r8  zMultiDict.clear  s3    
!!!
!!!!!r(   c                 2    |                      ||           d S r5   )_replace)r8   rn   ro   s      r)   __setitem__zMultiDict.__setitem__  s    c5!!!!!r(   c                    |                      |          }| j        j        }d}t          t	          |          dz
  dd          D ]}||         d         |k    r||= d}|st          |          | j                                         d S )NFr   r   T)r   r]   r1   rangerb   r   r6   )r8   rn   r   r  foundrq   s         r)   __delitem__zMultiDict.__delitem__  s    ;;s##
!s5zzA~r2.. 	 	AQx{h&&!H 	&3--J##%%%%%r(   r8   zMultiDict[Union[_T, None]]r   c                     d S r5   r'   r   s      r)   
setdefaultzMultiDict.setdefault  s	     #r(   c                     d S r5   r'   r   s      r)   rB  zMultiDict.setdefault  s    7:sr(   c                     |                      |          }| j        j        D ]\  }}}||k    r|c S |                     ||           |S )zAReturn value for key, set value to default if key is not present.)r   r]   r1   r   r   s          r)   rB  zMultiDict.setdefault  s]    ;;s##z( 	 	GAq!H}} gr(   c                     d S r5   r'   r   s     r)   poponezMultiDict.popone  r   r(   c                     d S r5   r'   r   s      r)   rF  zMultiDict.popone  r   r(   c                 n   |                      |          }t          t          | j        j                            D ]`}| j        j        |         d         |k    rB| j        j        |         d         }| j        j        |= | j                                         |c S a|t          u rt          |          |S )zRemove specified key and return the corresponding value.

        If key is not found, d is returned if given, otherwise
        KeyError is raised.

        r   ri   )r   r>  rb   r]   r1   r6   r-   r   )r8   rn   r   r   rq   ro   s         r)   rF  zMultiDict.popone  s     ;;s##s4:,--.. 	 	Az #A&(22
)!,Q/J%a(
'')))	 3
 h3--Nr(   c                     d S r5   r'   r   s     r)   popallzMultiDict.popall  r   r(   c                     d S r5   r'   r   s      r)   rJ  zMultiDict.popall  r   r(   c                    d}|                      |          }g }t          t          | j        j                  dz
  dd          D ]c}| j        j        |         }|d         |k    rC|                    |d                    | j        j        |= | j                                         d}d|s|t          u rt          |          |S |	                                 |S )zRemove all occurrences of key and return the list of corresponding
        values.

        If key is not found, default is returned if given, otherwise
        KeyError is raised.

        Fr   r=  r   ri   T)
r   r>  rb   r]   r1   r   r6   r-   r   reverse)r8   rn   r   r?  r   r   rq   rg   s           r)   rJ  zMultiDict.popall  s     ;;s##s4:,--12r:: 	 	A:$Q'DAw(""

47###J%a(
''))) 	(""smm#KKMMMJr(   c                     | j         j        rR| j         j                                        \  }}}| j                                          |                     |          |fS t          d          )z1Remove and return an arbitrary (key, value) pair.zempty multidict)r]   r1   popr6   r   r   )r8   rq   rr   r<   s       r)   popitemzMultiDict.popitem  sb    : 	.j'++--GAq!J##%%%99Q<<?",---r(   c                @    |                      ||d| j                   dS )z>Update the dictionary from *other*, overwriting existing keys.updateN)r  _update_itemsr  s      r)   rR  zMultiDict.update  s#    S&(D,>?????r(   c                    |sd S i }|D ]\  }}}|                     |d          }t          |t          | j        j                            D ]<}| j        j        |         }|d         |k    r|dz   ||<   |||f| j        j        |<    n?=| j        j                            |||f           t          | j        j                  ||<   d}|t          | j        j                  k     rm| j        j        |         }|d         }|                     |          }	|	|dz  }T||	k    r| j        j        |= n|dz  }|t          | j        j                  k     m| j                                         d S r;   )r   r>  rb   r]   r1   r   r6   )
r8   r  	used_keysr   rn   ro   startrq   rg   r5  s
             r)   rS  zMultiDict._update_items  s    	F$&	$) 
	= 
	= Hc5MM(A..E5#dj&7"8"899 = =z(+7h&&*+a%Ih',4c5+ADJ%a(E '
 
!(((C)?@@@&)$**;&<&<	(# #dj'((((:$Q'DAwH--))C{QCxxJ%a((Q #dj'(((( 	
!!!!!r(   c                    |                      |          }| j        j        }t          t	          |                    D ];}||         }|d         |k    r%|||f||<   |}| j                                          n><| j        j                            |||f           | j                                         d S |dz   }|t	          |          k     r2||         }|d         |k    r||= n|dz  }|t	          |          k     0d S d S r;   )r   r]   r1   r>  rb   r6   r   )r8   rn   ro   r   r  rq   rg   r   s           r)   r:  zMultiDict._replace0  s   ;;s##
!s5zz"" 	 	A8DAw(""$c51a
''))) # J$$hU%;<<<J##%%%F !G#e**nn8DAw(""!HHQ #e**nnnnnnr(   r5   rC   ),r    r!   r"   r#   r   r*   r9   rA   rE   rF   rG   r@   rk   r   r   rl   r%   r"  r   r'  __copy__r)  r
   r   r  r   r  r8  r;  r@  r   r   r+   rB  rF  r-   r,   r   rO  rJ  rP  rR  rS  r:  r'   r(   r)   r  r  Q  s       99O OE"I O2 O O O O
 &((	G 	G 	G 	G 	G7E$t*eDsBw4H.I"IJ 7 7 7 7"s "2 "$ " " " "
!d ! ! ! !
 H@ @%) @ @ @ @ @ @$V2Y$V R $V 	$V
 $uS#r\234d:;$V 
$V $V $V $VL"8E#sB,,?#@ "T " " " "
" " " ""s "2 "$ " " " "&s &t & & & & FJ *14?C	r4x   X :c:B:2::: X: c E"d(O uRQUX     )#)"))) X)A#AAuRV}AAA XA8@ !&r9}!5	r2v   ,  /#/$r(/// X/G#GGuT"Xr\/BGGG XG8@ !&r9}!5	tBx|	   :.sBw . . . .@ @%) @ @ @ @ @ @"4c3l(;#< " " " " "@C  t      r(   r  c                       e Zd ZdZdS )CIMultiDictz@Dictionary with the support for duplicate case-insensitive keys.N)r    r!   r"   r#   r'   r(   r)   rZ  rZ  L  s        JJJJr(   rZ  c                   ^    e Zd ZdZdeee         df         fdZdefdZ	dee         fdZ
dS )	r1  z'Read-only proxy for MultiDict instance.r   zMultiDictProxy[_V]c                     t          |t          t          f          st          dt	          |                     |j        | _        d S )Nz8ctor requires MultiDict or MultiDictProxy instance, not )rj   r  r1  rm   r   r]   r   s     r)   r9   zMultiDictProxy.__init__S  sR    #	>:;; 	%c% %  
 Y


r(   r3   c                 <    t          d| j        j         d          )Nzcan't pickle z objects)rm   r   r    r7   s    r)   r"  zMultiDictProxy.__reduce__\  s!    I(?IIIJJJr(   c                 D    t          |                                           S r%  )r  r  r7   s    r)   r'  zMultiDictProxy.copy_  s    &&&r(   N)r    r!   r"   r#   r   r  r*   r9   r   r"  r'  r'   r(   r)   r1  r1  P  s        11E)B-1E"EF    KH K K K K'im ' ' ' ' ' 'r(   r1  c                   ^    e Zd ZdZdeee         ee         f         fdZde	e         fdZ
dS )CIMultiDictProxyz)Read-only proxy for CIMultiDict instance.r   c                     t          |t          t          f          st          dt	          |                     |j        | _        d S )Nz<ctor requires CIMultiDict or CIMultiDictProxy instance, not )rj   rZ  r`  rm   r   r]   r   s     r)   r9   zCIMultiDictProxy.__init__g  sS    #-=>?? 	%c% %  
 Y


r(   r3   c                 D    t          |                                           S r%  )rZ  r  r7   s    r)   r'  zCIMultiDictProxy.copyp  s    4::<<(((r(   N)r    r!   r"   r#   r   r  r*   r1  r9   rZ  r'  r'   r(   r)   r`  r`  d  sg        33E)B-1C"CD    )k"o ) ) ) ) ) )r(   r`  mdr3   c                 b    t          | t                    st          d          | j        j        S )Nz&Parameter should be multidict or proxy)rj   r   rm   r]   r2   )rc  s    r)   
getversionre  u  s/    b%   B@AAA8r(   )8enumr   rA   abcr   r   collections.abcr   r   r   r   r	   r
   r   typingr   r   r   r   r   r   r   r   r   _abcr   r   r   r   version_infor   typing_extensionsr%   r   r*   r+   Enumr,   r-   r2   r0   rI   rX   rf   r   r   r   r   r   r  rZ  r1  r`  r?   rG   re  r'   r(   r)   <module>rn     s     



                             
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 I H H H H H H H H H H Hw&&&&&&) ) ) ) )3 ) ) ) WT]]WT]]DIk:..	5qc??H H H H HGBK H H H$    GBK   "& & & & & & & &l l l l l2	#r' 2 l l l^6 6 6 6 6)B-B 6 6 62N N N N N	"x} N N NbX X X X X X X XX X X X X X X X,o6 o6 o6 o6 o6L o6 o6 o6dx x x x x%)%8%< x x xvK K K K K(IbM K K K' ' ' ' 'XuRy ' ' '() ) ) ) )x!3 ) ) )"56*N6,BBC       r(   