� ��^i��j�ddlZddlZddlZddlmZddlmZddlmZddl m Z Gd�de��Z dS) �N)� HTTPAdapter�)�CacheController)� DictCache)�CallbackFileWrapperc�X��eZdZddhZ d �fd� Zd �fd� Z d �fd� Z�fd �Z�xZS) �CacheControlAdapter�PUT�DELETENTc����tt|��j|i|��|�t��n||_||_|pd|_|pt} | |j||���|_dS)N)�GET)� cache_etags� serializer) �superr �__init__r�cache� heuristic�cacheable_methodsr� controller) �selfrr�controller_classrrr�args�kw�controller_factory� __class__s ���/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_vendor/cachecontrol/adapter.pyrzCacheControlAdapter.__init__s���� 2��!�4�(�(�1�4�>�2�>�>�>�$)�M�Y�[�[�[�u�� �"���!2�!>�h���-�@���,�,� �J�K�J� � � �����c �l��|p|j}|j|vr |j�|��}n#tj$rd}YnwxYw|r|�||d���S|j�|j� |����tt|��j |fi|��}|S)z� Send a request. Use the request information to see if it exists in the cache and cache the response if we need to and can. NT)� from_cache) r�methodr�cached_request�zlib�error�build_response�headers�update�conditional_headersrr �send)r�requestrr� cacheable�cached_response�resprs �rr(zCacheControlAdapter.send$s���� &�?��)?� � �>�Y� &� &� '�"&�/�"@�"@��"I�"I�����:� '� '� '�"&���� '����� V��*�*�7�O�PT�*�U�U�U� �O� "� "�4�?�#F�#F�w�#O�#O� P� P� P�4�u�(�$�/�/�4�W�C�C��C�C��� s�0�A�AFc�>�� �|p|j}|�s|j|v�r|jr|j�|��}|jdkrN|j�||��}||urd}|�d���|���|}n�|jdkr|j� ||��net|j tj |jj ||����|_ |jr&|j� � fd�}t!j||��|_t%t&|���||��}|j|jvr@|jr9|j�|j��} |j�| ��||_|S)z� Build a response by making a request or using the cache. This will end up calling send and returning a potentially cached response i0TF)�decode_contenti-c�h�����|jdkr|j���dSdS)Nr)� chunk_left�_fp�_close)r�super_update_chunk_lengths �r�[email protected]_response.._update_chunk_lengthns?���1�1�3�3�3��?�a�/�/� �H�O�O�-�-�-�-�-�0�/r)rr r�apply�statusr�update_cached_response�read� release_conn�cache_responserr1� functools�partial�chunkedr4�types� MethodTyperr r$�invalidating_methods�ok� cache_url�urlr�deleter) rr)�responserrr*r+r4r,rBr3rs @�rr$z"CacheControlAdapter.build_response9s�����&�?��)?� ��2 �g�n� �9�9��~� :��>�/�/��9�9����#�%�%� #'�/�"H�"H��X�#�#��#�(�2�2�!%�J� � � �U� �3�3�3��%�%�'�'�'�*�����C�'�'���.�.�w��A�A�A�A� 3��L��%���6����� � �� � �#� �08�0M�-�.�.�.�.�.� 5:�4D�,�h�5�5�H�1��(�$�/�/�>�>�w��Q�Q�� �>�T�6� 6� 6�4�7� 6���1�1�'�+�>�>�I� �J� � �i� (� (� (�%���� rc���|j���tt|�����dS�N)r�closerr )rrs �rrHzCacheControlAdapter.close�s:��� � ������ �!�4�(�(�.�.�0�0�0�0�0r)NTNNNNrG)FN) �__name__� __module__� __qualname__r@rr(r$rH� __classcell__)rs@rr r s��������!�8�,�������� � � � � � �*������,FJ�H�H�H�H�H�H�T1�1�1�1�1�1�1�1�1rr ) r>r;r"�pip._vendor.requests.adaptersrrrrr� filewrapperrr �rr�rPs��� � � � ����� � � � �5�5�5�5�5�5�'�'�'�'�'�'�������,�,�,�,�,�,�y1�y1�y1�y1�y1�+�y1�y1�y1�y1�y1r