File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/__pycache__/http.cpython-310.pyc
o
�N�g�� � 1 @ s d Z ddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlm mZ ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Zddl!Zddl"Zddl#Zddl$Zddl%Zddl&m' m(Z) ddl*Zddl+Zddl,m-Z- ddl.m/Z/ ddl0m1Z1 zddl
m2Z2m3Z3 dZ4W n7 e5y� zddl6m2Z2m3Z3 dZ4W n! e5y� zddl7m2Z2m3Z3 dZ4W n e5y� dZ4Y nw Y nw Y nw zddl8Z8dZ9W n e5y� dZ9Y nw zddl:Z:dZ;W n e5�y dZ;Y nw e�<e=�Z>d ej?j@� �ZAd
d� ZBd&dd
�ZCd&dd�ZDe1d�dddddddddddddddddddddddddddddddddddddddddeAddddddf0dd��ZEd'dd�ZF d(dd�ZGdd� ZHdd� ZId d!� ZJd"d#� ZKd)d$d%�ZLdS )*z�
Utils for making various web calls. Primarily designed for REST, SOAP, webhooks
and the like, but also useful for basic HTTP testing.
.. versionadded:: 2015.5.0
� N)�
HTTPClient)�compile_template)�jinja_filter)�CertificateError�match_hostnameTFzSalt/c C s� |s|S t �dt|�| � | dkrt�|tj �}n,| dkr.t�|�}tj |d�}|�
� }n| dkr6td��| dkr>td��| d krFtd
��t �dt|�� |S )z�
Decompress returned HTTP content depending on the specified encoding.
Currently supports identity/none, deflate, and gzip, which should
cover 99%+ of the content on the internet.
z7Decompressing %s byte content with compression type: %sZdeflate�gzip)�fileobjZsdchz+SDCH compression is not currently supported�brz-Brotli compression is not currently supported�compressz*LZW compression is not currently supportedz$Content size after decompression: %s)�log�trace�len�zlib�
decompress� MAX_WBITS�io�BytesIOr �GzipFile�read�
ValueError)�codingZpgctnt�buf�f� r �C/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/http.py�__decompressContentS s&