ok

Mini Shell

Direktori : /opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/
Upload File :
Current File : //opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyc

�
Bu�_c@@sddlmZyddlmZmZWn'ek
rSddlmZmZnXyddlmZWn$ek
r�ddd��YZnXddlm	Z	ddl
mZdd	lm
Z
mZmZd
dgZe�Zd
efd��YZdefd
��YZdS(i(tabsolute_import(tMappingtMutableMapping(tRLockRcB@seZd�Zd�ZRS(cC@sdS(N((tself((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt	__enter__scC@sdS(N((Rtexc_typet	exc_valuet	traceback((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__exit__s(t__name__t
__module__RR	(((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyRs	(tOrderedDicti(t
InvalidHeader(titerkeyst
itervaluestPY3tRecentlyUsedContainertHTTPHeaderDictcB@sbeZdZeZdd
d�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
RS(s�
    Provides a thread-safe dict-like container which maintains up to
    ``maxsize`` keys while throwing away the least-recently-used keys beyond
    ``maxsize``.

    :param maxsize:
        Maximum number of recent elements to retain.

    :param dispose_func:
        Every time an item is evicted from the container,
        ``dispose_func(value)`` is called.  Callback which will get called
    i
cC@s1||_||_|j�|_t�|_dS(N(t_maxsizetdispose_functContainerClst
_containerRtlock(RtmaxsizeR((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__init__.s		cC@s7|j�(|jj|�}||j|<|SWdQXdS(N(RRtpop(Rtkeytitem((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__getitem__5s

cC@s�t}|j�]|jj|t�}||j|<t|j�|jkrh|jjdt�\}}nWdQX|jr�|tk	r�|j|�ndS(Ntlast(	t_NullRRtgettlenRtpopitemtFalseR(RRtvaluet
evicted_valuet_key((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__setitem__<s

$cC@s?|j�|jj|�}WdQX|jr;|j|�ndS(N(RRRR(RRR$((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__delitem__Ks
	cC@s!|j�t|j�SWdQXdS(N(RR!R(R((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__len__Rs
cC@std��dS(Ns7Iteration over this class is unlikely to be threadsafe.(tNotImplementedError(R((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__iter__VscC@s`|j�'tt|j��}|jj�WdQX|jr\x|D]}|j|�qBWndS(N(RtlistRRtclearR(RtvaluesR$((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR-[s
	
cC@s'|j�tt|j��SWdQXdS(N(RR,RR(R((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pytkeyses
N(R
Rt__doc__RRtNoneRRR'R(R)R+R-R/(((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyRs						
cB@seZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
esiej
Z
ejZne�Zd�Zd	�Zed
�Zd�Zd�Zd
�Zed�ZeZeZeZeZd�Zd�Zd�Zd�Zd�Z d�Z!e"d��Z#RS(sp
    :param headers:
        An iterable of field-value pairs. Must not contain multiple field names
        when compared case-insensitively.

    :param kwargs:
        Additional field-value pairs to pass in to ``dict.update``.

    A ``dict`` like container for storing HTTP Headers.

    Field names are stored and compared case-insensitively in compliance with
    RFC 7230. Iteration provides the first case-sensitive key seen for each
    case-insensitive pair.

    Using ``__setitem__`` syntax overwrites fields that compare equal
    case-insensitively in order to maintain ``dict``'s api. For fields that
    compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add``
    in a loop.

    If multiple fields that are equal case-insensitively are passed to the
    constructor or ``.update``, the behavior is undefined and some will be
    lost.

    >>> headers = HTTPHeaderDict()
    >>> headers.add('Set-Cookie', 'foo=bar')
    >>> headers.add('set-cookie', 'baz=quxx')
    >>> headers['content-length'] = '7'
    >>> headers['SET-cookie']
    'foo=bar, baz=quxx'
    >>> headers['Content-Length']
    '7'
    cK@sttt|�j�t�|_|dk	rZt|t�rJ|j|�qZ|j|�n|rp|j|�ndS(N(	tsuperRRRRR1t
isinstancet
_copy_fromtextend(Rtheaderstkwargs((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR�scC@s*||g|j|j�<|j|j�S(N(Rtlower(RRtval((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR'�scC@s$|j|j�}dj|d�S(Ns, i(RR8tjoin(RRR9((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR�scC@s|j|j�=dS(N(RR8(RR((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR(�scC@s|j�|jkS(N(R8R(RR((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__contains__�scC@s�t|t�r$t|d�r$tSt|t|��sNt|�|�}ntd�|j�D��td�|j�D��kS(NR/cs@s'|]\}}|j�|fVqdS(N(R8(t.0tktv((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pys	<genexpr>�scs@s'|]\}}|j�|fVqdS(N(R8(R<R=R>((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pys	<genexpr>�s(R3RthasattrR#ttypetdictt
itermerged(Rtother((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__eq__�s cC@s|j|�S(N(RD(RRC((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__ne__�scC@s
t|j�S(N(R!R(R((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR)�scc@s'x |jj�D]}|dVqWdS(Ni(RR.(Rtvals((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR+�scC@sGy||}Wn'tk
r7||jkr3�n|SX||=|SdS(s�D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
          If key is not found, d is returned if given, otherwise KeyError is raised.
        N(tKeyErrort_HTTPHeaderDict__marker(RRtdefaultR$((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR�s
cC@s#y||=Wntk
rnXdS(N(RG(RR((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pytdiscard�s
cC@sM|j�}||g}|jj||�}||k	rI|j|�ndS(s�Adds a (name, value) pair, doesn't overwrite the value if it already
        exists.

        >>> headers = HTTPHeaderDict(foo='bar')
        >>> headers.add('Foo', 'baz')
        >>> headers['foo']
        'bar, baz'
        N(R8Rt
setdefaulttappend(RRR9t	key_lowertnew_valsRF((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pytadd�s
	cO@s]t|�dkr0tdjt|����nt|�dkrL|dnd}t|t�r�x�|j�D]\}}|j||�qnWn�t|t�r�x�|D]}|j|||�q�Wndt|d�rxR|j	�D]}|j|||�q�Wn'x$|D]\}}|j||�qWx*|j
�D]\}}|j||�q9WdS(s�Generic import function for any type of header-like object.
        Adapted version of MutableMapping.update in order to insert items
        with self.add instead of self.__setitem__
        is9extend() takes at most 1 positional arguments ({0} given)iR/N((R!t	TypeErrortformatR3Rt	iteritemsRORR?R/titems(RtargsR7RCRR9R$((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR5�s$"
cC@sKy|j|j�}Wn%tk
r>||jkr:gS|SX|dSdS(smReturns a list of all the values for the named field. Returns an
        empty list if the key doesn't exist.iN(RR8RGRH(RRRIRF((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pytgetlists
cC@s#dt|�jt|j��fS(Ns%s(%s)(R@R
RARB(R((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt__repr__scC@s\xU|D]M}|j|�}t|t�r:t|�}n|g||j|j�<qWdS(N(RUR3R,RR8(RRCRR9((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyR4s

cC@s t|��}|j|�|S(N(R@R4(Rtclone((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pytcopy!s
cc@sLxE|D]=}|j|j�}x!|dD]}|d|fVq+WqWdS(s8Iterate over all header lines, including duplicate ones.iiN(RR8(RRRFR9((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyRR&s
cc@sDx=|D]5}|j|j�}|ddj|d�fVqWdS(s:Iterate over all headers, merging duplicate ones together.is, iN(RR8R:(RRR9((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyRB-s
cC@st|j��S(N(R,RR(R((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyRS3scC@s�d}g}x�|jD]�}|j|�rx|sDtd|��qx|d\}}||d|j�f|d<qn|jdd�\}}|j||j�f�qW||�S(s4Read headers from a Python 2 httplib message object.t s	s/Header continuation with no previous header: %si����t:i(RYs	(R6t
startswithR
tstriptsplitRL(tclstmessagetobs_fold_continued_leadersR6tlineRR$((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pytfrom_httplib6sN($R
RR0R1RR'RR(R;RDRERRRRtobjectRHR)R+RRJROR5RUt
getheaderstgetallmatchingheaderstigettget_allRVR4RXRRRBRStclassmethodRb(((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyRjs< 														
						N((t
__future__Rtcollections.abcRRtImportErrortcollectionst	threadingRRt
exceptionsR
tpackages.sixRRRt__all__RcRRR(((sQ/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/urllib3/_collections.pyt<module>s

	L

Zerion Mini Shell 1.0