HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /proc/self/root/usr/lib/python3/dist-packages/urllib3/__pycache__/
Upload File :
Current File : //proc/self/root/usr/lib/python3/dist-packages/urllib3/__pycache__/_collections.cpython-311.pyc
�

��fgS,���ddlmZ	ddlmZmZn#e$rddlmZmZYnwxYw	ddlmZn#e$rGd�d��ZYnwxYwddlm	Z	ddl
mZdd	lZdd
lm
Z
mZddgZe��ZGd
�de��ZGd�de��Zd	S)�)�absolute_import)�Mapping�MutableMapping)�RLockc��eZdZd�Zd�ZdS)rc��dS�N���selfs �6/usr/lib/python3/dist-packages/urllib3/_collections.py�	__enter__zRLock.__enter__����D�c��dSr	r
)r�exc_type�	exc_value�	tracebacks    r
�__exit__zRLock.__exit__rrN)�__name__�
__module__�__qualname__rrr
rr
rrs2������	�	�	�	�	�	�	�	rr)�OrderedDict�)�
InvalidHeaderN)�iterkeys�
itervalues�RecentlyUsedContainer�HTTPHeaderDictc�H�eZdZdZeZdd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
ra�
    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
    �
Nc�z�||_||_|���|_t	��|_dSr	)�_maxsize�dispose_func�ContainerCls�
_containerr�lock)r�maxsizer$s   r
�__init__zRecentlyUsedContainer.__init__/s3����
�(����+�+�-�-����G�G��	�	�	rc��|j5|j�|��}||j|<|cddd��S#1swxYwYdSr	)r'r&�pop)r�key�items   r
�__getitem__z!RecentlyUsedContainer.__getitem__6s���
�Y�	�	��?�&�&�s�+�+�D�#'�D�O�C� ��	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s
�&;�?�?c�n�t}|j5|j�|t��}||j|<t	|j��|jkr|j�d���\}}ddd��n#1swxYwY|jr |tur|�|��dSdSdS)NF)�last)�_Nullr'r&�get�lenr#�popitemr$)rr,�value�
evicted_value�_keys     r
�__setitem__z!RecentlyUsedContainer.__setitem__=s���
�
�Y�	J�	J� �O�/�/��U�;�;�M�#(�D�O�C� ��4�?�#�#�d�m�3�3�&*�o�&=�&=�5�&=�&I�&I�#��m�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J���	-��e�!;�!;����m�,�,�,�,�,�	-�	-�!;�!;s�A&B�B�Bc��|j5|j�|��}ddd��n#1swxYwY|jr|�|��dSdSr	)r'r&r+r$)rr,r5s   r
�__delitem__z!RecentlyUsedContainer.__delitem__Ls���
�Y�	-�	-��O�'�'��,�,�E�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-���	%����e�$�$�$�$�$�	%�	%s�/�3�3c�l�|j5t|j��cddd��S#1swxYwYdSr	)r'r3r&rs r
�__len__zRecentlyUsedContainer.__len__Ss{��
�Y�	(�	(��t��'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s�)�-�-c� �td���)Nz7Iteration over this class is unlikely to be threadsafe.)�NotImplementedErrorrs r
�__iter__zRecentlyUsedContainer.__iter__Ws��!�E�
�
�	
rc��|j5tt|j����}|j���ddd��n#1swxYwY|jr|D]}|�|���dSdSr	)r'�listrr&�clearr$)r�valuesr5s   r
rBzRecentlyUsedContainer.clear\s���
�Y�	$�	$��*�T�_�5�5�6�6�F��O�!�!�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�
��	)��
)�
)���!�!�%�(�(�(�(�	)�	)�
)�
)s�;A�A�Ac��|j5tt|j����cddd��S#1swxYwYdSr	)r'rArr&rs r
�keyszRecentlyUsedContainer.keysfs���
�Y�	3�	3�����1�1�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s�!6�:�:)r!N)rrr�__doc__rr%r)r.r8r:r<r?rBrEr
rr
rrs����������L��������
-�
-�
-�%�%�%�(�(�(�
�
�
�
)�)�)�3�3�3�3�3rc���eZdZdZd�fd�	Zd�Zd�Zd�Zd�Zd�Z	d	�Z
ejre
jZe
jZe��Zd
�Zd�Zefd�Zd
�Zd�Zd�Zefd�Zd�ZeZeZeZeZd�Zd�Zd�Z d�Z!d�Z"d�Z#e$d���Z%�xZ&S)rap
    :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'
    Nc�2��tt|�����t��|_|�@t|t��r|�|��n|�|��|r|�|��dSdSr	)�superrr)rr&�
isinstance�
_copy_from�extend)r�headers�kwargs�	__class__s   �r
r)zHTTPHeaderDict.__init__�s����
�n�d�#�#�,�,�.�.�.�%�-�-������'�>�2�2�
%�����(�(�(�(����G�$�$�$��	 ��K�K�������	 �	 rc�|�||g|j|���<|j|���Sr	�r&�lower�rr,�vals   r
r8zHTTPHeaderDict.__setitem__�s/��(+�S�z����	�	���$���s�y�y�{�{�+�+rc�z�|j|���}d�|dd���S)N�, r�r&rR�joinrSs   r
r.zHTTPHeaderDict.__getitem__�s0���o�c�i�i�k�k�*���y�y��Q�R�R��!�!�!rc�:�|j|���=dSr	rQ�rr,s  r
r:zHTTPHeaderDict.__delitem__�s���O�C�I�I�K�K�(�(�(rc�8�|���|jvSr	)rRr&rZs  r
�__contains__zHTTPHeaderDict.__contains__�s���y�y�{�{�d�o�-�-rc�j�t|t��st|d��sdSt|t|����st|��|��}t	d�|���D����t	d�|���D����kS)NrEFc3�HK�|]\}}|���|fV��dSr	�rR��.0�k�vs   r
�	<genexpr>z(HTTPHeaderDict.__eq__.<locals>.<genexpr>�s2����A�A�t�q�!�Q�W�W�Y�Y��N�A�A�A�A�A�Arc3�HK�|]\}}|���|fV��dSr	r_r`s   r
rdz(HTTPHeaderDict.__eq__.<locals>.<genexpr>�sK����J
�J
�#�q�!�Q�W�W�Y�Y��N�J
�J
�J
�J
�J
�J
r)rJr�hasattr�type�dict�
itermerged�r�others  r
�__eq__zHTTPHeaderDict.__eq__�s����%��)�)�	�'�%��2H�2H�	��5��%��d���,�,�	&��D��J�J�u�%�%�E��A�A�t���/@�/@�A�A�A�A�A�T�J
�J
�',�'7�'7�'9�'9�J
�J
�J
�F
�F
�
�	
rc�.�|�|��Sr	)rlrjs  r
�__ne__zHTTPHeaderDict.__ne__�s���;�;�u�%�%�%�%rc�*�t|j��Sr	)r3r&rs r
r<zHTTPHeaderDict.__len__�s���4�?�#�#�#rc#�VK�|j���D]}|dV��
dS)Nr)r&rC)r�valss  r
r?zHTTPHeaderDict.__iter__�s<�����O�*�*�,�,�	�	�D��q�'�M�M�M�M�	�	rc�V�	||}||=|S#t$r||jur�|cYSwxYw)z�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.
        )�KeyError�_HTTPHeaderDict__marker)rr,�defaultr5s    r
r+zHTTPHeaderDict.pop�sT��	���I�E��S�	��L��
�	�	�	��$�-�'�'���N�N�N�	���s��(�(c�0�	||=dS#t$rYdSwxYwr	)rsrZs  r
�discardzHTTPHeaderDict.discard�s4��	��S�	�	�	���	�	�	��D�D�	���s��
�c��|���}||g}|j�||��}||ur|�|��dSdS)z�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)rRr&�
setdefault�append)rr,rT�	key_lower�new_valsrqs      r
�addzHTTPHeaderDict.add�s\���I�I�K�K�	���:����)�)�)�X�>�>���4����K�K������� �rc���t|��dkr/td�t|�������t|��dkr|dnd}t|t��r1|���D]\}}|�||���n�t|t��r"|D]}|�|||���nbt|d��r4|�	��D]}|�|||���n|D]\}}|�||���|�
��D]\}}|�||���dS)z�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__
        rz9extend() takes at most 1 positional arguments ({0} given)rr
rEN)r3�	TypeError�formatrJr�	iteritemsr}rrfrE�items)r�argsrNrkr,rTr5s       r
rLzHTTPHeaderDict.extend�s���
�t�9�9�q�=�=��(�(.��s�4�y�y�(9�(9���
��t�9�9��>�>��Q���r���e�^�,�,�	%�!�O�O�-�-�
#�
#���S�����c�"�"�"�"�
#�
��w�
'�
'�	%��
*�
*������e�C�j�)�)�)�)�
*�
�U�F�
#�
#�	%��z�z�|�|�
*�
*������e�C�j�)�)�)�)�
*�$�
%�
%�
��U�����e�$�$�$�$� �,�,�.�.�	!�	!�J�C���H�H�S�%� � � � �	!�	!rc��	|j|���}|dd�S#t$r||jurgcYS|cYSwxYw)zmReturns a list of all the values for the named field. Returns an
        empty list if the key doesn't exist.rN)r&rRrsrt)rr,rurqs    r
�getlistzHTTPHeaderDict.getlistsf��	��?�3�9�9�;�;�/�D�����8�O���	�	�	��$�-�'�'��	�	�	��N�N�N�	���s�+�A�A�Ac�B�gd�}|D]}|�|���|S)z�
        Remove content-specific header fields before changing the request
        method to GET or HEAD according to RFC 9110, Section 15.4.
        )zContent-EncodingzContent-LanguagezContent-LocationzContent-TypezContent-Length�Digestz
Last-Modified)rw)r�content_specific_headers�headers   r
�_prepare_for_method_changez)HTTPHeaderDict._prepare_for_method_changes?��
$
�$
�$
� �/�	!�	!�F��L�L�� � � � ��rc�t�t|��j�dt|������d�S)N�(�))rgrrhrirs r
�__repr__zHTTPHeaderDict.__repr__)s4����:�:�.�.�.��T�_�_�5F�5F�0G�0G�0G�0G�H�Hrc���|D][}|�|��}t|t��rt|��}|g|z|j|���<�\dSr	)r�rJrAr&rR)rrkr,rTs    r
rKzHTTPHeaderDict._copy_from,sf���	7�	7�C��-�-��$�$�C��#�t�$�$�
 ��3�i�i��,/�5�3�;�D�O�C�I�I�K�K�(�(�	7�	7rc�^�t|����}|�|��|Sr	)rgrK)r�clones  r
�copyzHTTPHeaderDict.copy4s,����T�
�
����
��������rc#�K�|D]:}|j|���}|dd�D]}|d|fV���;dS)z8Iterate over all header lines, including duplicate ones.rNrrQ)rr,rqrTs    r
r�zHTTPHeaderDict.iteritems9sf�����	#�	#�C��?�3�9�9�;�;�/�D��A�B�B�x�
#�
#���1�g�s�l�"�"�"�"�
#�	#�	#rc#�K�|D]H}|j|���}|dd�|dd���fV��IdS)z:Iterate over all headers, merging duplicate ones together.rrVrNrWrSs   r
rizHTTPHeaderDict.itermerged@s_�����	-�	-�C��/�#�)�)�+�+�.�C��a�&�$�)�)�C����G�,�,�,�,�,�,�,�	-�	-rc�D�t|�����Sr	)rAr�rs r
r�zHTTPHeaderDict.itemsFs���D�N�N�$�$�%�%�%rc�`�d}g}|jD]�}|�|��r?|std|z���|d\}}||dz|���zf|d<�V|�dd��\}}|�||���f����||��S)z4Read headers from a Python 2 httplib message object.)� �	z/Header continuation with no previous header: %s���r��:r)rM�
startswithr�strip�splitrz)�cls�message�obs_fold_continued_leadersrM�liner,r5s       r
�from_httplibzHTTPHeaderDict.from_httplibIs���&1�"����O�	1�	1�D����9�:�:�
��
�(�I�D�P����")���J�C��#&����d�j�j�l�l�(B�"C�G�B�K�����C��+�+�J�C���N�N�C������/�0�0�0�0��s�7�|�|�rr	)'rrrrFr)r8r.r:r\rlrn�six�PY2rrr�objectrtr<r?r+rwr}rLr�r��
getheaders�getallmatchingheaders�iget�get_allr�rKr�r�rir��classmethodr��
__classcell__)rOs@r
rrks����������B	 �	 �	 �	 �	 �	 �,�,�,�"�"�"�)�)�)�.�.�.�
�
�
�&�&�&��w�/�!�*��#�.�
��v�x�x�H�$�$�$����
 (�����"������ !�!�!�8$,�
�
�
�
����&�J�#���D��G�I�I�I�7�7�7����
#�#�#�-�-�-�&�&�&�����[�����r)�
__future__r�collections.abcrr�ImportError�collections�	threadingrr�
exceptionsrr�rr�__all__r�r1rrr
rr
�<module>r�s���&�&�&�&�&�&�4�7�7�7�7�7�7�7�7�7���4�4�4�3�3�3�3�3�3�3�3�3�3�4����	���������������������������$�#�#�#�#�#�%�%�%�%�%�%�
�
�
�
�$�$�$�$�$�$�$�$�"�$4�
5��	�����I3�I3�I3�I3�I3�N�I3�I3�I3�Xx�x�x�x�x�^�x�x�x�x�xs��
!�!�,�A�A