Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/site-packages/multidict/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/site-packages/multidict/__pycache__/_multidict_py.cpython-35.pyc



�~mZ`6�@stddlmZddlmZddlZddlmZmZe�ZGdd�de	�Z
e
Zdd	�Zed
dg�a
Gdd�d�ZGd
d�d�ZGdd�dee�ZGdd�de�ZGdd�dee�ZGdd�de�ZGdd�d�ZGdd�deej�ZGdd�deej�ZGdd�deej�ZdS)�)�array)�abcN�)�MultiMapping�MutableMultiMappingc@sCeZdZdZdZdej�ddd�Zdd�Zd	S)
�istrzCase insensitive str.T��strictcCsSt|dd�r|St|�tkr+nt|�}|j�}tj||�S)N�__is_istr__F)�getattr�type�str�title�__new__)�cls�val�encoding�errors�r�J/opt/alt/python35/lib64/python3.5/site-packages/multidict/_multidict_py.pyrszistr.__new__cCs|S)Nr)�selfrrrrsz
istr.titleN)	�__name__�
__module__�__qualname__�__doc__r
�sys�getdefaultencodingrrrrrrrs
rcCs%t|t�std��|jjS)Nz&Parameter should be multidict or proxy)�
isinstance�_Base�	TypeError�_impl�_version)Zmdrrr�
getversion$sr"�Qc@s.eZdZdZdd�Zdd�ZdS)	�_Impl�_itemsr!cCsg|_|j�dS)N)r%�incr_version)rrrr�__init__0s	z_Impl.__init__cCs%t}|dd7<|d|_dS)Nrr)r!)r�vrrrr&4sz_Impl.incr_versionN)r%r!)rrr�	__slots__r'r&rrrrr$-sr$c@s�eZdZdd�Zedd�Zedd�Zdd�Zd	d
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zd	S)rcCs|S)Nr)r�keyrrr�_title=sz_Base._titlecsc|j|���fdd�|jjD�}|r8|S|rO|tk	rO|Std|��dS)z-Return a list of all values matching the key.cs+g|]!\}}}|�kr|�qSrr)�.0�i�kr()�identityrr�
<listcomp>Cs	z _Base.getall.<locals>.<listcomp>zKey not found: %rN)r+r r%�_marker�KeyError)rr*�default�resr)r/r�getall@sz_Base.getallcCsc|j|�}x-|jjD]\}}}||kr|SqW|tk	rO|Std|��dS)z!Get first value matching the key.zKey not found: %rN)r+r r%r1r2)rr*r3r/r-r.r(rrr�getoneJsz_Base.getonecCs
|j|�S)N)r6)rr*rrr�__getitem__Vsz_Base.__getitem__NcCs|j||�S)zVGet first value matching the key.

        The method is alias for .getone().
        )r6)rr*r3rrr�getYsz	_Base.getcCst|j��S)N)�iter�keys)rrrr�__iter__`sz_Base.__iter__cCst|jj�S)N)�lenr r%)rrrr�__len__csz
_Base.__len__cCs
t|j�S)z+Return a new view of the dictionary's keys.)�	_KeysViewr )rrrrr:fsz
_Base.keyscCs
t|j�S)zAReturn a new view of the dictionary's items *(key, value) pairs).)�
_ItemsViewr )rrrr�itemsjsz_Base.itemscCs
t|j�S)z-Return a new view of the dictionary's values.)�_ValuesViewr )rrrr�valuesnsz_Base.valuescCst|tj�stSt|t�r�|jj}|jj}t|�t|�krYdSxKt||�D]:\\}}}\}}}||ks�||kridSqiWdSt|jj�t|�kr�dSx<|j	�D].\}	}
|j
|	t�}|
|kr�dSq�WdS)NFT)rr�Mapping�NotImplementedrr r%r<�zipr@r8r1)r�otherZlftZrhtZi1Zk2Zv1Zi2Zv2r.r(�nvrrr�__eq__rs$.z_Base.__eq__cCsC|j|�}x-|jjD]\}}}||krdSqWdS)NTF)r+r r%)rr*r/r-r.r(rrr�__contains__�s
z_Base.__contains__cCs8djdd�|j�D��}dj|jj|�S)Nz, css'|]\}}dj||�VqdS)z
'{}': {!r}N)�format)r,r.r(rrr�	<genexpr>�sz!_Base.__repr__.<locals>.<genexpr>z<{}({})>)�joinr@rJ�	__class__r)r�bodyrrr�__repr__�s"z_Base.__repr__)rrrr+r1r5r6r7r8r;r=r:r@rBrHrIrOrrrrr;s
rc@s4eZdZdd�Zdd�Zdd�ZdS)�MultiDictProxycCs@t|ttf�s0tdjt|����|j|_dS)Nz:ctor requires MultiDict or MultiDictProxy instance, not {})r�	MultiDictrPrrJrr )r�argrrrr'�s
zMultiDictProxy.__init__cCstdj|jj���dS)Nzcan't pickle {} objects)rrJrMr)rrrr�
__reduce__�s	zMultiDictProxy.__reduce__cCst|j��S)zReturn a copy of itself.)rQr@)rrrr�copy�szMultiDictProxy.copyN)rrrr'rSrTrrrrrP�s	rPc@s4eZdZdd�Zdd�Zdd�ZdS)�CIMultiDictProxycCs@t|ttf�s0tdjt|����|j|_dS)Nz>ctor requires CIMultiDict or CIMultiDictProxy instance, not {})r�CIMultiDictrUrrJrr )rrRrrrr'�s
zCIMultiDictProxy.__init__cCs
|j�S)N)r)rr*rrrr+�szCIMultiDictProxy._titlecCst|j��S)zReturn a copy of itself.)rVr@)rrrrrT�szCIMultiDictProxy.copyN)rrrr'r+rTrrrrrU�s	rUc@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zddd�Zedd�ZeZedd�Zd d!�Zd"d#�Zd$d%�Zd&d'�ZdS)(rQcOs/t�|_|j|||jj|j�dS)N)r$r �_extendrMr�
_extend_items)r�args�kwargsrrrr'�szMultiDict.__init__cCs|jt|j��ffS)N)rM�listr@)rrrrrS�szMultiDict.__reduce__cCs|S)Nr)rr*rrrr+�szMultiDict._titlecCs)t|t�rt|�Std��dS)Nz8MultiDict keys should be either str or subclasses of str)rr
r)rr*rrr�_key�s
zMultiDict._keycCsE|j|�}|jjj||j|�|f�|jj�dS)N)r+r r%�appendr\r&)rr*�valuer/rrr�add�s%z
MultiDict.addcCs|j}||j��S)zReturn a copy of itself.)rMr@)rrrrrrT�s	zMultiDict.copycOs|j||d|j�dS)zhExtend current MultiDict with more values.

        This method must be used instead of update.
        �extendN)rWrX)rrYrZrrrr`�szMultiDict.extendcs&t|�dkr0tdj|t|����|r�|d}t|dttf�rh|jj}n�t|d�r�|j	�}g}xi|D]a}t|�dks�tdj|���|j
�j|d��j|d�|df�q�W||�|�fdd�|j	�D��dS)	Nrz1{} takes at most 1 positional argument ({} given)rr@�z3{} takes either dict or list of (key, value) tuplescs7g|]-\}}�j|��j|�|f�qSr)r+r\)r,r*r^)rrrr0�s	z%MultiDict._extend.<locals>.<listcomp>)
r<rrJrrQrPr r%�hasattrr@r]r+r\)rrYrZ�name�methodrRr@�itemr)rrrW�s*	


zMultiDict._extendcCs.x'|D]\}}}|j||�qWdS)N)r_)rr@r/r*r^rrrrX�szMultiDict._extend_itemscCs!|jjj�|jj�dS)z Remove all items from MultiDict.N)r r%�clearr&)rrrrrf�szMultiDict.clearcCs|j||�dS)N)�_replace)rr*r^rrr�__setitem__szMultiDict.__setitem__cCs�|j|�}|jj}d}xEtt|�ddd�D]'}||d|kr>||=d}q>W|s~t|��n
|jj�dS)NFrrT���ri)r+r r%�ranger<r2r&)rr*r/r@�foundr-rrr�__delitem__s#
zMultiDict.__delitem__NcCsS|j|�}x-|jjD]\}}}||kr|SqW|j||�|S)zAReturn value for key, set value to default if key is not present.)r+r r%r_)rr*r3r/r-r.r(rrr�
setdefaultszMultiDict.setdefaultcCs�|j|�}xltt|jj��D]R}|jj|d|kr(|jj|d}|jj|=|jj�|Sq(W|tkr�t|��n|SdS)z�Remove specified key and return the corresponding value.

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

        rraN)r+rjr<r r%r&r1r2)rr*r3r/r-r^rrr�popones

zMultiDict.poponecCs�d}|j|�}g}x{tt|jj�ddd�D]W}|jj|}|d|kr>|j|d�|jj|=|jj�d}q>W|s�|tkr�t|��q�|Sn|j	�|SdS)	z�Remove 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.

        FrrraTNriri)
r+rjr<r r%r]r&r1r2�reverse)rr*r3rkr/�retr-rerrr�popall2s )



zMultiDict.popallcCsP|jjr@|jjjd�}|jj�|d|dfStd��dS)z1Remove and return an arbitrary (key, value) pair.rrrazempty multidictN)r r%�popr&r2)rr-rrr�popitemMs

zMultiDict.popitemcOs|j||d|j�dS)z>Update the dictionary from *other*, overwriting existing keys.�updateN)rW�
_update_items)rrYrZrrrrtVszMultiDict.updatec
Csz|s
dSi}x�|D]�\}}}|j|d�}x�t|t|jj��D]N}|jj|}|d|krT|d||<|||f|jj|<PqTW|jjj|||f�t|jj�||<qWd}x�|t|jj�krh|jj|}|d}|j|�}	|	dkr?|d7}q�||	kr[|jj|=q�|d7}q�W|jj�dS)Nrr)r8rjr<r r%r]r&)
rr@Z	used_keysr/r*r^�startr-re�posrrrruZs2"

zMultiDict._update_itemscCs|j|�}|j|�}|jj}x�tt|�ddd�D]G}||}|d|krG|||f||<|}|jj�PqGW|jjj|||f�|jj�dSd}xH||kr||}|d|kr||=|d8}q�|d7}q�WdS)Nrrriri)r\r+r r%rjr<r&r])rr*r^r/r@r-reZrgtrrrrgzs(#




zMultiDict._replace)rrrr'rSr+r\r_rTr`rWrXrfrhrlrmr1rnrrrqrsrtrurgrrrrrQ�s(
		 rQc@seZdZdd�ZdS)rVcCs
|j�S)N)r)rr*rrrr+�szCIMultiDict._titleN)rrrr+rrrrrV�srVc@s(eZdZdd�Zdd�ZdS)�	_ViewBasecCs||_|j|_dS)N)r r!)r�implrrrr'�s	z_ViewBase.__init__cCst|jj�S)N)r<r r%)rrrrr=�sz_ViewBase.__len__N)rrrr'r=rrrrrx�srxc@s4eZdZdd�Zdd�Zdd�ZdS)r?cCs�t|t�s$t|t�s$t�t|�dks<t�xA|jjD]3\}}}|d|krI|d|krIdSqIWdS)NrarrTF)r�tupler[�AssertionErrorr<r r%)rrer-r.r(rrrrI�s$ z_ItemsView.__contains__ccsPxI|jjD];\}}}|j|jjkr=td��||fVq
WdS)Nz#Dictionary changed during iteration)r r%r!�RuntimeError)rr-r.r(rrrr;�sz_ItemsView.__iter__cCscg}x5|jjD]'}|jdj|d|d��qWdj|�}dj|jj|�S)Nz
{!r}: {!r}rraz, z{}({}))r r%r]rJrLrMr)r�lstrerNrrrrO�s
%z_ItemsView.__repr__N)rrrrIr;rOrrrrr?�sr?c@s4eZdZdd�Zdd�Zdd�ZdS)rAcCs/x(|jjD]}|d|kr
dSq
WdS)NraTF)r r%)rr^rerrrrI�sz_ValuesView.__contains__ccsEx>|jjD]0}|j|jjkr4td��|dVq
WdS)Nz#Dictionary changed during iterationra)r r%r!r|)rrerrrr;�sz_ValuesView.__iter__cCs\g}x.|jjD] }|jdj|d��qWdj|�}dj|jj|�S)Nz{!r}raz, z{}({}))r r%r]rJrLrMr)rr}rerNrrrrO�s
z_ValuesView.__repr__N)rrrrIr;rOrrrrrA�srAc@s4eZdZdd�Zdd�Zdd�ZdS)r>cCs/x(|jjD]}|d|kr
dSq
WdS)NrTF)r r%)rr*rerrrrI�sz_KeysView.__contains__ccsEx>|jjD]0}|j|jjkr4td��|dVq
WdS)Nz#Dictionary changed during iterationr)r r%r!r|)rrerrrr;�sz_KeysView.__iter__cCs\g}x.|jjD] }|jdj|d��qWdj|�}dj|jj|�S)Nz{!r}rz, z{}({}))r r%r]rJrLrMr)rr}rerNrrrrO�s
z_KeysView.__repr__N)rrrrIr;rOrrrrr>�sr>)r�collectionsrrZ_abcrr�objectr1r
rZupstrr"r!r$rrPrUrQrVrx�	ItemsViewr?�
ValuesViewrA�KeysViewr>rrrr�<module>s$	W�