
    /JfN                         d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
  ej        e          Zd Zd Zd	 Zd
 Zd Zd Zd ZdeiZdS )z
NOTE: All functions in this module are considered private and are
subject to abrupt breaking changes. Please do not use them directly.

    N)GzipFile)compress)	urlencode)determine_content_lengthc                 J   t          | ||          r|j        d         D ]}t                              |          }|Ht                              d|            ||d                   |d<   t          |d         |            dS t                              d|           dS dS )zAAttempt to compress the request body using the modeled encodings.	encodingsNz%Compressing request with %s encoding.bodyheadersz$Unsupported compression encoding: %s)_should_compress_requestrequest_compressionCOMPRESSION_MAPPINGgetloggerdebug_set_compression_header)configrequest_dictoperation_modelencodingencoders        T/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/botocore/compress.pymaybe_compress_requestr      s    oFF 	O';KH 	O 	OH)--h77G"DhOOO'.w|F/C'D'DV$'Y(?JJJCXNNNN	O 	O	O 	O    c                 R   | j         dur| j        dk    r|j        t          |          s4t	          |d                   }d}t
                              ||           dS |j        r|                                }|j	        }d|vS t          |d                   }| j        }||k    S dS )NTv2r	   z*Body type %s does not support compression.FrequiresLength)disable_request_compressionsignature_versionr   _is_compressible_typetyper   r   has_streaming_inputget_streaming_inputmetadata_get_body_size"request_min_compression_size_bytes)	r   r   r   	body_typelog_msgstreaming_inputstreaming_metadata	body_sizemin_sizes	            r   r   r   ,   s    *$66$,,/;$\22 	\&122IBGLL),,,5. 	>-AACCO!0!9#+==="<#788	<9$$5r   c                     | d         }t          |t                    r*t          |dd                              d          }|| d<   t          |t          t
          t          f          }|pt          |d          S )Nr	   Tutf-8)doseqr   read)
isinstancedictr   encodestrbytes	bytearrayhasattr)r   r	   is_supported_types      r   r   r   D   sv    D$ $TG<<<CCGLL#V"4#ui)@AA5f 5 55r   c                 b    t          |           }|t                              d|            d}|S )NzCUnable to get length of the request body: %s. Skipping compression.r   )r   r   r   )r	   sizes     r   r$   r$   N   s>    #D))D|$	
 	
 	

 Kr   c                    t          | t                    r"t          |                     d                    S t          | t          t
          f          rt          |           S t          | d          rit          | d          rJt          | d          r:|                                 }t          |           }| 	                    |           |S t          |           S d S )Nr-   r/   seektell)
r0   r3   gzip_compressr2   r4   r5   r6   r<   _gzip_compress_fileobjr;   )r	   current_positioncompressed_objs      r   _gzip_compress_bodyrA   Z   s    $ 
,T[[11222	D5),	-	- ,T"""	v		 ,4   	"WT6%:%: 	"#yy{{3D99NII&'''!!%d+++, ,r   c                 \   t          j                    }t          |d          5 }	 |                     d          }|sn@t	          |t
                    r|                    d          }|                    |           X	 d d d            n# 1 swxY w Y   |                    d           |S )Nwb)fileobjmodeTi    r-   r   )	ioBytesIOr   r/   r0   r3   r2   writer;   )r	   r@   gzchunks       r   r>   r>   h   s    Z\\N	.t	4	4	4 	IIdOOE %%% .W--HHUOOO	 	               s   ABBBc                 V    |                      d          }||| d<   d S | d| | d<   d S )NzContent-Encoding,)r   )r
   r   	ce_headers      r   r   r   v   sJ    .//I&."###)2&?&?X&?&?"###r   gzip)__doc__rF   loggingrN   r   r   r=   botocore.compatr   botocore.utilsr   	getLogger__name__r   r   r   r   r$   rA   r>   r   r    r   r   <module>rV      s     
			        * * * * * * % % % % % % 3 3 3 3 3 3		8	$	$O O O  06 6 6	 	 	, , ,  @ @ @ 23   r   